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/05/09 15:31:49 UTC

[01/16] hbase-site git commit: Published site at 4f2dfd387779968d3b76a22f1f4189d3278b202d.

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site 25edd2062 -> 63aade82f


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/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 0e3c33c..e105517 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html
@@ -65,191 +65,182 @@
 <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 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 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 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>  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>    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>  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>  @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<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">060</span>public class TestThriftHttpServer {<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  @ClassRule<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.63"></a>
+<span class="sourceLineNo">064</span>      HBaseClassTestRule.forClass(TestThriftHttpServer.class);<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>  private static final Logger LOG =<a name="line.66"></a>
+<span class="sourceLineNo">067</span>      LoggerFactory.getLogger(TestThriftHttpServer.class);<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>  private static final HBaseTestingUtility TEST_UTIL =<a name="line.69"></a>
+<span class="sourceLineNo">070</span>      new HBaseTestingUtility();<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  private Thread httpServerThread;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  private volatile Exception httpServerException;<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>  private Exception clientSideException;<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>  private ThriftServer thriftServer;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  private int port;<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>  @BeforeClass<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  public static void setUpBeforeClass() throws Exception {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    TEST_UTIL.getConfiguration().setBoolean("hbase.regionserver.thrift.http", true);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    TEST_UTIL.getConfiguration().setBoolean("hbase.table.sanity.checks", false);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    TEST_UTIL.startMiniCluster();<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    //ensure that server time increments every time we do an operation, otherwise<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    //successive puts having the same timestamp will override each other<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    EnvironmentEdgeManagerTestHelper.injectEdge(new IncrementingEnvironmentEdge());<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>  @AfterClass<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  public static void tearDownAfterClass() throws Exception {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    EnvironmentEdgeManager.reset();<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  @Test<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  public void testExceptionThrownWhenMisConfigured() throws Exception {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    Configuration conf = new Configuration(TEST_UTIL.getConfiguration());<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    conf.set("hbase.thrift.security.qop", "privacy");<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    conf.setBoolean("hbase.thrift.ssl.enabled", false);<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>    ThriftServerRunner runner = null;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    ExpectedException thrown = ExpectedException.none();<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    try {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      thrown.expect(IllegalArgumentException.class);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      thrown.expectMessage("Thrift HTTP Server's QoP is privacy, " +<a name="line.106"></a>
+<span class="sourceLineNo">107</span>          "but hbase.thrift.ssl.enabled is false");<a name="line.107"></a>
+<span class="sourceLineNo">108</span>      runner = new ThriftServerRunner(conf);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>      fail("Thrift HTTP Server starts up even with wrong security configurations.");<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    } catch (Exception e) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    }<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>    assertNull(runner);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  }<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>  private void startHttpServerThread(final String[] args) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    LOG.info("Starting HBase Thrift server with HTTP server: " + Joiner.on(" ").join(args));<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>    httpServerException = null;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    httpServerThread = new Thread(() -&gt; {<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>    httpServerThread.setName(ThriftServer.class.getSimpleName() + "-httpServer");<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    httpServerThread.start();<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>  @Rule<a name="line.131"></a>
+<span class="sourceLineNo">132</span>  public ExpectedException exception = ExpectedException.none();<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>  @Test<a name="line.134"></a>
+<span class="sourceLineNo">135</span>  public void testRunThriftServerWithHeaderBufferLength() throws Exception {<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>    // Test thrift server with HTTP header length less than 64k<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    try {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      runThriftServer(1024 * 63);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    } catch (TTransportException tex) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      assertFalse(tex.getMessage().equals("HTTP Response code: 431"));<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>    // Test thrift server with HTTP header length more than 64k, expect an exception<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    exception.expect(TTransportException.class);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    exception.expectMessage("HTTP Response code: 431");<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    runThriftServer(1024 * 64);<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 testRunThriftServer() throws Exception {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    runThriftServer(0);<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>    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">155</span>  private void runThriftServer(int customHeaderSize) throws Exception {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    List&lt;String&gt; args = new ArrayList&lt;&gt;(3);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    port = HBaseTestingUtility.randomFreePort();<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    args.add("-" + ThriftServer.PORT_OPTION);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    args.add(String.valueOf(port));<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    args.add("start");<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>    thriftServer = new ThriftServer(TEST_UTIL.getConfiguration());<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    startHttpServerThread(args.toArray(new String[args.size()]));<a name="line.163"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span>    // wait up to 10s for the server to start<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    HBaseTestingUtility.waitForHostPort(HConstants.LOCALHOST, port);<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>    String url = "http://" + HConstants.LOCALHOST + ":" + port;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    try {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      checkHttpMethods(url);<a name="line.170"></a>
+<span class="sourceLineNo">171</span>      talkToThriftServer(url, customHeaderSize);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    } catch (Exception ex) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>      clientSideException = ex;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    } finally {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      stopHttpServerThread();<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>    if (clientSideException != null) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      LOG.error("Thrift client threw an exception " + clientSideException);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      if (clientSideException instanceof TTransportException) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        throw clientSideException;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      } else {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        throw new Exception(clientSideException);<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><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">186</span>  }<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>  private void checkHttpMethods(String url) throws Exception {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    // HTTP TRACE method should be disabled for security<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    // See https://www.owasp.org/index.php/Cross_Site_Tracing<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    conn.setRequestMethod("TRACE");<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    conn.connect();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    Assert.assertEquals(HttpURLConnection.HTTP_FORBIDDEN, conn.getResponseCode());<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>    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>
+<span class="sourceLineNo">197</span>  private static volatile boolean tableCreated = false;<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>  private void talkToThriftServer(String url, int customHeaderSize) throws Exception {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    THttpClient httpClient = new THttpClient(url);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    httpClient.open();<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>    if (customHeaderSize &gt; 0) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      StringBuilder sb = new StringBuilder();<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      for (int i = 0; i &lt; customHeaderSize; i++) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        sb.append("a");<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      }<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      httpClient.setCustomHeader("User-Agent", sb.toString());<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    }<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>    try {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      TProtocol prot;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      prot = new TBinaryProtocol(httpClient);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      Hbase.Client client = new Hbase.Client(prot);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      if (!tableCreated){<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        TestThriftServer.createTestTables(client);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        tableCreated = true;<a name="line.217"></a>
+<span class="sourceLineNo">218</span>      }<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      TestThriftServer.checkTableList(client);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    } finally {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      httpClient.close();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>  }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>  private void stopHttpServerThread() throws Exception {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    LOG.debug("Stopping " + " Thrift HTTP server");<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    thriftServer.stop();<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    httpServerThread.join();<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    if (httpServerException != null) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      LOG.error("Command-line invocation of HBase Thrift server threw an " +<a name="line.230"></a>
+<span class="sourceLineNo">231</span>          "exception", httpServerException);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      throw new Exception(httpServerException);<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>}<a name="line.235"></a>
 
 
 


[14/16] hbase-site git commit: Published site at 4f2dfd387779968d3b76a22f1f4189d3278b202d.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/apidocs/src-html/org/apache/hadoop/hbase/client/Scan.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/Scan.html b/apidocs/src-html/org/apache/hadoop/hbase/client/Scan.html
index 64dfea4..070e349 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/client/Scan.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/client/Scan.html
@@ -287,984 +287,987 @@
 <span class="sourceLineNo">279</span>    this.limit = scan.getLimit();<a name="line.279"></a>
 <span class="sourceLineNo">280</span>    this.needCursorResult = scan.isNeedCursorResult();<a name="line.280"></a>
 <span class="sourceLineNo">281</span>    setPriority(scan.getPriority());<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>  /**<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   * Builds a scan object with the same specs as get.<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * @param get get to model scan after<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   */<a name="line.287"></a>
-<span class="sourceLineNo">288</span>  public Scan(Get get) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    this.startRow = get.getRow();<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    this.includeStartRow = true;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    this.stopRow = get.getRow();<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    this.includeStopRow = true;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    this.filter = get.getFilter();<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    this.cacheBlocks = get.getCacheBlocks();<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    this.maxVersions = get.getMaxVersions();<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    this.storeLimit = get.getMaxResultsPerColumnFamily();<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    this.storeOffset = get.getRowOffsetPerColumnFamily();<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    this.tr = get.getTimeRange();<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    this.familyMap = get.getFamilyMap();<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    this.asyncPrefetch = false;<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    this.consistency = get.getConsistency();<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    this.setIsolationLevel(get.getIsolationLevel());<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    this.loadColumnFamiliesOnDemand = get.getLoadColumnFamiliesOnDemandValue();<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    for (Map.Entry&lt;String, byte[]&gt; attr : get.getAttributesMap().entrySet()) {<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      setAttribute(attr.getKey(), attr.getValue());<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    }<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    for (Map.Entry&lt;byte[], TimeRange&gt; entry : get.getColumnFamilyTimeRange().entrySet()) {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      TimeRange tr = entry.getValue();<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      setColumnFamilyTimeRange(entry.getKey(), tr.getMin(), tr.getMax());<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    }<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    this.mvccReadPoint = -1L;<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    setPriority(get.getPriority());<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>  public boolean isGetScan() {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    return includeStartRow &amp;&amp; includeStopRow<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        &amp;&amp; ClientUtil.areScanStartRowAndStopRowEqual(this.startRow, this.stopRow);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>  }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>  /**<a name="line.320"></a>
-<span class="sourceLineNo">321</span>   * Get all columns from the specified family.<a name="line.321"></a>
-<span class="sourceLineNo">322</span>   * &lt;p&gt;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>   * Overrides previous calls to addColumn for this family.<a name="line.323"></a>
-<span class="sourceLineNo">324</span>   * @param family family name<a name="line.324"></a>
-<span class="sourceLineNo">325</span>   * @return this<a name="line.325"></a>
-<span class="sourceLineNo">326</span>   */<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public Scan addFamily(byte [] family) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    familyMap.remove(family);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    familyMap.put(family, null);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    return this;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>  }<a name="line.331"></a>
-<span class="sourceLineNo">332</span><a name="line.332"></a>
-<span class="sourceLineNo">333</span>  /**<a name="line.333"></a>
-<span class="sourceLineNo">334</span>   * Get the column from the specified family with the specified qualifier.<a name="line.334"></a>
-<span class="sourceLineNo">335</span>   * &lt;p&gt;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>   * Overrides previous calls to addFamily for this family.<a name="line.336"></a>
-<span class="sourceLineNo">337</span>   * @param family family name<a name="line.337"></a>
-<span class="sourceLineNo">338</span>   * @param qualifier column qualifier<a name="line.338"></a>
-<span class="sourceLineNo">339</span>   * @return this<a name="line.339"></a>
-<span class="sourceLineNo">340</span>   */<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  public Scan addColumn(byte [] family, byte [] qualifier) {<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    NavigableSet&lt;byte []&gt; set = familyMap.get(family);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    if(set == null) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      set = new TreeSet&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      familyMap.put(family, set);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    }<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    if (qualifier == null) {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      qualifier = HConstants.EMPTY_BYTE_ARRAY;<a name="line.348"></a>
+<span class="sourceLineNo">282</span>    readType = scan.getReadType();<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    super.setReplicaId(scan.getReplicaId());<a name="line.283"></a>
+<span class="sourceLineNo">284</span>  }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>  /**<a name="line.286"></a>
+<span class="sourceLineNo">287</span>   * Builds a scan object with the same specs as get.<a name="line.287"></a>
+<span class="sourceLineNo">288</span>   * @param get get to model scan after<a name="line.288"></a>
+<span class="sourceLineNo">289</span>   */<a name="line.289"></a>
+<span class="sourceLineNo">290</span>  public Scan(Get get) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    this.startRow = get.getRow();<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    this.includeStartRow = true;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    this.stopRow = get.getRow();<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    this.includeStopRow = true;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    this.filter = get.getFilter();<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    this.cacheBlocks = get.getCacheBlocks();<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    this.maxVersions = get.getMaxVersions();<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    this.storeLimit = get.getMaxResultsPerColumnFamily();<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    this.storeOffset = get.getRowOffsetPerColumnFamily();<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    this.tr = get.getTimeRange();<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    this.familyMap = get.getFamilyMap();<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    this.asyncPrefetch = false;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    this.consistency = get.getConsistency();<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    this.setIsolationLevel(get.getIsolationLevel());<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    this.loadColumnFamiliesOnDemand = get.getLoadColumnFamiliesOnDemandValue();<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    for (Map.Entry&lt;String, byte[]&gt; attr : get.getAttributesMap().entrySet()) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      setAttribute(attr.getKey(), attr.getValue());<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    }<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    for (Map.Entry&lt;byte[], TimeRange&gt; entry : get.getColumnFamilyTimeRange().entrySet()) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>      TimeRange tr = entry.getValue();<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      setColumnFamilyTimeRange(entry.getKey(), tr.getMin(), tr.getMax());<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    }<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    this.mvccReadPoint = -1L;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    setPriority(get.getPriority());<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    super.setReplicaId(get.getReplicaId());<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>  public boolean isGetScan() {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    return includeStartRow &amp;&amp; includeStopRow<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        &amp;&amp; ClientUtil.areScanStartRowAndStopRowEqual(this.startRow, this.stopRow);<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>   * Get all columns from the specified family.<a name="line.324"></a>
+<span class="sourceLineNo">325</span>   * &lt;p&gt;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>   * Overrides previous calls to addColumn for this family.<a name="line.326"></a>
+<span class="sourceLineNo">327</span>   * @param family family name<a name="line.327"></a>
+<span class="sourceLineNo">328</span>   * @return this<a name="line.328"></a>
+<span class="sourceLineNo">329</span>   */<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  public Scan addFamily(byte [] family) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    familyMap.remove(family);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    familyMap.put(family, null);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    return this;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>  }<a name="line.334"></a>
+<span class="sourceLineNo">335</span><a name="line.335"></a>
+<span class="sourceLineNo">336</span>  /**<a name="line.336"></a>
+<span class="sourceLineNo">337</span>   * Get the column from the specified family with the specified qualifier.<a name="line.337"></a>
+<span class="sourceLineNo">338</span>   * &lt;p&gt;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>   * Overrides previous calls to addFamily for this family.<a name="line.339"></a>
+<span class="sourceLineNo">340</span>   * @param family family name<a name="line.340"></a>
+<span class="sourceLineNo">341</span>   * @param qualifier column qualifier<a name="line.341"></a>
+<span class="sourceLineNo">342</span>   * @return this<a name="line.342"></a>
+<span class="sourceLineNo">343</span>   */<a name="line.343"></a>
+<span class="sourceLineNo">344</span>  public Scan addColumn(byte [] family, byte [] qualifier) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    NavigableSet&lt;byte []&gt; set = familyMap.get(family);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    if(set == null) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      set = new TreeSet&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      familyMap.put(family, set);<a name="line.348"></a>
 <span class="sourceLineNo">349</span>    }<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    set.add(qualifier);<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    return this;<a name="line.351"></a>
-<span class="sourceLineNo">352</span>  }<a name="line.352"></a>
-<span class="sourceLineNo">353</span><a name="line.353"></a>
-<span class="sourceLineNo">354</span>  /**<a name="line.354"></a>
-<span class="sourceLineNo">355</span>   * Get versions of columns only within the specified timestamp range,<a name="line.355"></a>
-<span class="sourceLineNo">356</span>   * [minStamp, maxStamp).  Note, default maximum versions to return is 1.  If<a name="line.356"></a>
-<span class="sourceLineNo">357</span>   * your time range spans more than one version and you want all versions<a name="line.357"></a>
-<span class="sourceLineNo">358</span>   * returned, up the number of versions beyond the default.<a name="line.358"></a>
-<span class="sourceLineNo">359</span>   * @param minStamp minimum timestamp value, inclusive<a name="line.359"></a>
-<span class="sourceLineNo">360</span>   * @param maxStamp maximum timestamp value, exclusive<a name="line.360"></a>
-<span class="sourceLineNo">361</span>   * @see #setMaxVersions()<a name="line.361"></a>
-<span class="sourceLineNo">362</span>   * @see #setMaxVersions(int)<a name="line.362"></a>
-<span class="sourceLineNo">363</span>   * @return this<a name="line.363"></a>
-<span class="sourceLineNo">364</span>   */<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  public Scan setTimeRange(long minStamp, long maxStamp) throws IOException {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    tr = new TimeRange(minStamp, maxStamp);<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    return this;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  }<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>  /**<a name="line.370"></a>
-<span class="sourceLineNo">371</span>   * Get versions of columns with the specified timestamp. Note, default maximum<a name="line.371"></a>
-<span class="sourceLineNo">372</span>   * versions to return is 1.  If your time range spans more than one version<a name="line.372"></a>
-<span class="sourceLineNo">373</span>   * and you want all versions returned, up the number of versions beyond the<a name="line.373"></a>
-<span class="sourceLineNo">374</span>   * defaut.<a name="line.374"></a>
-<span class="sourceLineNo">375</span>   * @param timestamp version timestamp<a name="line.375"></a>
-<span class="sourceLineNo">376</span>   * @see #setMaxVersions()<a name="line.376"></a>
-<span class="sourceLineNo">377</span>   * @see #setMaxVersions(int)<a name="line.377"></a>
-<span class="sourceLineNo">378</span>   * @return this<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   * @deprecated As of release 2.0.0, this will be removed in HBase 3.0.0.<a name="line.379"></a>
-<span class="sourceLineNo">380</span>   *             Use {@link #setTimestamp(long)} instead<a name="line.380"></a>
-<span class="sourceLineNo">381</span>   */<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  @Deprecated<a name="line.382"></a>
-<span class="sourceLineNo">383</span>  public Scan setTimeStamp(long timestamp)<a name="line.383"></a>
-<span class="sourceLineNo">384</span>  throws IOException {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    return this.setTimestamp(timestamp);<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  }<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>  /**<a name="line.388"></a>
-<span class="sourceLineNo">389</span>   * Get versions of columns with the specified timestamp. Note, default maximum<a name="line.389"></a>
-<span class="sourceLineNo">390</span>   * versions to return is 1.  If your time range spans more than one version<a name="line.390"></a>
-<span class="sourceLineNo">391</span>   * and you want all versions returned, up the number of versions beyond the<a name="line.391"></a>
-<span class="sourceLineNo">392</span>   * defaut.<a name="line.392"></a>
-<span class="sourceLineNo">393</span>   * @param timestamp version timestamp<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   * @see #setMaxVersions()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>   * @see #setMaxVersions(int)<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   * @return this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>   */<a name="line.397"></a>
-<span class="sourceLineNo">398</span>  public Scan setTimestamp(long timestamp) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    try {<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      tr = new TimeRange(timestamp, timestamp + 1);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    } catch(Exception e) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>      // This should never happen, unless integer overflow or something extremely wrong...<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      LOG.error("TimeRange failed, likely caused by integer overflow. ", e);<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      throw e;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    }<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>    return this;<a name="line.407"></a>
-<span class="sourceLineNo">408</span>  }<a name="line.408"></a>
+<span class="sourceLineNo">350</span>    if (qualifier == null) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      qualifier = HConstants.EMPTY_BYTE_ARRAY;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    set.add(qualifier);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    return this;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>  /**<a name="line.357"></a>
+<span class="sourceLineNo">358</span>   * Get versions of columns only within the specified timestamp range,<a name="line.358"></a>
+<span class="sourceLineNo">359</span>   * [minStamp, maxStamp).  Note, default maximum versions to return is 1.  If<a name="line.359"></a>
+<span class="sourceLineNo">360</span>   * your time range spans more than one version and you want all versions<a name="line.360"></a>
+<span class="sourceLineNo">361</span>   * returned, up the number of versions beyond the default.<a name="line.361"></a>
+<span class="sourceLineNo">362</span>   * @param minStamp minimum timestamp value, inclusive<a name="line.362"></a>
+<span class="sourceLineNo">363</span>   * @param maxStamp maximum timestamp value, exclusive<a name="line.363"></a>
+<span class="sourceLineNo">364</span>   * @see #setMaxVersions()<a name="line.364"></a>
+<span class="sourceLineNo">365</span>   * @see #setMaxVersions(int)<a name="line.365"></a>
+<span class="sourceLineNo">366</span>   * @return this<a name="line.366"></a>
+<span class="sourceLineNo">367</span>   */<a name="line.367"></a>
+<span class="sourceLineNo">368</span>  public Scan setTimeRange(long minStamp, long maxStamp) throws IOException {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    tr = new TimeRange(minStamp, maxStamp);<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    return this;<a name="line.370"></a>
+<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>  /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>   * Get versions of columns with the specified timestamp. Note, default maximum<a name="line.374"></a>
+<span class="sourceLineNo">375</span>   * versions to return is 1.  If your time range spans more than one version<a name="line.375"></a>
+<span class="sourceLineNo">376</span>   * and you want all versions returned, up the number of versions beyond the<a name="line.376"></a>
+<span class="sourceLineNo">377</span>   * defaut.<a name="line.377"></a>
+<span class="sourceLineNo">378</span>   * @param timestamp version timestamp<a name="line.378"></a>
+<span class="sourceLineNo">379</span>   * @see #setMaxVersions()<a name="line.379"></a>
+<span class="sourceLineNo">380</span>   * @see #setMaxVersions(int)<a name="line.380"></a>
+<span class="sourceLineNo">381</span>   * @return this<a name="line.381"></a>
+<span class="sourceLineNo">382</span>   * @deprecated As of release 2.0.0, this will be removed in HBase 3.0.0.<a name="line.382"></a>
+<span class="sourceLineNo">383</span>   *             Use {@link #setTimestamp(long)} instead<a name="line.383"></a>
+<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  @Deprecated<a name="line.385"></a>
+<span class="sourceLineNo">386</span>  public Scan setTimeStamp(long timestamp)<a name="line.386"></a>
+<span class="sourceLineNo">387</span>  throws IOException {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    return this.setTimestamp(timestamp);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>  /**<a name="line.391"></a>
+<span class="sourceLineNo">392</span>   * Get versions of columns with the specified timestamp. Note, default maximum<a name="line.392"></a>
+<span class="sourceLineNo">393</span>   * versions to return is 1.  If your time range spans more than one version<a name="line.393"></a>
+<span class="sourceLineNo">394</span>   * and you want all versions returned, up the number of versions beyond the<a name="line.394"></a>
+<span class="sourceLineNo">395</span>   * defaut.<a name="line.395"></a>
+<span class="sourceLineNo">396</span>   * @param timestamp version timestamp<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   * @see #setMaxVersions()<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   * @see #setMaxVersions(int)<a name="line.398"></a>
+<span class="sourceLineNo">399</span>   * @return this<a name="line.399"></a>
+<span class="sourceLineNo">400</span>   */<a name="line.400"></a>
+<span class="sourceLineNo">401</span>  public Scan setTimestamp(long timestamp) {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    try {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      tr = new TimeRange(timestamp, timestamp + 1);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    } catch(Exception e) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      // This should never happen, unless integer overflow or something extremely wrong...<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      LOG.error("TimeRange failed, likely caused by integer overflow. ", e);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      throw e;<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>  @Override public Scan setColumnFamilyTimeRange(byte[] cf, long minStamp, long maxStamp) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return (Scan) super.setColumnFamilyTimeRange(cf, minStamp, maxStamp);<a name="line.411"></a>
-<span class="sourceLineNo">412</span>  }<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span>  /**<a name="line.414"></a>
-<span class="sourceLineNo">415</span>   * Set the start row of the scan.<a name="line.415"></a>
-<span class="sourceLineNo">416</span>   * &lt;p&gt;<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * If the specified row does not exist, the Scanner will start from the next closest row after the<a name="line.417"></a>
-<span class="sourceLineNo">418</span>   * specified row.<a name="line.418"></a>
-<span class="sourceLineNo">419</span>   * @param startRow row to start scanner at or after<a name="line.419"></a>
-<span class="sourceLineNo">420</span>   * @return this<a name="line.420"></a>
-<span class="sourceLineNo">421</span>   * @throws IllegalArgumentException if startRow does not meet criteria for a row key (when length<a name="line.421"></a>
-<span class="sourceLineNo">422</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.422"></a>
-<span class="sourceLineNo">423</span>   * @deprecated use {@link #withStartRow(byte[])} instead. This method may change the inclusive of<a name="line.423"></a>
-<span class="sourceLineNo">424</span>   *             the stop row to keep compatible with the old behavior.<a name="line.424"></a>
-<span class="sourceLineNo">425</span>   */<a name="line.425"></a>
-<span class="sourceLineNo">426</span>  @Deprecated<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  public Scan setStartRow(byte[] startRow) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    withStartRow(startRow);<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    if (ClientUtil.areScanStartRowAndStopRowEqual(this.startRow, this.stopRow)) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      // for keeping the old behavior that a scan with the same start and stop row is a get scan.<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      this.includeStopRow = true;<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    return this;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>  /**<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   * Set the start row of the scan.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   * &lt;p&gt;<a name="line.438"></a>
-<span class="sourceLineNo">439</span>   * If the specified row does not exist, the Scanner will start from the next closest row after the<a name="line.439"></a>
-<span class="sourceLineNo">440</span>   * specified row.<a name="line.440"></a>
-<span class="sourceLineNo">441</span>   * @param startRow row to start scanner at or after<a name="line.441"></a>
-<span class="sourceLineNo">442</span>   * @return this<a name="line.442"></a>
-<span class="sourceLineNo">443</span>   * @throws IllegalArgumentException if startRow does not meet criteria for a row key (when length<a name="line.443"></a>
-<span class="sourceLineNo">444</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.444"></a>
-<span class="sourceLineNo">445</span>   */<a name="line.445"></a>
-<span class="sourceLineNo">446</span>  public Scan withStartRow(byte[] startRow) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    return withStartRow(startRow, true);<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  }<a name="line.448"></a>
-<span class="sourceLineNo">449</span><a name="line.449"></a>
-<span class="sourceLineNo">450</span>  /**<a name="line.450"></a>
-<span class="sourceLineNo">451</span>   * Set the start row of the scan.<a name="line.451"></a>
-<span class="sourceLineNo">452</span>   * &lt;p&gt;<a name="line.452"></a>
-<span class="sourceLineNo">453</span>   * If the specified row does not exist, or the {@code inclusive} is {@code false}, the Scanner<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * will start from the next closest row after the specified row.<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * @param startRow row to start scanner at or after<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * @param inclusive whether we should include the start row when scan<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * @return this<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   * @throws IllegalArgumentException if startRow does not meet criteria for a row key (when length<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   */<a name="line.460"></a>
-<span class="sourceLineNo">461</span>  public Scan withStartRow(byte[] startRow, boolean inclusive) {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    if (Bytes.len(startRow) &gt; HConstants.MAX_ROW_LENGTH) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      throw new IllegalArgumentException("startRow's length must be less than or equal to "<a name="line.463"></a>
-<span class="sourceLineNo">464</span>          + HConstants.MAX_ROW_LENGTH + " to meet the criteria" + " for a row key.");<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    }<a name="line.465"></a>
-<span class="sourceLineNo">466</span>    this.startRow = startRow;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    this.includeStartRow = inclusive;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    return this;<a name="line.468"></a>
-<span class="sourceLineNo">469</span>  }<a name="line.469"></a>
-<span class="sourceLineNo">470</span><a name="line.470"></a>
-<span class="sourceLineNo">471</span>  /**<a name="line.471"></a>
-<span class="sourceLineNo">472</span>   * Set the stop row of the scan.<a name="line.472"></a>
-<span class="sourceLineNo">473</span>   * &lt;p&gt;<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   * The scan will include rows that are lexicographically less than the provided stopRow.<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   * &lt;p&gt;<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * &lt;b&gt;Note:&lt;/b&gt; When doing a filter for a rowKey &lt;u&gt;Prefix&lt;/u&gt; use<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * {@link #setRowPrefixFilter(byte[])}. The 'trailing 0' will not yield the desired result.<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * &lt;/p&gt;<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   * @param stopRow row to end at (exclusive)<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * @return this<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * @throws IllegalArgumentException if stopRow does not meet criteria for a row key (when length<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   * @deprecated use {@link #withStartRow(byte[])} instead. This method may change the inclusive of<a name="line.483"></a>
-<span class="sourceLineNo">484</span>   *             the stop row to keep compatible with the old behavior.<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   */<a name="line.485"></a>
-<span class="sourceLineNo">486</span>  @Deprecated<a name="line.486"></a>
-<span class="sourceLineNo">487</span>  public Scan setStopRow(byte[] stopRow) {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    withStopRow(stopRow);<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    if (ClientUtil.areScanStartRowAndStopRowEqual(this.startRow, this.stopRow)) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      // for keeping the old behavior that a scan with the same start and stop row is a get scan.<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      this.includeStopRow = true;<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    }<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    return this;<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>  /**<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   * Set the stop row of the scan.<a name="line.497"></a>
-<span class="sourceLineNo">498</span>   * &lt;p&gt;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>   * The scan will include rows that are lexicographically less than the provided stopRow.<a name="line.499"></a>
-<span class="sourceLineNo">500</span>   * &lt;p&gt;<a name="line.500"></a>
-<span class="sourceLineNo">501</span>   * &lt;b&gt;Note:&lt;/b&gt; When doing a filter for a rowKey &lt;u&gt;Prefix&lt;/u&gt; use<a name="line.501"></a>
-<span class="sourceLineNo">502</span>   * {@link #setRowPrefixFilter(byte[])}. The 'trailing 0' will not yield the desired result.<a name="line.502"></a>
-<span class="sourceLineNo">503</span>   * &lt;/p&gt;<a name="line.503"></a>
-<span class="sourceLineNo">504</span>   * @param stopRow row to end at (exclusive)<a name="line.504"></a>
-<span class="sourceLineNo">505</span>   * @return this<a name="line.505"></a>
-<span class="sourceLineNo">506</span>   * @throws IllegalArgumentException if stopRow does not meet criteria for a row key (when length<a name="line.506"></a>
-<span class="sourceLineNo">507</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.507"></a>
-<span class="sourceLineNo">508</span>   */<a name="line.508"></a>
-<span class="sourceLineNo">509</span>  public Scan withStopRow(byte[] stopRow) {<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    return withStopRow(stopRow, false);<a name="line.510"></a>
-<span class="sourceLineNo">511</span>  }<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>   * Set the stop row of the scan.<a name="line.514"></a>
-<span class="sourceLineNo">515</span>   * &lt;p&gt;<a name="line.515"></a>
-<span class="sourceLineNo">516</span>   * The scan will include rows that are lexicographically less than (or equal to if<a name="line.516"></a>
-<span class="sourceLineNo">517</span>   * {@code inclusive} is {@code true}) the provided stopRow.<a name="line.517"></a>
-<span class="sourceLineNo">518</span>   * @param stopRow row to end at<a name="line.518"></a>
-<span class="sourceLineNo">519</span>   * @param inclusive whether we should include the stop row when scan<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   * @return this<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   * @throws IllegalArgumentException if stopRow does not meet criteria for a row key (when length<a name="line.521"></a>
-<span class="sourceLineNo">522</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.522"></a>
-<span class="sourceLineNo">523</span>   */<a name="line.523"></a>
-<span class="sourceLineNo">524</span>  public Scan withStopRow(byte[] stopRow, boolean inclusive) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>    if (Bytes.len(stopRow) &gt; HConstants.MAX_ROW_LENGTH) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      throw new IllegalArgumentException("stopRow's length must be less than or equal to "<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          + HConstants.MAX_ROW_LENGTH + " to meet the criteria" + " for a row key.");<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    }<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    this.stopRow = stopRow;<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    this.includeStopRow = inclusive;<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    return this;<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>  /**<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   * &lt;p&gt;Set a filter (using stopRow and startRow) so the result set only contains rows where the<a name="line.535"></a>
-<span class="sourceLineNo">536</span>   * rowKey starts with the specified prefix.&lt;/p&gt;<a name="line.536"></a>
-<span class="sourceLineNo">537</span>   * &lt;p&gt;This is a utility method that converts the desired rowPrefix into the appropriate values<a name="line.537"></a>
-<span class="sourceLineNo">538</span>   * for the startRow and stopRow to achieve the desired result.&lt;/p&gt;<a name="line.538"></a>
-<span class="sourceLineNo">539</span>   * &lt;p&gt;This can safely be used in combination with setFilter.&lt;/p&gt;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>   * &lt;p&gt;&lt;b&gt;NOTE: Doing a {@link #setStartRow(byte[])} and/or {@link #setStopRow(byte[])}<a name="line.540"></a>
-<span class="sourceLineNo">541</span>   * after this method will yield undefined results.&lt;/b&gt;&lt;/p&gt;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>   * @param rowPrefix the prefix all rows must start with. (Set &lt;i&gt;null&lt;/i&gt; to remove the filter.)<a name="line.542"></a>
-<span class="sourceLineNo">543</span>   * @return this<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   */<a name="line.544"></a>
-<span class="sourceLineNo">545</span>  public Scan setRowPrefixFilter(byte[] rowPrefix) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    if (rowPrefix == null) {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      setStartRow(HConstants.EMPTY_START_ROW);<a name="line.547"></a>
-<span class="sourceLineNo">548</span>      setStopRow(HConstants.EMPTY_END_ROW);<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    } else {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      this.setStartRow(rowPrefix);<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      this.setStopRow(calculateTheClosestNextRowKeyForPrefix(rowPrefix));<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    }<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    return this;<a name="line.553"></a>
-<span class="sourceLineNo">554</span>  }<a name="line.554"></a>
-<span class="sourceLineNo">555</span><a name="line.555"></a>
-<span class="sourceLineNo">556</span>  /**<a name="line.556"></a>
-<span class="sourceLineNo">557</span>   * &lt;p&gt;When scanning for a prefix the scan should stop immediately after the the last row that<a name="line.557"></a>
-<span class="sourceLineNo">558</span>   * has the specified prefix. This method calculates the closest next rowKey immediately following<a name="line.558"></a>
-<span class="sourceLineNo">559</span>   * the given rowKeyPrefix.&lt;/p&gt;<a name="line.559"></a>
-<span class="sourceLineNo">560</span>   * &lt;p&gt;&lt;b&gt;IMPORTANT: This converts a rowKey&lt;u&gt;Prefix&lt;/u&gt; into a rowKey&lt;/b&gt;.&lt;/p&gt;<a name="line.560"></a>
-<span class="sourceLineNo">561</span>   * &lt;p&gt;If the prefix is an 'ASCII' string put into a byte[] then this is easy because you can<a name="line.561"></a>
-<span class="sourceLineNo">562</span>   * simply increment the last byte of the array.<a name="line.562"></a>
-<span class="sourceLineNo">563</span>   * But if your application uses real binary rowids you may run into the scenario that your<a name="line.563"></a>
-<span class="sourceLineNo">564</span>   * prefix is something like:&lt;/p&gt;<a name="line.564"></a>
-<span class="sourceLineNo">565</span>   * &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;{ 0x12, 0x23, 0xFF, 0xFF }&lt;/b&gt;&lt;br/&gt;<a name="line.565"></a>
-<span class="sourceLineNo">566</span>   * Then this stopRow needs to be fed into the actual scan&lt;br/&gt;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>   * &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;{ 0x12, 0x24 }&lt;/b&gt; (Notice that it is shorter now)&lt;br/&gt;<a name="line.567"></a>
-<span class="sourceLineNo">568</span>   * This method calculates the correct stop row value for this usecase.<a name="line.568"></a>
-<span class="sourceLineNo">569</span>   *<a name="line.569"></a>
-<span class="sourceLineNo">570</span>   * @param rowKeyPrefix the rowKey&lt;u&gt;Prefix&lt;/u&gt;.<a name="line.570"></a>
-<span class="sourceLineNo">571</span>   * @return the closest next rowKey immediately following the given rowKeyPrefix.<a name="line.571"></a>
-<span class="sourceLineNo">572</span>   */<a name="line.572"></a>
-<span class="sourceLineNo">573</span>  private byte[] calculateTheClosestNextRowKeyForPrefix(byte[] rowKeyPrefix) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    // Essentially we are treating it like an 'unsigned very very long' and doing +1 manually.<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    // Search for the place where the trailing 0xFFs start<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    int offset = rowKeyPrefix.length;<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    while (offset &gt; 0) {<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      if (rowKeyPrefix[offset - 1] != (byte) 0xFF) {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>        break;<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      }<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      offset--;<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    }<a name="line.582"></a>
-<span class="sourceLineNo">583</span><a name="line.583"></a>
-<span class="sourceLineNo">584</span>    if (offset == 0) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      // We got an 0xFFFF... (only FFs) stopRow value which is<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      // the last possible prefix before the end of the table.<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      // So set it to stop at the 'end of the table'<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      return HConstants.EMPTY_END_ROW;<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>    // Copy the right length of the original<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    byte[] newStopRow = Arrays.copyOfRange(rowKeyPrefix, 0, offset);<a name="line.592"></a>
-<span class="sourceLineNo">593</span>    // And increment the last one<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    newStopRow[newStopRow.length - 1]++;<a name="line.594"></a>
-<span class="sourceLineNo">595</span>    return newStopRow;<a name="line.595"></a>
-<span class="sourceLineNo">596</span>  }<a name="line.596"></a>
-<span class="sourceLineNo">597</span><a name="line.597"></a>
-<span class="sourceLineNo">598</span>  /**<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * Get all available versions.<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * @return this<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   * @deprecated It is easy to misunderstand with column family's max versions, so use<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   *             {@link #readAllVersions()} instead.<a name="line.602"></a>
-<span class="sourceLineNo">603</span>   */<a name="line.603"></a>
-<span class="sourceLineNo">604</span>  @Deprecated<a name="line.604"></a>
-<span class="sourceLineNo">605</span>  public Scan setMaxVersions() {<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    return readAllVersions();<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>   * Get up to the specified number of versions of each column.<a name="line.610"></a>
-<span class="sourceLineNo">611</span>   * @param maxVersions maximum versions for each column<a name="line.611"></a>
-<span class="sourceLineNo">612</span>   * @return this<a name="line.612"></a>
-<span class="sourceLineNo">613</span>   * @deprecated It is easy to misunderstand with column family's max versions, so use<a name="line.613"></a>
-<span class="sourceLineNo">614</span>   *             {@link #readVersions(int)} instead.<a name="line.614"></a>
-<span class="sourceLineNo">615</span>   */<a name="line.615"></a>
-<span class="sourceLineNo">616</span>  @Deprecated<a name="line.616"></a>
-<span class="sourceLineNo">617</span>  public Scan setMaxVersions(int maxVersions) {<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    return readVersions(maxVersions);<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>  /**<a name="line.621"></a>
-<span class="sourceLineNo">622</span>   * Get all available versions.<a name="line.622"></a>
-<span class="sourceLineNo">623</span>   * @return this<a name="line.623"></a>
-<span class="sourceLineNo">624</span>   */<a name="line.624"></a>
-<span class="sourceLineNo">625</span>  public Scan readAllVersions() {<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    this.maxVersions = Integer.MAX_VALUE;<a name="line.626"></a>
-<span class="sourceLineNo">627</span>    return this;<a name="line.627"></a>
-<span class="sourceLineNo">628</span>  }<a name="line.628"></a>
-<span class="sourceLineNo">629</span><a name="line.629"></a>
-<span class="sourceLineNo">630</span>  /**<a name="line.630"></a>
-<span class="sourceLineNo">631</span>   * Get up to the specified number of versions of each column.<a name="line.631"></a>
-<span class="sourceLineNo">632</span>   * @param versions specified number of versions for each column<a name="line.632"></a>
-<span class="sourceLineNo">633</span>   * @return this<a name="line.633"></a>
-<span class="sourceLineNo">634</span>   */<a name="line.634"></a>
-<span class="sourceLineNo">635</span>  public Scan readVersions(int versions) {<a name="line.635"></a>
-<span class="sourceLineNo">636</span>    this.maxVersions = versions;<a name="line.636"></a>
-<span class="sourceLineNo">637</span>    return this;<a name="line.637"></a>
-<span class="sourceLineNo">638</span>  }<a name="line.638"></a>
-<span class="sourceLineNo">639</span><a name="line.639"></a>
-<span class="sourceLineNo">640</span>  /**<a name="line.640"></a>
-<span class="sourceLineNo">641</span>   * Set the maximum number of cells to return for each call to next(). Callers should be aware<a name="line.641"></a>
-<span class="sourceLineNo">642</span>   * that this is not equivalent to calling {@link #setAllowPartialResults(boolean)}.<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * If you don't allow partial results, the number of cells in each Result must equal to your<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   * batch setting unless it is the last Result for current row. So this method is helpful in paging<a name="line.644"></a>
-<span class="sourceLineNo">645</span>   * queries. If you just want to prevent OOM at client, use setAllowPartialResults(true) is better.<a name="line.645"></a>
-<span class="sourceLineNo">646</span>   * @param batch the maximum number of values<a name="line.646"></a>
-<span class="sourceLineNo">647</span>   * @see Result#mayHaveMoreCellsInRow()<a name="line.647"></a>
-<span class="sourceLineNo">648</span>   */<a name="line.648"></a>
-<span class="sourceLineNo">649</span>  public Scan setBatch(int batch) {<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    if (this.hasFilter() &amp;&amp; this.filter.hasFilterRow()) {<a name="line.650"></a>
-<span class="sourceLineNo">651</span>      throw new IncompatibleFilterException(<a name="line.651"></a>
-<span class="sourceLineNo">652</span>        "Cannot set batch on a scan using a filter" +<a name="line.652"></a>
-<span class="sourceLineNo">653</span>        " that returns true for filter.hasFilterRow");<a name="line.653"></a>
-<span class="sourceLineNo">654</span>    }<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    this.batch = batch;<a name="line.655"></a>
-<span class="sourceLineNo">656</span>    return this;<a name="line.656"></a>
-<span class="sourceLineNo">657</span>  }<a name="line.657"></a>
-<span class="sourceLineNo">658</span><a name="line.658"></a>
-<span class="sourceLineNo">659</span>  /**<a name="line.659"></a>
-<span class="sourceLineNo">660</span>   * Set the maximum number of values to return per row per Column Family<a name="line.660"></a>
-<span class="sourceLineNo">661</span>   * @param limit the maximum number of values returned / row / CF<a name="line.661"></a>
-<span class="sourceLineNo">662</span>   */<a name="line.662"></a>
-<span class="sourceLineNo">663</span>  public Scan setMaxResultsPerColumnFamily(int limit) {<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    this.storeLimit = limit;<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    return this;<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span>  /**<a name="line.668"></a>
-<span class="sourceLineNo">669</span>   * Set offset for the row per Column Family.<a name="line.669"></a>
-<span class="sourceLineNo">670</span>   * @param offset is the number of kvs that will be skipped.<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   */<a name="line.671"></a>
-<span class="sourceLineNo">672</span>  public Scan setRowOffsetPerColumnFamily(int offset) {<a name="line.672"></a>
-<span class="sourceLineNo">673</span>    this.storeOffset = offset;<a name="line.673"></a>
-<span class="sourceLineNo">674</span>    return this;<a name="line.674"></a>
-<span class="sourceLineNo">675</span>  }<a name="line.675"></a>
-<span class="sourceLineNo">676</span><a name="line.676"></a>
-<span class="sourceLineNo">677</span>  /**<a name="line.677"></a>
-<span class="sourceLineNo">678</span>   * Set the number of rows for caching that will be passed to scanners.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>   * If not set, the Configuration setting {@link HConstants#HBASE_CLIENT_SCANNER_CACHING} will<a name="line.679"></a>
-<span class="sourceLineNo">680</span>   * apply.<a name="line.680"></a>
-<span class="sourceLineNo">681</span>   * Higher caching values will enable faster scanners but will use more memory.<a name="line.681"></a>
-<span class="sourceLineNo">682</span>   * @param caching the number of rows for caching<a name="line.682"></a>
-<span class="sourceLineNo">683</span>   */<a name="line.683"></a>
-<span class="sourceLineNo">684</span>  public Scan setCaching(int caching) {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    this.caching = caching;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    return this;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>  }<a name="line.687"></a>
-<span class="sourceLineNo">688</span><a name="line.688"></a>
-<span class="sourceLineNo">689</span>  /**<a name="line.689"></a>
-<span class="sourceLineNo">690</span>   * @return the maximum result size in bytes. See {@link #setMaxResultSize(long)}<a name="line.690"></a>
-<span class="sourceLineNo">691</span>   */<a name="line.691"></a>
-<span class="sourceLineNo">692</span>  public long getMaxResultSize() {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    return maxResultSize;<a name="line.693"></a>
-<span class="sourceLineNo">694</span>  }<a name="line.694"></a>
-<span class="sourceLineNo">695</span><a name="line.695"></a>
-<span class="sourceLineNo">696</span>  /**<a name="line.696"></a>
-<span class="sourceLineNo">697</span>   * Set the maximum result size. The default is -1; this means that no specific<a name="line.697"></a>
-<span class="sourceLineNo">698</span>   * maximum result size will be set for this scan, and the global configured<a name="line.698"></a>
-<span class="sourceLineNo">699</span>   * value will be used instead. (Defaults to unlimited).<a name="line.699"></a>
-<span class="sourceLineNo">700</span>   *<a name="line.700"></a>
-<span class="sourceLineNo">701</span>   * @param maxResultSize The maximum result size in bytes.<a name="line.701"></a>
-<span class="sourceLineNo">702</span>   */<a name="line.702"></a>
-<span class="sourceLineNo">703</span>  public Scan setMaxResultSize(long maxResultSize) {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    this.maxResultSize = maxResultSize;<a name="line.704"></a>
-<span class="sourceLineNo">705</span>    return this;<a name="line.705"></a>
-<span class="sourceLineNo">706</span>  }<a name="line.706"></a>
-<span class="sourceLineNo">707</span><a name="line.707"></a>
-<span class="sourceLineNo">708</span>  @Override<a name="line.708"></a>
-<span class="sourceLineNo">709</span>  public Scan setFilter(Filter filter) {<a name="line.709"></a>
-<span class="sourceLineNo">710</span>    super.setFilter(filter);<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    return this;<a name="line.711"></a>
-<span class="sourceLineNo">712</span>  }<a name="line.712"></a>
-<span class="sourceLineNo">713</span><a name="line.713"></a>
-<span class="sourceLineNo">714</span>  /**<a name="line.714"></a>
-<span class="sourceLineNo">715</span>   * Setting the familyMap<a name="line.715"></a>
-<span class="sourceLineNo">716</span>   * @param familyMap map of family to qualifier<a name="line.716"></a>
-<span class="sourceLineNo">717</span>   * @return this<a name="line.717"></a>
-<span class="sourceLineNo">718</span>   */<a name="line.718"></a>
-<span class="sourceLineNo">719</span>  public Scan setFamilyMap(Map&lt;byte [], NavigableSet&lt;byte []&gt;&gt; familyMap) {<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    this.familyMap = familyMap;<a name="line.720"></a>
-<span class="sourceLineNo">721</span>    return this;<a name="line.721"></a>
-<span class="sourceLineNo">722</span>  }<a name="line.722"></a>
-<span class="sourceLineNo">723</span><a name="line.723"></a>
-<span class="sourceLineNo">724</span>  /**<a name="line.724"></a>
-<span class="sourceLineNo">725</span>   * Getting the familyMap<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   * @return familyMap<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   */<a name="line.727"></a>
-<span class="sourceLineNo">728</span>  public Map&lt;byte [], NavigableSet&lt;byte []&gt;&gt; getFamilyMap() {<a name="line.728"></a>
-<span class="sourceLineNo">729</span>    return this.familyMap;<a name="line.729"></a>
-<span class="sourceLineNo">730</span>  }<a name="line.730"></a>
-<span class="sourceLineNo">731</span><a name="line.731"></a>
-<span class="sourceLineNo">732</span>  /**<a name="line.732"></a>
-<span class="sourceLineNo">733</span>   * @return the number of families in familyMap<a name="line.733"></a>
-<span class="sourceLineNo">734</span>   */<a name="line.734"></a>
-<span class="sourceLineNo">735</span>  public int numFamilies() {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>    if(hasFamilies()) {<a name="line.736"></a>
-<span class="sourceLineNo">737</span>      return this.familyMap.size();<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    }<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    return 0;<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  }<a name="line.740"></a>
-<span class="sourceLineNo">741</span><a name="line.741"></a>
-<span class="sourceLineNo">742</span>  /**<a name="line.742"></a>
-<span class="sourceLineNo">743</span>   * @return true if familyMap is non empty, false otherwise<a name="line.743"></a>
-<span class="sourceLineNo">744</span>   */<a name="line.744"></a>
-<span class="sourceLineNo">745</span>  public boolean hasFamilies() {<a name="line.745"></a>
-<span class="sourceLineNo">746</span>    return !this.familyMap.isEmpty();<a name="line.746"></a>
-<span class="sourceLineNo">747</span>  }<a name="line.747"></a>
-<span class="sourceLineNo">748</span><a name="line.748"></a>
-<span class="sourceLineNo">749</span>  /**<a name="line.749"></a>
-<span class="sourceLineNo">750</span>   * @return the keys of the familyMap<a name="line.750"></a>
-<span class="sourceLineNo">751</span>   */<a name="line.751"></a>
-<span class="sourceLineNo">752</span>  public byte[][] getFamilies() {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    if(hasFamilies()) {<a name="line.753"></a>
-<span class="sourceLineNo">754</span>      return this.familyMap.keySet().toArray(new byte[0][0]);<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    }<a name="line.755"></a>
-<span class="sourceLineNo">756</span>    return null;<a name="line.756"></a>
-<span class="sourceLineNo">757</span>  }<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>  /**<a name="line.759"></a>
-<span class="sourceLineNo">760</span>   * @return the startrow<a name="line.760"></a>
-<span class="sourceLineNo">761</span>   */<a name="line.761"></a>
-<span class="sourceLineNo">762</span>  public byte [] getStartRow() {<a name="line.762"></a>
-<span class="sourceLineNo">763</span>    return this.startRow;<a name="line.763"></a>
-<span class="sourceLineNo">764</span>  }<a name="line.764"></a>
-<span class="sourceLineNo">765</span><a name="line.765"></a>
-<span class="sourceLineNo">766</span>  /**<a name="line.766"></a>
-<span class="sourceLineNo">767</span>   * @return if we should include start row when scan<a name="line.767"></a>
-<span class="sourceLineNo">768</span>   */<a name="line.768"></a>
-<span class="sourceLineNo">769</span>  public boolean includeStartRow() {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    return includeStartRow;<a name="line.770"></a>
-<span class="sourceLineNo">771</span>  }<a name="line.771"></a>
-<span class="sourceLineNo">772</span><a name="line.772"></a>
-<span class="sourceLineNo">773</span>  /**<a name="line.773"></a>
-<span class="sourceLineNo">774</span>   * @return the stoprow<a name="line.774"></a>
-<span class="sourceLineNo">775</span>   */<a name="line.775"></a>
-<span class="sourceLineNo">776</span>  public byte[] getStopRow() {<a name="line.776"></a>
-<span class="sourceLineNo">777</span>    return this.stopRow;<a name="line.777"></a>
-<span class="sourceLineNo">778</span>  }<a name="line.778"></a>
-<span class="sourceLineNo">779</span><a name="line.779"></a>
-<span class="sourceLineNo">780</span>  /**<a name="line.780"></a>
-<span class="sourceLineNo">781</span>   * @return if we should include stop row when scan<a name="line.781"></a>
-<span class="sourceLineNo">782</span>   */<a name="line.782"></a>
-<span class="sourceLineNo">783</span>  public boolean includeStopRow() {<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    return includeStopRow;<a name="line.784"></a>
-<span class="sourceLineNo">785</span>  }<a name="line.785"></a>
-<span class="sourceLineNo">786</span><a name="line.786"></a>
-<span class="sourceLineNo">787</span>  /**<a name="line.787"></a>
-<span class="sourceLineNo">788</span>   * @return the max number of versions to fetch<a name="line.788"></a>
-<span class="sourceLineNo">789</span>   */<a name="line.789"></a>
-<span class="sourceLineNo">790</span>  public int getMaxVersions() {<a name="line.790"></a>
-<span class="sourceLineNo">791</span>    return this.maxVersions;<a name="line.791"></a>
-<span class="sourceLineNo">792</span>  }<a name="line.792"></a>
-<span class="sourceLineNo">793</span><a name="line.793"></a>
-<span class="sourceLineNo">794</span>  /**<a name="line.794"></a>
-<span class="sourceLineNo">795</span>   * @return maximum number of values to return for a single call to next()<a name="line.795"></a>
-<span class="sourceLineNo">796</span>   */<a name="line.796"></a>
-<span class="sourceLineNo">797</span>  public int getBatch() {<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    return this.batch;<a name="line.798"></a>
-<span class="sourceLineNo">799</span>  }<a name="line.799"></a>
-<span class="sourceLineNo">800</span><a name="line.800"></a>
-<span class="sourceLineNo">801</span>  /**<a name="line.801"></a>
-<span class="sourceLineNo">802</span>   * @return maximum number of values to return per row per CF<a name="line.802"></a>
-<span class="sourceLineNo">803</span>   */<a name="line.803"></a>
-<span class="sourceLineNo">804</span>  public int getMaxResultsPerColumnFamily() {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>    return this.storeLimit;<a name="line.805"></a>
-<span class="sourceLineNo">806</span>  }<a name="line.806"></a>
-<span class="sourceLineNo">807</span><a name="line.807"></a>
-<span class="sourceLineNo">808</span>  /**<a name="line.808"></a>
-<span class="sourceLineNo">809</span>   * Method for retrieving the scan's offset per row per column<a name="line.809"></a>
-<span class="sourceLineNo">810</span>   * family (#kvs to be skipped)<a name="line.810"></a>
-<span class="sourceLineNo">811</span>   * @return row offset<a name="line.811"></a>
-<span class="sourceLineNo">812</span>   */<a name="line.812"></a>
-<span class="sourceLineNo">813</span>  public int getRowOffsetPerColumnFamily() {<a name="line.813"></a>
-<span class="sourceLineNo">814</span>    return this.storeOffset;<a name="line.814"></a>
-<span class="sourceLineNo">815</span>  }<a name="line.815"></a>
-<span class="sourceLineNo">816</span><a name="line.816"></a>
-<span class="sourceLineNo">817</span>  /**<a name="line.817"></a>
-<span class="sourceLineNo">818</span>   * @return caching the number of rows fetched when calling next on a scanner<a name="line.818"></a>
-<span class="sourceLineNo">819</span>   */<a name="line.819"></a>
-<span class="sourceLineNo">820</span>  public int getCaching() {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>    return this.caching;<a name="line.821"></a>
-<span class="sourceLineNo">822</span>  }<a name="line.822"></a>
-<span class="sourceLineNo">823</span><a name="line.823"></a>
-<span class="sourceLineNo">824</span>  /**<a name="line.824"></a>
-<span class="sourceLineNo">825</span>   * @return TimeRange<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   */<a name="line.826"></a>
-<span class="sourceLineNo">827</span>  public TimeRange getTimeRange() {<a name="line.827"></a>
-<span class="sourceLineNo">828</span>    return this.tr;<a name="line.828"></a>
-<span class="sourceLineNo">829</span>  }<a name="line.829"></a>
-<span class="sourceLineNo">830</span><a name="line.830"></a>
-<span class="sourceLineNo">831</span>  /**<a name="line.831"></a>
-<span class="sourceLineNo">832</span>   * @return RowFilter<a name="line.832"></a>
-<span class="sourceLineNo">833</span>   */<a name="line.833"></a>
-<span class="sourceLineNo">834</span>  @Override<a name="line.834"></a>
-<span class="sourceLineNo">835</span>  public Filter getFilter() {<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    return filter;<a name="line.836"></a>
-<span class="sourceLineNo">837</span>  }<a name="line.837"></a>
-<span class="sourceLineNo">838</span><a name="line.838"></a>
-<span class="sourceLineNo">839</span>  /**<a name="line.839"></a>
-<span class="sourceLineNo">840</span>   * @return true is a filter has been specified, false if not<a name="line.840"></a>
-<span class="sourceLineNo">841</span>   */<a name="line.841"></a>
-<span class="sourceLineNo">842</span>  public boolean hasFilter() {<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    return filter != null;<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  }<a name="line.844"></a>
-<span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  /**<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   * Set whether blocks should be cached for this Scan.<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * &lt;p&gt;<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * This is true by default.  When true, default settings of the table and<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * family are used (this will never override caching blocks if the block<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   * cache is disabled for that family or entirely).<a name="line.851"></a>
-<span class="sourceLineNo">852</span>   *<a name="line.852"></a>
-<span class="sourceLineNo">853</span>   * @param cacheBlocks if false, default settings are overridden and blocks<a name="line.853"></a>
-<span class="sourceLineNo">854</span>   * will not be cached<a name="line.854"></a>
-<span class="sourceLineNo">855</span>   */<a name="line.855"></a>
-<span class="sourceLineNo">856</span>  public Scan setCacheBlocks(boolean cacheBlocks) {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    this.cacheBlocks = cacheBlocks;<a name="line.857"></a>
-<span class="sourceLineNo">858</span>    return this;<a name="line.858"></a>
-<span class="sourceLineNo">859</span>  }<a name="line.859"></a>
-<span class="sourceLineNo">860</span><a name="line.860"></a>
-<span class="sourceLineNo">861</span>  /**<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   * Get whether blocks should be cached for this Scan.<a name="line.862"></a>
-<span class="sourceLineNo">863</span>   * @return true if default caching should be used, false if blocks should not<a name="line.863"></a>
-<span class="sourceLineNo">864</span>   * be cached<a name="line.864"></a>
-<span class="sourceLineNo">865</span>   */<a name="line.865"></a>
-<span class="sourceLineNo">866</span>  public boolean getCacheBlocks() {<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    return cacheBlocks;<a name="line.867"></a>
-<span class="sourceLineNo">868</span>  }<a name="line.868"></a>
-<span class="sourceLineNo">869</span><a name="line.869"></a>
-<span class="sourceLineNo">870</span>  /**<a name="line.870"></a>
-<span class="sourceLineNo">871</span>   * Set whether this scan is a reversed one<a name="line.871"></a>
-<span class="sourceLineNo">872</span>   * &lt;p&gt;<a name="line.872"></a>
-<span class="sourceLineNo">873</span>   * This is false by default which means forward(normal) scan.<a name="line.873"></a>
-<span class="sourceLineNo">874</span>   *<a name="line.874"></a>
-<span class="sourceLineNo">875</span>   * @param reversed if true, scan will be backward order<a name="line.875"></a>
-<span class="sourceLineNo">876</span>   * @return this<a name="line.876"></a>
-<span class="sourceLineNo">877</span>   */<a name="line.877"></a>
-<span class="sourceLineNo">878</span>  public Scan setReversed(boolean reversed) {<a name="line.878"></a>
-<span class="sourceLineNo">879</span>    this.reversed = reversed;<a name="line.879"></a>
-<span class="sourceLineNo">880</span>    return this;<a name="line.880"></a>
-<span class="sourceLineNo">881</span>  }<a name="line.881"></a>
-<span class="sourceLineNo">882</span><a name="line.882"></a>
-<span class="sourceLineNo">883</span>  /**<a name="line.883"></a>
-<span class="sourceLineNo">884</span>   * Get whether this scan is a reversed one.<a name="line.884"></a>
-<span class="sourceLineNo">885</span>   * @return true if backward scan, false if forward(default) scan<a name="line.885"></a>
-<span class="sourceLineNo">886</span>   */<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  public boolean isReversed() {<a name="line.887"></a>
-<span class="sourceLineNo">888</span>    return reversed;<a name="line.888"></a>
-<span class="sourceLineNo">889</span>  }<a name="line.889"></a>
-<span class="sourceLineNo">890</span><a name="line.890"></a>
-<span class="sourceLineNo">891</span>  /**<a name="line.891"></a>
-<span class="sourceLineNo">892</span>   * Setting whether the caller wants to see the partial results when server returns<a name="line.892"></a>
-<span class="sourceLineNo">893</span>   * less-than-expected cells. It is helpful while scanning a huge row to prevent OOM at client.<a name="line.893"></a>
-<span class="sourceLineNo">894</span>   * By default this value is false and the complete results will be assembled client side<a name="line.894"></a>
-<span class="sourceLineNo">895</span>   * before being delivered to the caller.<a name="line.895"></a>
-<span class="sourceLineNo">896</span>   * @param allowPartialResults<a name="line.896"></a>
-<span class="sourceLineNo">897</span>   * @return this<a name="line.897"></a>
-<span class="sourceLineNo">898</span>   * @see Result#mayHaveMoreCellsInRow()<a name="line.898"></a>
-<span class="sourceLineNo">899</span>   * @see #setBatch(int)<a name="line.899"></a>
-<span class="sourceLineNo">900</span>   */<a name="line.900"></a>
-<span class="sourceLineNo">901</span>  public Scan setAllowPartialResults(final boolean allowPartialResults) {<a name="line.901"></a>
-<span class="sourceLineNo">902</span>    this.allowPartialResults = allowPartialResults;<a name="line.902"></a>
-<span class="sourceLineNo">903</span>    return this;<a name="line.903"></a>
-<span class="sourceLineNo">904</span>  }<a name="line.904"></a>
-<span class="sourceLineNo">905</span><a name="line.905"></a>
-<span class="sourceLineNo">906</span>  /**<a name="line.906"></a>
-<span class="sourceLineNo">907</span>   * @return true when the constructor of this scan understands that the results they will see may<a name="line.907"></a>
-<span class="sourceLineNo">908</span>   *         only represent a partial portion of a row. The entire row would be retrieved by<a name="line.908"></a>
-<span class="sourceLineNo">909</span>   *         subsequent calls to {@link ResultScanner#next()}<a name="line.909"></a>
-<span class="sourceLineNo">910</span>   */<a name="line.910"></a>
-<span class="sourceLineNo">911</span>  public boolean getAllowPartialResults() {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>    return allowPartialResults;<a name="line.912"></a>
-<span class="sourceLineNo">913</span>  }<a name="line.913"></a>
-<span class="sourceLineNo">914</span><a name="line.914"></a>
-<span class="sourceLineNo">915</span>  @Override<a name="line.915"></a>
-<span class="sourceLineNo">916</span>  public Scan setLoadColumnFamiliesOnDemand(boolean value) {<a name="line.916"></a>
-<span class="sourceLineNo">917</span>    return (Scan) super.setLoadColumnFamiliesOnDemand(value);<a name="line.917"></a>
-<span class="sourceLineNo">918</span>  }<a name="line.918"></a>
-<span class="sourceLineNo">919</span><a name="line.919"></a>
-<span class="sourceLineNo">920</span>  /**<a name="line.920"></a>
-<span class="sourceLineNo">921</span>   * Compile the table and column family (i.e. schema) information<a name="line.921"></a>
-<span class="sourceLineNo">922</span>   * into a String. Useful for parsing and aggregation by debugging,<a name="line.922"></a>
-<span class="sourceLineNo">923</span>   * logging, and administration tools.<a name="line.923"></a>
-<span class="sourceLineNo">924</span>   * @return Map<a name="line.924"></a>
-<span class="sourceLineNo">925</span>   */<a name="line.925"></a>
-<span class="sourceLineNo">926</span>  @Override<a name="line.926"></a>
-<span class="sourceLineNo">927</span>  public Map&lt;String, Object&gt; getFingerprint() {<a name="line.927"></a>
-<span class="sourceLineNo">928</span>    Map&lt;String, Object&gt; map = new HashMap&lt;&gt;();<a name="line.928"></a>
-<span class="sourceLineNo">929</span>    List&lt;String&gt; families = new ArrayList&lt;&gt;();<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    if(this.familyMap.isEmpty()) {<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      map.put("families", "ALL");<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      return map;<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    } else {<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      map.put("families", families);<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    for (Map.Entry&lt;byte [], NavigableSet&lt;byte[]&gt;&gt; entry :<a name="line.936"></a>
-<span class="sourceLineNo">937</span>        this.familyMap.entrySet()) {<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      families.add(Bytes.toStringBinary(entry.getKey()));<a name="line.938"></a>
-<span class="sourceLineNo">939</span>    }<a name="line.939"></a>
-<span class="sourceLineNo">940</span>    return map;<a name="line.940"></a>
-<span class="sourceLineNo">941</span>  }<a name="line.941"></a>
-<span class="sourceLineNo">942</span><a name="line.942"></a>
-<span class="sourceLineNo">943</span>  /**<a name="line.943"></a>
-<span class="sourceLineNo">944</span>   * Compile the details beyond the scope of getFingerprint (row, columns,<a name="line.944"></a>
-<span class="sourceLineNo">945</span>   * timestamps, etc.) into a Map along with the fingerprinted information.<a name="line.945"></a>
-<span class="sourceLineNo">946</span>   * Useful for debugging, logging, and administration tools.<a name="line.946"></a>
-<span class="sourceLineNo">947</span>   * @param maxCols a limit on the number of columns output prior to truncation<a name="line.947"></a>
-<span class="sourceLineNo">948</span>   * @return Map<a name="line.948"></a>
-<span class="sourceLineNo">949</span>   */<a name="line.949"></a>
-<span class="sourceLineNo">950</span>  @Override<a name="line.950"></a>
-<span class="sourceLineNo">951</span>  public Map&lt;String, Object&gt; toMap(int maxCols) {<a name="line.951"></a>
-<span class="sourceLineNo">952</span>    // start with the fingerpring map and build on top of it<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    Map&lt;String, Object&gt; map = getFingerprint();<a name="line.953"></a>
-<span class="sourceLineNo">954</span>    // map from families to column list replaces fingerprint's list of families<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    Map&lt;String, List&lt;String&gt;&gt; familyColumns = new HashMap&lt;&gt;();<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    map.put("families", familyColumns);<a name="line.956"></a>
-<span class="sourceLineNo">957</span>    // add scalar information first<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    map.put("startRow", Bytes.toStringBinary(this.startRow));<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    map.put("stopRow", Bytes.toStringBinary(this.stopRow));<a name="line.959"></a>
-<span class="sourceLineNo">960</span>    map.put("maxVersions", this.maxVersions);<a name="line.960"></a>
-<span class="sourceLineNo">961</span>    map.put("batch", this.batch);<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    map.put("caching", this.caching);<a name="line.962"></a>
-<span class="sourceLineNo">963</span>    map.put("maxResultSize", this.maxResultSize);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    map.put("cacheBlocks", this.cacheBlocks);<a name="line.964"></a>
-<span class="sourceLineNo">965</span>    map.put("loadColumnFamiliesOnDemand", this.loadColumnFamiliesOnDemand);<a name="line.965"></a>
-<span class="sourceLineNo">966</span>    List&lt;Long&gt; timeRange = new ArrayList&lt;&gt;(2);<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    timeRange.add(this.tr.getMin());<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    timeRange.add(this.tr.getMax());<a name="line.968"></a>
-<span class="sourceLineNo">969</span>    map.put("timeRange", timeRange);<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    int colCount = 0;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    // iterate through affected families and list out up to maxCols columns<a name="line.971"></a>
-<span class="sourceLineNo">972</span>    for (Map.Entry&lt;byte [], NavigableSet&lt;byte[]&gt;&gt; entry :<a name="line.972"></a>
-<span class="sourceLineNo">973</span>      this.familyMap.entrySet()) {<a name="line.973"></a>
-<span class="sourceLineNo">974</span>      List&lt;String&gt; columns = new ArrayList&lt;&gt;();<a name="line.974"></a>
-<span class="sourceLineNo">975</span>      familyColumns.put(Bytes.toStringBinary(entry.getKey()), columns);<a name="line.975"></a>
-<span class="sourceLineNo">976</span>      if(entry.getValue() == null) {<a name="line.976"></a>
-<span class="sourceLineNo">977</span>        colCount++;<a name="line.977"></a>
-<span class="sourceLineNo">978</span>        --maxCols;<a name="line.978"></a>
-<span class="sourceLineNo">979</span>        columns.add("ALL");<a name="line.979"></a>
-<span class="sourceLineNo">980</span>      } else {<a name="line.980"></a>
-<span class="sourceLineNo">981</span>        colCount += entry.getValue().size();<a name="line.981"></a>
-<span class="sourceLineNo">982</span>        if (maxCols &lt;= 0) {<a name="line.982"></a>
-<span class="sourceLineNo">983</span>          continue;<a name="line.983"></a>
-<span class="sourceLineNo">984</span>        }<a name="line.984"></a>
-<span class="sourceLineNo">985</span>        for (byte [] column : entry.getValue()) {<a name="line.985"></a>
-<span class="sourceLineNo">986</span>          if (--maxCols &lt;= 0) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>            continue;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>          }<a name="line.988"></a>
-<span class="sourceLineNo">989</span>          columns.add(Bytes.toStringBinary(column));<a name="line.989"></a>
-<span class="sourceLineNo">990</span>        }<a name="line.990"></a>
-<span class="sourceLineNo">991</span>      }<a name="line.991"></a>
-<span class="sourceLineNo">992</span>    }<a name="line.992"></a>
-<span class="sourceLineNo">993</span>    map.put("totalColumns", colCount);<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    if (this.filter != null) {<a name="line.994"></a>
-<span class="sourceLineNo">995</span>      map.put("filter", this.filter.toString());<a name="line.995"></a>
-<span class="sourceLineNo">996</span>    }<a name="line.996"></a>
-<span class="sourceLineNo">997</span>    // add the id if set<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    if (getId() != null) {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>      map.put("id", getId());<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    }<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    return map;<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>  }<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>  /**<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>   * Enable/disable "raw" mode for this scan.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>   * If "raw" is enabled the scan will return all<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>   * delete marker and deleted rows that have not<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>   * been collected, yet.<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>   * This is mostly useful for Scan on column families<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>   * that have KEEP_DELETED_ROWS enabled.<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>   * It is an error to specify any column when "raw" is set.<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>   * @param raw True/False to enable/disable "raw" mode.<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>   */<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  public Scan setRaw(boolean raw) {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>    setAttribute(RAW_ATTR, Bytes.toBytes(raw));<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    return this;<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>  }<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span><a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>  /**<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>   * @return True if this Scan is in "raw" mode.<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>   */<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>  public boolean isRaw() {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>    byte[] attr = getAttribute(RAW_ATTR);<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    return attr == null ? false : Bytes.toBoolean(attr);<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>  }<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span><a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>  /**<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>   * Set whether this scan is a small scan<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>   * &lt;p&gt;<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>   * Small scan should use pread and big scan can use seek + read seek + read is fast but can cause<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>   * two problem (1) resource contention (2) cause too much network io [89-fb] Using pread for<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>   * non-compaction read request https://issues.apache.org/jira/browse/HBASE-7266 On the other hand,<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>   * if setting it true, we would do openScanner,next,closeScanner in one RPC call. It means the<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>   * better performance for small scan. [HBASE-9488]. Generally, if the scan range is within one<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>   * data block(64KB), it could be considered as a small scan.<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>   * @param small<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>   * @deprecated since 2.0.0. Use {@link #setLimit(int)} and {@link #setReadType(ReadType)} instead.<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>   *             And for the one rpc optimization, now we will also fetch data when openScanner, and<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>   *             if the number of rows reaches the limit then we will close the scanner<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>   *             automatically which means we will fall back to one rpc.<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>   * @see #setLimit(int)<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>   * @see #setReadType(ReadType)<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>   */<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>  @Deprecated<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>  public Scan setSmall(boolean small) {<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>    this.small = small;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>    this.readType = ReadType.PREAD;<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>    return this;<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>  }<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span><a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>  /**<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>   * Get whether this scan is a small scan<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>   * @return true if small scan<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>   * @deprecated since 2.0.0. See the comment of {@link #setSmall(boolean)}<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>   */<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>  @Deprecated<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>  public boolean isSmall() {<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    return small;<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>  }<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span><a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>  @Override<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>  public Scan setAttribute(String name, byte[] value) {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>    return (Scan) super.setAttribute(name, value);<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>  }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span><a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>  @Override<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>  public Scan setId(String id) {<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    return (Scan) super.setId(id);<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>  }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span><a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  @Override<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>  public Scan setAuthorizations(Authorizations authorizations) {<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    return (Scan) super.setAuthorizations(authorizations);<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>  }<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span><a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>  @Override<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>  public Scan setACL(Map&lt;String, Permission&gt; perms) {<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>    return (Scan) super.setACL(perms);<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>  }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span><a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>  @Override<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  public Scan setACL(String user, Permission perms) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>    return (Scan) super.setACL(user, perms);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>  }<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span><a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>  @Override<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>  public Scan setConsistency(Consistency consistency) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>    return (Scan) super.setConsistency(consistency);<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>  }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span><a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>  @Override<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>  public Scan setReplicaId(int Id) {<a name="line.1092"></a>
-<span class

<TRUNCATED>

[11/16] hbase-site git commit: Published site at 4f2dfd387779968d3b76a22f1f4189d3278b202d.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/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 62c0444..bf0f6e6 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/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/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/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/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/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/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/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 c5a6478..63e54e3 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/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/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/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/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..6a2998c 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -349,9 +349,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.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/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/devapidocs/org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html b/devapidocs/org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html
index 1fb173d..54e7417 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html
@@ -123,7 +123,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html#line.98">SplitOrMergeTracker.SwitchStateTracker</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html#line.97">SplitOrMergeTracker.SwitchStateTracker</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKNodeTracker</a></pre>
 </li>
 </ul>
@@ -246,7 +246,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>SwitchStateTracker</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html#line.100">SwitchStateTracker</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a>&nbsp;watcher,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html#line.99">SwitchStateTracker</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a>&nbsp;watcher,
                           <a href="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;node,
                           <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title="interface in org.apache.hadoop.hbase">Abortable</a>&nbsp;abortable)</pre>
 </li>
@@ -265,7 +265,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.
 <ul class="blockList">
 <li class="blockList">
 <h4>isSwitchEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html#line.107">isSwitchEnabled</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html#line.106">isSwitchEnabled</a>()</pre>
 <div class="block">Return true if the switch is on, false otherwise</div>
 </li>
 </ul>
@@ -275,7 +275,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.
 <ul class="blockList">
 <li class="blockList">
 <h4>setSwitchEnabled</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html#line.124">setSwitchEnabled</a>(boolean&nbsp;enabled)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html#line.123">setSwitchEnabled</a>(boolean&nbsp;enabled)
                       throws org.apache.zookeeper.KeeperException</pre>
 <div class="block">Set the switch on/off</div>
 <dl>
@@ -292,7 +292,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.
 <ul class="blockList">
 <li class="blockList">
 <h4>toByteArray</h4>
-<pre>private&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html#line.134">toByteArray</a>(boolean&nbsp;enabled)</pre>
+<pre>private&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html#line.133">toByteArray</a>(boolean&nbsp;enabled)</pre>
 </li>
 </ul>
 <a name="parseFrom-byte:A-">
@@ -301,7 +301,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>parseFrom</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ZooKeeperProtos.SwitchState&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html#line.140">parseFrom</a>(byte[]&nbsp;bytes)
+<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ZooKeeperProtos.SwitchState&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html#line.139">parseFrom</a>(byte[]&nbsp;bytes)
                                                                                          throws <a href="../../../../../org/apache/hadoop/hbase/exceptions/DeserializationException.html" title="class in org.apache.hadoop.hbase.exceptions">DeserializationException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/devapidocs/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html b/devapidocs/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html
index ae3940d..739e4a3 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html#line.42">SplitOrMergeTracker</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html#line.41">SplitOrMergeTracker</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">Tracks the switch of split and merge states in ZK</div>
 </li>
@@ -241,7 +241,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>splitZnode</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/master/SplitOrMergeTracker.html#line.44">splitZnode</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/master/SplitOrMergeTracker.html#line.43">splitZnode</a></pre>
 </li>
 </ul>
 <a name="mergeZnode">
@@ -250,7 +250,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>mergeZnode</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/master/SplitOrMergeTracker.html#line.45">mergeZnode</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/master/SplitOrMergeTracker.html#line.44">mergeZnode</a></pre>
 </li>
 </ul>
 <a name="splitStateTracker">
@@ -259,7 +259,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>splitStateTracker</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html" title="class in org.apache.hadoop.hbase.master">SplitOrMergeTracker.SwitchStateTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html#line.47">splitStateTracker</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html" title="class in org.apache.hadoop.hbase.master">SplitOrMergeTracker.SwitchStateTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html#line.46">splitStateTracker</a></pre>
 </li>
 </ul>
 <a name="mergeStateTracker">
@@ -268,7 +268,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>mergeStateTracker</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html" title="class in org.apache.hadoop.hbase.master">SplitOrMergeTracker.SwitchStateTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html#line.48">mergeStateTracker</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html" title="class in org.apache.hadoop.hbase.master">SplitOrMergeTracker.SwitchStateTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html#line.47">mergeStateTracker</a></pre>
 </li>
 </ul>
 </li>
@@ -285,7 +285,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>SplitOrMergeTracker</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html#line.50">SplitOrMergeTracker</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a>&nbsp;watcher,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html#line.49">SplitOrMergeTracker</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a>&nbsp;watcher,
                            org.apache.hadoop.conf.Configuration&nbsp;conf,
                            <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title="interface in org.apache.hadoop.hbase">Abortable</a>&nbsp;abortable)</pre>
 </li>
@@ -304,7 +304,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>start</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html#line.67">start</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html#line.66">start</a>()</pre>
 </li>
 </ul>
 <a name="isSplitOrMergeEnabled-org.apache.hadoop.hbase.client.MasterSwitchType-">
@@ -313,7 +313,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isSplitOrMergeEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html#line.72">isSplitOrMergeEnabled</a>(<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client">MasterSwitchType</a>&nbsp;switchType)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html#line.71">isSplitOrMergeEnabled</a>(<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client">MasterSwitchType</a>&nbsp;switchType)</pre>
 </li>
 </ul>
 <a name="setSplitOrMergeEnabled-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">
@@ -322,7 +322,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>setSplitOrMergeEnabled</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html#line.84">setSplitOrMergeEnabled</a>(boolean&nbsp;enabled,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html#line.83">setSplitOrMergeEnabled</a>(boolean&nbsp;enabled,
                                    <a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client">MasterSwitchType</a>&nbsp;switchType)
                             throws org.apache.zookeeper.KeeperException</pre>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/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/63aade82/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..ac4b7c0 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/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/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/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 a7119b7..e602642 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -208,9 +208,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.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/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">PeerProcedureInterface.PeerOperationType</span></a></li>
 </ul>
 </li>
 </ul>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/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 727b4f2..e49713c 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -441,18 +441,18 @@
 <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/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/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/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/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/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/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/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/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/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/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/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/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 b6facd4..422a5fa 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -213,9 +213,9 @@
 <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/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/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>
 <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>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/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 f63feb5..bd3f539 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/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/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/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/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 2203917..2636f5a 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/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/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/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/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/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/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/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/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/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/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/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/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/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
 </ul>
 </li>
 </ul>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/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 f6fc79b..a4ab1b7 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/ProtobufLogReader.WALHdrResult.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">ProtobufLogReader.WALHdrResult</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">RingBufferTruck.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.WALHdrResult.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">ProtobufLogReader.WALHdrResult</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/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 d1e114d..193a3a3032 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
@@ -198,8 +198,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>


[06/16] hbase-site git commit: Published site at 4f2dfd387779968d3b76a22f1f4189d3278b202d.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html
index 4819408..78aac51 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html
@@ -64,651 +64,656 @@
 <span class="sourceLineNo">056</span>@InterfaceAudience.Private<a name="line.56"></a>
 <span class="sourceLineNo">057</span>public class RSGroupAdminServer implements RSGroupAdmin {<a name="line.57"></a>
 <span class="sourceLineNo">058</span>  private static final Logger LOG = LoggerFactory.getLogger(RSGroupAdminServer.class);<a name="line.58"></a>
-<span class="sourceLineNo">059</span><a name="line.59"></a>
-<span class="sourceLineNo">060</span>  private MasterServices master;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  private final RSGroupInfoManager rsGroupInfoManager;<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  public RSGroupAdminServer(MasterServices master, RSGroupInfoManager rsGroupInfoManager)<a name="line.63"></a>
-<span class="sourceLineNo">064</span>      throws IOException {<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    this.master = master;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    this.rsGroupInfoManager = rsGroupInfoManager;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>  @Override<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  public RSGroupInfo getRSGroupInfo(String groupName) throws IOException {<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    return rsGroupInfoManager.getRSGroup(groupName);<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  }<a name="line.72"></a>
-<span class="sourceLineNo">073</span><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  @Override<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  public RSGroupInfo getRSGroupInfoOfTable(TableName tableName) throws IOException {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    // We are reading across two Maps in the below with out synchronizing across<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    // them; should be safe most of the time.<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    String groupName = rsGroupInfoManager.getRSGroupOfTable(tableName);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    return groupName == null? null: rsGroupInfoManager.getRSGroup(groupName);<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  }<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  private void checkOnlineServersOnly(Set&lt;Address&gt; servers) throws ConstraintException {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    // This uglyness is because we only have Address, not ServerName.<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    // Online servers are keyed by ServerName.<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    Set&lt;Address&gt; onlineServers = new HashSet&lt;&gt;();<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    for(ServerName server: master.getServerManager().getOnlineServers().keySet()) {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>      onlineServers.add(server.getAddress());<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    }<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    for (Address address: servers) {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>      if (!onlineServers.contains(address)) {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>        throw new ConstraintException(<a name="line.91"></a>
-<span class="sourceLineNo">092</span>            "Server " + address + " is not an online server in 'default' RSGroup.");<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      }<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    }<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  }<a name="line.95"></a>
-<span class="sourceLineNo">096</span><a name="line.96"></a>
-<span class="sourceLineNo">097</span>  /**<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   * Check passed name. Fail if nulls or if corresponding RSGroupInfo not found.<a name="line.98"></a>
-<span class="sourceLineNo">099</span>   * @return The RSGroupInfo named &lt;code&gt;name&lt;/code&gt;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>   */<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  private RSGroupInfo getAndCheckRSGroupInfo(String name)<a name="line.101"></a>
-<span class="sourceLineNo">102</span>  throws IOException {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    if (StringUtils.isEmpty(name)) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      throw new ConstraintException("RSGroup cannot be null.");<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    }<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    RSGroupInfo rsGroupInfo = getRSGroupInfo(name);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    if (rsGroupInfo == null) {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      throw new ConstraintException("RSGroup does not exist: " + name);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    }<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    return rsGroupInfo;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  }<a name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>  /**<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   * @return List of Regions associated with this &lt;code&gt;server&lt;/code&gt;.<a name="line.114"></a>
-<span class="sourceLineNo">115</span>   */<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  private List&lt;RegionInfo&gt; getRegions(final Address server) {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    LinkedList&lt;RegionInfo&gt; regions = new LinkedList&lt;&gt;();<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    for (Map.Entry&lt;RegionInfo, ServerName&gt; el :<a name="line.118"></a>
-<span class="sourceLineNo">119</span>        master.getAssignmentManager().getRegionStates().getRegionAssignments().entrySet()) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      if (el.getValue() == null) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>        continue;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      }<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>      if (el.getValue().getAddress().equals(server)) {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>        addRegion(regions, el.getKey());<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>    for (RegionStateNode state : master.getAssignmentManager().getRegionsInTransition()) {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      if (state.getRegionLocation().getAddress().equals(server)) {<a name="line.129"></a>
-<span class="sourceLineNo">130</span>        addRegion(regions, state.getRegionInfo());<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>    return regions;<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>  private void addRegion(final LinkedList&lt;RegionInfo&gt; regions, RegionInfo hri) {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    // If meta, move it last otherwise other unassigns fail because meta is not<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    // online for them to update state in. This is dodgy. Needs to be made more<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    // robust. See TODO below.<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    if (hri.isMetaRegion()) {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      regions.addLast(hri);<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    } else {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      regions.addFirst(hri);<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><a name="line.146"></a>
-<span class="sourceLineNo">147</span>  /**<a name="line.147"></a>
-<span class="sourceLineNo">148</span>   * Check servers and tables.<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   *<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   * @param servers servers to move<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   * @param tables tables to move<a name="line.151"></a>
-<span class="sourceLineNo">152</span>   * @param targetGroupName target group name<a name="line.152"></a>
-<span class="sourceLineNo">153</span>   * @throws IOException if nulls or if servers and tables not belong to the same group<a name="line.153"></a>
-<span class="sourceLineNo">154</span>   */<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  private void checkServersAndTables(Set&lt;Address&gt; servers, Set&lt;TableName&gt; tables,<a name="line.155"></a>
-<span class="sourceLineNo">156</span>                                     String targetGroupName) throws IOException {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    // Presume first server's source group. Later ensure all servers are from this group.<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    Address firstServer = servers.iterator().next();<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    RSGroupInfo tmpSrcGrp = rsGroupInfoManager.getRSGroupOfServer(firstServer);<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    if (tmpSrcGrp == null) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      // Be careful. This exception message is tested for in TestRSGroupsBase...<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      throw new ConstraintException("Source RSGroup for server " + firstServer<a name="line.162"></a>
-<span class="sourceLineNo">163</span>              + " does not exist.");<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    RSGroupInfo srcGrp = new RSGroupInfo(tmpSrcGrp);<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    if (srcGrp.getName().equals(targetGroupName)) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      throw new ConstraintException("Target RSGroup " + targetGroupName +<a name="line.167"></a>
-<span class="sourceLineNo">168</span>              " is same as source " + srcGrp.getName() + " RSGroup.");<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    }<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    // Only move online servers<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    checkOnlineServersOnly(servers);<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>    // Ensure all servers are of same rsgroup.<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    for (Address server: servers) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      String tmpGroup = rsGroupInfoManager.getRSGroupOfServer(server).getName();<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      if (!tmpGroup.equals(srcGrp.getName())) {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>        throw new ConstraintException("Move server request should only come from one source " +<a name="line.177"></a>
-<span class="sourceLineNo">178</span>                "RSGroup. Expecting only " + srcGrp.getName() + " but contains " + tmpGroup);<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><a name="line.181"></a>
-<span class="sourceLineNo">182</span>    // Ensure all tables and servers are of same rsgroup.<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    for (TableName table : tables) {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      String tmpGroup = rsGroupInfoManager.getRSGroupOfTable(table);<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      if (!tmpGroup.equals(srcGrp.getName())) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>        throw new ConstraintException("Move table request should only come from one source " +<a name="line.186"></a>
-<span class="sourceLineNo">187</span>                "RSGroup. Expecting only " + srcGrp.getName() + " but contains " + tmpGroup);<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>    if (srcGrp.getServers().size() &lt;= servers.size() &amp;&amp; srcGrp.getTables().size() &gt; tables.size()) {<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      throw new ConstraintException("Cannot leave a RSGroup " + srcGrp.getName() +<a name="line.192"></a>
-<span class="sourceLineNo">193</span>              " that contains tables without servers to host them.");<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>  /**<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   * Moves every region from servers which are currently located on these servers,<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   * but should not be located there.<a name="line.199"></a>
-<span class="sourceLineNo">200</span>   * @param servers the servers that will move to new group<a name="line.200"></a>
-<span class="sourceLineNo">201</span>   * @param tables these tables will be kept on the servers, others will be moved<a name="line.201"></a>
-<span class="sourceLineNo">202</span>   * @param targetGroupName the target group name<a name="line.202"></a>
-<span class="sourceLineNo">203</span>   * @throws IOException if moving the server and tables fail<a name="line.203"></a>
-<span class="sourceLineNo">204</span>   */<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private void moveRegionsFromServers(Set&lt;Address&gt; servers, Set&lt;TableName&gt; tables,<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      String targetGroupName) throws IOException {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    boolean foundRegionsToMove;<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    RSGroupInfo targetGrp = getRSGroupInfo(targetGroupName);<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    Set&lt;Address&gt; allSevers = new HashSet&lt;&gt;(servers);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    do {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>      foundRegionsToMove = false;<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      for (Iterator&lt;Address&gt; iter = allSevers.iterator(); iter.hasNext();) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        Address rs = iter.next();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>        // Get regions that are associated with this server and filter regions by tables.<a name="line.214"></a>
-<span class="sourceLineNo">215</span>        List&lt;RegionInfo&gt; regions = new ArrayList&lt;&gt;();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>        for (RegionInfo region : getRegions(rs)) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>          if (!tables.contains(region.getTable())) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>            regions.add(region);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          }<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        }<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span>        LOG.info("Moving " + regions.size() + " region(s) from " + rs +<a name="line.222"></a>
-<span class="sourceLineNo">223</span>            " for server move to " + targetGroupName);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        if (!regions.isEmpty()) {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>          for (RegionInfo region: regions) {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>            // Regions might get assigned from tables of target group so we need to filter<a name="line.226"></a>
-<span class="sourceLineNo">227</span>            if (!targetGrp.containsTable(region.getTable())) {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>              this.master.getAssignmentManager().move(region);<a name="line.228"></a>
-<span class="sourceLineNo">229</span>              if (master.getAssignmentManager().getRegionStates().<a name="line.229"></a>
-<span class="sourceLineNo">230</span>                  getRegionState(region).isFailedOpen()) {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>                continue;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>              }<a name="line.232"></a>
-<span class="sourceLineNo">233</span>              foundRegionsToMove = true;<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>        }<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        if (!foundRegionsToMove) {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>          iter.remove();<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>      try {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>        rsGroupInfoManager.wait(1000);<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      } catch (InterruptedException e) {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>        LOG.warn("Sleep interrupted", e);<a name="line.244"></a>
-<span class="sourceLineNo">245</span>        Thread.currentThread().interrupt();<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      }<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    } while (foundRegionsToMove);<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>  /**<a name="line.250"></a>
-<span class="sourceLineNo">251</span>   * Moves every region of tables which should be kept on the servers,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>   * but currently they are located on other servers.<a name="line.252"></a>
-<span class="sourceLineNo">253</span>   * @param servers the regions of these servers will be kept on the servers, others will be moved<a name="line.253"></a>
-<span class="sourceLineNo">254</span>   * @param tables the tables that will move to new group<a name="line.254"></a>
-<span class="sourceLineNo">255</span>   * @param targetGroupName the target group name<a name="line.255"></a>
-<span class="sourceLineNo">256</span>   * @throws IOException if moving the region fails<a name="line.256"></a>
-<span class="sourceLineNo">257</span>   */<a name="line.257"></a>
-<span class="sourceLineNo">258</span>  private void moveRegionsToServers(Set&lt;Address&gt; servers, Set&lt;TableName&gt; tables,<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      String targetGroupName) throws IOException {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    for (TableName table: tables) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      LOG.info("Moving region(s) from " + table + " for table move to " + targetGroupName);<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      for (RegionInfo region : master.getAssignmentManager().getRegionStates()<a name="line.262"></a>
-<span class="sourceLineNo">263</span>              .getRegionsOfTable(table)) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>        ServerName sn = master.getAssignmentManager().getRegionStates()<a name="line.264"></a>
-<span class="sourceLineNo">265</span>                .getRegionServerOfRegion(region);<a name="line.265"></a>
-<span class="sourceLineNo">266</span>        if (!servers.contains(sn.getAddress())) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>          master.getAssignmentManager().move(region);<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>    }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      value="RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE",<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      justification="Ignoring complaint because don't know what it is complaining about")<a name="line.275"></a>
-<span class="sourceLineNo">276</span>  @Override<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  public void moveServers(Set&lt;Address&gt; servers, String targetGroupName)<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  throws IOException {<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    if (servers == null) {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      throw new ConstraintException("The list of servers to move cannot be null.");<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    }<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    if (servers.isEmpty()) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>      // For some reason this difference between null servers and isEmpty is important distinction.<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      // TODO. Why? Stuff breaks if I equate them.<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      return;<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    }<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    RSGroupInfo targetGrp = getAndCheckRSGroupInfo(targetGroupName);<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span>    // Hold a lock on the manager instance while moving servers to prevent<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    // another writer changing our state while we are working.<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    synchronized (rsGroupInfoManager) {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      if (master.getMasterCoprocessorHost() != null) {<a name="line.292"></a>
-<span class="sourceLineNo">293</span>        master.getMasterCoprocessorHost().preMoveServers(servers, targetGroupName);<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      }<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      // Presume first server's source group. Later ensure all servers are from this group.<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      Address firstServer = servers.iterator().next();<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      RSGroupInfo srcGrp = rsGroupInfoManager.getRSGroupOfServer(firstServer);<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      if (srcGrp == null) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>        // Be careful. This exception message is tested for in TestRSGroupsBase...<a name="line.299"></a>
-<span class="sourceLineNo">300</span>        throw new ConstraintException("Source RSGroup for server " + firstServer<a name="line.300"></a>
-<span class="sourceLineNo">301</span>            + " does not exist.");<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      }<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      if (srcGrp.getName().equals(targetGroupName)) {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>        throw new ConstraintException("Target RSGroup " + targetGroupName +<a name="line.304"></a>
-<span class="sourceLineNo">305</span>            " is same as source " + srcGrp + " RSGroup.");<a name="line.305"></a>
-<span class="sourceLineNo">306</span>      }<a name="line.306"></a>
-<span class="sourceLineNo">307</span>      // Only move online servers (when moving from 'default') or servers from other<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      // groups. This prevents bogus servers from entering groups<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      if (RSGroupInfo.DEFAULT_GROUP.equals(srcGrp.getName())) {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        checkOnlineServersOnly(servers);<a name="line.310"></a>
-<span class="sourceLineNo">311</span>      }<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      // Ensure all servers are of same rsgroup.<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      for (Address server: servers) {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        String tmpGroup = rsGroupInfoManager.getRSGroupOfServer(server).getName();<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        if (!tmpGroup.equals(srcGrp.getName())) {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>          throw new ConstraintException("Move server request should only come from one source " +<a name="line.316"></a>
-<span class="sourceLineNo">317</span>              "RSGroup. Expecting only " + srcGrp.getName() + " but contains " + tmpGroup);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>        }<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      }<a name="line.319"></a>
-<span class="sourceLineNo">320</span>      if (srcGrp.getServers().size() &lt;= servers.size() &amp;&amp; srcGrp.getTables().size() &gt; 0) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>        throw new ConstraintException("Cannot leave a RSGroup " + srcGrp.getName() +<a name="line.321"></a>
-<span class="sourceLineNo">322</span>            " that contains tables without servers to host them.");<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      }<a name="line.323"></a>
-<span class="sourceLineNo">324</span><a name="line.324"></a>
-<span class="sourceLineNo">325</span>      // MovedServers may be &lt; passed in 'servers'.<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      Set&lt;Address&gt; movedServers = rsGroupInfoManager.moveServers(servers, srcGrp.getName(),<a name="line.326"></a>
-<span class="sourceLineNo">327</span>          targetGroupName);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      List&lt;Address&gt; editableMovedServers = Lists.newArrayList(movedServers);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      boolean foundRegionsToMove;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      do {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>        foundRegionsToMove = false;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>        for (Iterator&lt;Address&gt; iter = editableMovedServers.iterator(); iter.hasNext();) {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>          Address rs = iter.next();<a name="line.333"></a>
-<span class="sourceLineNo">334</span>          // Get regions that are associated with this server.<a name="line.334"></a>
-<span class="sourceLineNo">335</span>          List&lt;RegionInfo&gt; regions = getRegions(rs);<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>          LOG.info("Moving " + regions.size() + " region(s) from " + rs +<a name="line.337"></a>
-<span class="sourceLineNo">338</span>              " for server move to " + targetGroupName);<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>          for (RegionInfo region: regions) {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>            // Regions might get assigned from tables of target group so we need to filter<a name="line.341"></a>
-<span class="sourceLineNo">342</span>            if (targetGrp.containsTable(region.getTable())) {<a name="line.342"></a>
-<span class="sourceLineNo">343</span>              continue;<a name="line.343"></a>
-<span class="sourceLineNo">344</span>            }<a name="line.344"></a>
-<span class="sourceLineNo">345</span>            LOG.info("Moving region " + region.getShortNameToLog());<a name="line.345"></a>
-<span class="sourceLineNo">346</span>            this.master.getAssignmentManager().move(region);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>            if (master.getAssignmentManager().getRegionStates().<a name="line.347"></a>
-<span class="sourceLineNo">348</span>                getRegionState(region).isFailedOpen()) {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>              // If region is in FAILED_OPEN state, it won't recover, not without<a name="line.349"></a>
-<span class="sourceLineNo">350</span>              // operator intervention... in hbase-2.0.0 at least. Continue rather<a name="line.350"></a>
-<span class="sourceLineNo">351</span>              // than mark region as 'foundRegionsToMove'.<a name="line.351"></a>
-<span class="sourceLineNo">352</span>              continue;<a name="line.352"></a>
-<span class="sourceLineNo">353</span>            }<a name="line.353"></a>
-<span class="sourceLineNo">354</span>            foundRegionsToMove = true;<a name="line.354"></a>
-<span class="sourceLineNo">355</span>          }<a name="line.355"></a>
-<span class="sourceLineNo">356</span>          if (!foundRegionsToMove) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>            iter.remove();<a name="line.357"></a>
-<span class="sourceLineNo">358</span>          }<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        }<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        try {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>          rsGroupInfoManager.wait(1000);<a name="line.361"></a>
-<span class="sourceLineNo">362</span>        } catch (InterruptedException e) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>          LOG.warn("Sleep interrupted", e);<a name="line.363"></a>
-<span class="sourceLineNo">364</span>          Thread.currentThread().interrupt();<a name="line.364"></a>
-<span class="sourceLineNo">365</span>        }<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      } while (foundRegionsToMove);<a name="line.366"></a>
-<span class="sourceLineNo">367</span><a name="line.367"></a>
-<span class="sourceLineNo">368</span>      if (master.getMasterCoprocessorHost() != null) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        master.getMasterCoprocessorHost().postMoveServers(servers, targetGroupName);<a name="line.369"></a>
-<span class="sourceLineNo">370</span>      }<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      LOG.info("Move server done: " + srcGrp.getName() + "=&gt;" + targetGroupName);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    }<a name="line.372"></a>
-<span class="sourceLineNo">373</span>  }<a name="line.373"></a>
-<span class="sourceLineNo">374</span><a name="line.374"></a>
-<span class="sourceLineNo">375</span>  @Override<a name="line.375"></a>
-<span class="sourceLineNo">376</span>  public void moveTables(Set&lt;TableName&gt; tables, String targetGroup) throws IOException {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    if (tables == null) {<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      throw new ConstraintException("The list of servers cannot be null.");<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    }<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    if (tables.size() &lt; 1) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      LOG.debug("moveTables() passed an empty set. Ignoring.");<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      return;<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    }<a name="line.383"></a>
-<span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>    // Hold a lock on the manager instance while moving servers to prevent<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    // another writer changing our state while we are working.<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    synchronized (rsGroupInfoManager) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      if (master.getMasterCoprocessorHost() != null) {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        master.getMasterCoprocessorHost().preMoveTables(tables, targetGroup);<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      }<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      if(targetGroup != null) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>        RSGroupInfo destGroup = rsGroupInfoManager.getRSGroup(targetGroup);<a name="line.392"></a>
-<span class="sourceLineNo">393</span>        if(destGroup == null) {<a name="line.393"></a>
-<span class="sourceLineNo">394</span>          throw new ConstraintException("Target " + targetGroup + " RSGroup does not exist.");<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        }<a name="line.395"></a>
-<span class="sourceLineNo">396</span>        if(destGroup.getServers().size() &lt; 1) {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>          throw new ConstraintException("Target RSGroup must have at least one server.");<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        }<a name="line.398"></a>
-<span class="sourceLineNo">399</span>      }<a name="line.399"></a>
-<span class="sourceLineNo">400</span><a name="line.400"></a>
-<span class="sourceLineNo">401</span>      for (TableName table : tables) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>        String srcGroup = rsGroupInfoManager.getRSGroupOfTable(table);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>        if(srcGroup != null &amp;&amp; srcGroup.equals(targetGroup)) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          throw new ConstraintException(<a name="line.404"></a>
-<span class="sourceLineNo">405</span>              "Source RSGroup " + srcGroup + " is same as target " + targetGroup +<a name="line.405"></a>
-<span class="sourceLineNo">406</span>              " RSGroup for table " + table);<a name="line.406"></a>
-<span class="sourceLineNo">407</span>        }<a name="line.407"></a>
-<span class="sourceLineNo">408</span>        LOG.info("Moving table " + table.getNameAsString() + " to RSGroup " + targetGroup);<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>      rsGroupInfoManager.moveTables(tables, targetGroup);<a name="line.410"></a>
-<span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>      // targetGroup is null when a table is being deleted. In this case no further<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      // action is required.<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      if (targetGroup != null) {<a name="line.414"></a>
-<span class="sourceLineNo">415</span>        for (TableName table: tables) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>          if (master.getAssignmentManager().isTableDisabled(table)) {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>            LOG.debug("Skipping move regions because the table" + table + " is disabled.");<a name="line.417"></a>
-<span class="sourceLineNo">418</span>            continue;<a name="line.418"></a>
-<span class="sourceLineNo">419</span>          }<a name="line.419"></a>
-<span class="sourceLineNo">420</span>          for (RegionInfo region :<a name="line.420"></a>
-<span class="sourceLineNo">421</span>              master.getAssignmentManager().getRegionStates().getRegionsOfTable(table)) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>            LOG.info("Moving region " + region.getShortNameToLog() +<a name="line.422"></a>
-<span class="sourceLineNo">423</span>                " to RSGroup " + targetGroup);<a name="line.423"></a>
-<span class="sourceLineNo">424</span>            master.getAssignmentManager().move(region);<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><a name="line.428"></a>
-<span class="sourceLineNo">429</span>      if (master.getMasterCoprocessorHost() != null) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span>        master.getMasterCoprocessorHost().postMoveTables(tables, targetGroup);<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><a name="line.434"></a>
-<span class="sourceLineNo">435</span>  @Override<a name="line.435"></a>
-<span class="sourceLineNo">436</span>  public void addRSGroup(String name) throws IOException {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    if (master.getMasterCoprocessorHost() != null) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      master.getMasterCoprocessorHost().preAddRSGroup(name);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    }<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    rsGroupInfoManager.addRSGroup(new RSGroupInfo(name));<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    if (master.getMasterCoprocessorHost() != null) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      master.getMasterCoprocessorHost().postAddRSGroup(name);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    }<a name="line.443"></a>
-<span class="sourceLineNo">444</span>  }<a name="line.444"></a>
-<span class="sourceLineNo">445</span><a name="line.445"></a>
-<span class="sourceLineNo">446</span>  @Override<a name="line.446"></a>
-<span class="sourceLineNo">447</span>  public void removeRSGroup(String name) throws IOException {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    // Hold a lock on the manager instance while moving servers to prevent<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    // another writer changing our state while we are working.<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    synchronized (rsGroupInfoManager) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      if (master.getMasterCoprocessorHost() != null) {<a name="line.451"></a>
-<span class="sourceLineNo">452</span>        master.getMasterCoprocessorHost().preRemoveRSGroup(name);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      }<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      RSGroupInfo rsGroupInfo = rsGroupInfoManager.getRSGroup(name);<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      if (rsGroupInfo == null) {<a name="line.455"></a>
-<span class="sourceLineNo">456</span>        throw new ConstraintException("RSGroup " + name + " does not exist");<a name="line.456"></a>
-<span class="sourceLineNo">457</span>      }<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      int tableCount = rsGroupInfo.getTables().size();<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      if (tableCount &gt; 0) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>        throw new ConstraintException("RSGroup " + name + " has " + tableCount +<a name="line.460"></a>
-<span class="sourceLineNo">461</span>            " tables; you must remove these tables from the rsgroup before " +<a name="line.461"></a>
-<span class="sourceLineNo">462</span>            "the rsgroup can be removed.");<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      }<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      int serverCount = rsGroupInfo.getServers().size();<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      if (serverCount &gt; 0) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>        throw new ConstraintException("RSGroup " + name + " has " + serverCount +<a name="line.466"></a>
-<span class="sourceLineNo">467</span>            " servers; you must remove these servers from the RSGroup before" +<a name="line.467"></a>
-<span class="sourceLineNo">468</span>            "the RSGroup can be removed.");<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      }<a name="line.469"></a>
-<span class="sourceLineNo">470</span>      for (NamespaceDescriptor ns: master.getClusterSchema().getNamespaces()) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>        String nsGroup = ns.getConfigurationValue(rsGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.471"></a>
-<span class="sourceLineNo">472</span>        if (nsGroup != null &amp;&amp;  nsGroup.equals(name)) {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>          throw new ConstraintException("RSGroup " + name + " is referenced by namespace: " +<a name="line.473"></a>
-<span class="sourceLineNo">474</span>              ns.getName());<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>      rsGroupInfoManager.removeRSGroup(name);<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      if (master.getMasterCoprocessorHost() != null) {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>        master.getMasterCoprocessorHost().postRemoveRSGroup(name);<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      }<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    }<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>  @Override<a name="line.484"></a>
-<span class="sourceLineNo">485</span>  public boolean balanceRSGroup(String groupName) throws IOException {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    ServerManager serverManager = master.getServerManager();<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    AssignmentManager assignmentManager = master.getAssignmentManager();<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    LoadBalancer balancer = master.getLoadBalancer();<a name="line.488"></a>
-<span class="sourceLineNo">489</span><a name="line.489"></a>
-<span class="sourceLineNo">490</span>    synchronized (balancer) {<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      // If balance not true, don't run balancer.<a name="line.491"></a>
-<span class="sourceLineNo">492</span>      if (!((HMaster) master).isBalancerOn()) {<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>      if (master.getMasterCoprocessorHost() != null) {<a name="line.496"></a>
-<span class="sourceLineNo">497</span>        master.getMasterCoprocessorHost().preBalanceRSGroup(groupName);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      }<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      if (getRSGroupInfo(groupName) == null) {<a name="line.499"></a>
-<span class="sourceLineNo">500</span>        throw new ConstraintException("RSGroup does not exist: "+groupName);<a name="line.500"></a>
-<span class="sourceLineNo">501</span>      }<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      // Only allow one balance run at at time.<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      Map&lt;String, RegionState&gt; groupRIT = rsGroupGetRegionsInTransition(groupName);<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      if (groupRIT.size() &gt; 0) {<a name="line.504"></a>
-<span class="sourceLineNo">505</span>        LOG.debug("Not running balancer because " + groupRIT.size() + " region(s) in transition: " +<a name="line.505"></a>
-<span class="sourceLineNo">506</span>          StringUtils.abbreviate(<a name="line.506"></a>
-<span class="sourceLineNo">507</span>              master.getAssignmentManager().getRegionStates().getRegionsInTransition().toString(),<a name="line.507"></a>
-<span class="sourceLineNo">508</span>              256));<a name="line.508"></a>
-<span class="sourceLineNo">509</span>        return false;<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      }<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      if (serverManager.areDeadServersInProgress()) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        LOG.debug("Not running balancer because processing dead regionserver(s): " +<a name="line.512"></a>
-<span class="sourceLineNo">513</span>            serverManager.getDeadServers());<a name="line.513"></a>
+<span class="sourceLineNo">059</span>  public static final String KEEP_ONE_SERVER_IN_DEFAULT_ERROR_MESSAGE = "should keep at least " +<a name="line.59"></a>
+<span class="sourceLineNo">060</span>          "one server in 'default' RSGroup.";<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private MasterServices master;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  private final RSGroupInfoManager rsGroupInfoManager;<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>  public RSGroupAdminServer(MasterServices master, RSGroupInfoManager rsGroupInfoManager)<a name="line.65"></a>
+<span class="sourceLineNo">066</span>      throws IOException {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    this.master = master;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    this.rsGroupInfoManager = rsGroupInfoManager;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  @Override<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  public RSGroupInfo getRSGroupInfo(String groupName) throws IOException {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    return rsGroupInfoManager.getRSGroup(groupName);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>  @Override<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  public RSGroupInfo getRSGroupInfoOfTable(TableName tableName) throws IOException {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    // We are reading across two Maps in the below with out synchronizing across<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    // them; should be safe most of the time.<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    String groupName = rsGroupInfoManager.getRSGroupOfTable(tableName);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    return groupName == null? null: rsGroupInfoManager.getRSGroup(groupName);<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>  private void checkOnlineServersOnly(Set&lt;Address&gt; servers) throws ConstraintException {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    // This uglyness is because we only have Address, not ServerName.<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    // Online servers are keyed by ServerName.<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    Set&lt;Address&gt; onlineServers = new HashSet&lt;&gt;();<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    for(ServerName server: master.getServerManager().getOnlineServers().keySet()) {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>      onlineServers.add(server.getAddress());<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    }<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    for (Address address: servers) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      if (!onlineServers.contains(address)) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>        throw new ConstraintException(<a name="line.93"></a>
+<span class="sourceLineNo">094</span>            "Server " + address + " is not an online server in 'default' RSGroup.");<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>  /**<a name="line.99"></a>
+<span class="sourceLineNo">100</span>   * Check passed name. Fail if nulls or if corresponding RSGroupInfo not found.<a name="line.100"></a>
+<span class="sourceLineNo">101</span>   * @return The RSGroupInfo named &lt;code&gt;name&lt;/code&gt;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   */<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  private RSGroupInfo getAndCheckRSGroupInfo(String name)<a name="line.103"></a>
+<span class="sourceLineNo">104</span>  throws IOException {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    if (StringUtils.isEmpty(name)) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      throw new ConstraintException("RSGroup cannot be null.");<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    }<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    RSGroupInfo rsGroupInfo = getRSGroupInfo(name);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    if (rsGroupInfo == null) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      throw new ConstraintException("RSGroup does not exist: " + name);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    return rsGroupInfo;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>  /**<a name="line.115"></a>
+<span class="sourceLineNo">116</span>   * @return List of Regions associated with this &lt;code&gt;server&lt;/code&gt;.<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   */<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  private List&lt;RegionInfo&gt; getRegions(final Address server) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    LinkedList&lt;RegionInfo&gt; regions = new LinkedList&lt;&gt;();<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    for (Map.Entry&lt;RegionInfo, ServerName&gt; el :<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        master.getAssignmentManager().getRegionStates().getRegionAssignments().entrySet()) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      if (el.getValue() == null) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        continue;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      }<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>      if (el.getValue().getAddress().equals(server)) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>        addRegion(regions, el.getKey());<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>    for (RegionStateNode state : master.getAssignmentManager().getRegionsInTransition()) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      if (state.getRegionLocation().getAddress().equals(server)) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        addRegion(regions, state.getRegionInfo());<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    }<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    return regions;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>  }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>  private void addRegion(final LinkedList&lt;RegionInfo&gt; regions, RegionInfo hri) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    // If meta, move it last otherwise other unassigns fail because meta is not<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    // online for them to update state in. This is dodgy. Needs to be made more<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    // robust. See TODO below.<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    if (hri.isMetaRegion()) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      regions.addLast(hri);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    } else {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      regions.addFirst(hri);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>  }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>  /**<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   * Check servers and tables.<a name="line.150"></a>
+<span class="sourceLineNo">151</span>   *<a name="line.151"></a>
+<span class="sourceLineNo">152</span>   * @param servers servers to move<a name="line.152"></a>
+<span class="sourceLineNo">153</span>   * @param tables tables to move<a name="line.153"></a>
+<span class="sourceLineNo">154</span>   * @param targetGroupName target group name<a name="line.154"></a>
+<span class="sourceLineNo">155</span>   * @throws IOException if nulls or if servers and tables not belong to the same group<a name="line.155"></a>
+<span class="sourceLineNo">156</span>   */<a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private void checkServersAndTables(Set&lt;Address&gt; servers, Set&lt;TableName&gt; tables,<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                                     String targetGroupName) throws IOException {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    // Presume first server's source group. Later ensure all servers are from this group.<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    Address firstServer = servers.iterator().next();<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    RSGroupInfo tmpSrcGrp = rsGroupInfoManager.getRSGroupOfServer(firstServer);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    if (tmpSrcGrp == null) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      // Be careful. This exception message is tested for in TestRSGroupsBase...<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      throw new ConstraintException("Source RSGroup for server " + firstServer<a name="line.164"></a>
+<span class="sourceLineNo">165</span>              + " does not exist.");<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    }<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    RSGroupInfo srcGrp = new RSGroupInfo(tmpSrcGrp);<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    if (srcGrp.getName().equals(targetGroupName)) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      throw new ConstraintException("Target RSGroup " + targetGroupName +<a name="line.169"></a>
+<span class="sourceLineNo">170</span>              " is same as source " + srcGrp.getName() + " RSGroup.");<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    }<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    // Only move online servers<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    checkOnlineServersOnly(servers);<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>    // Ensure all servers are of same rsgroup.<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    for (Address server: servers) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>      String tmpGroup = rsGroupInfoManager.getRSGroupOfServer(server).getName();<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      if (!tmpGroup.equals(srcGrp.getName())) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        throw new ConstraintException("Move server request should only come from one source " +<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                "RSGroup. Expecting only " + srcGrp.getName() + " but contains " + tmpGroup);<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>
+<span class="sourceLineNo">184</span>    // Ensure all tables and servers are of same rsgroup.<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    for (TableName table : tables) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      String tmpGroup = rsGroupInfoManager.getRSGroupOfTable(table);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      if (!tmpGroup.equals(srcGrp.getName())) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        throw new ConstraintException("Move table request should only come from one source " +<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                "RSGroup. Expecting only " + srcGrp.getName() + " but contains " + tmpGroup);<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>    if (srcGrp.getServers().size() &lt;= servers.size() &amp;&amp; srcGrp.getTables().size() &gt; tables.size()) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      throw new ConstraintException("Cannot leave a RSGroup " + srcGrp.getName() +<a name="line.194"></a>
+<span class="sourceLineNo">195</span>              " that contains tables without servers to host them.");<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><a name="line.198"></a>
+<span class="sourceLineNo">199</span>  /**<a name="line.199"></a>
+<span class="sourceLineNo">200</span>   * Moves every region from servers which are currently located on these servers,<a name="line.200"></a>
+<span class="sourceLineNo">201</span>   * but should not be located there.<a name="line.201"></a>
+<span class="sourceLineNo">202</span>   * @param servers the servers that will move to new group<a name="line.202"></a>
+<span class="sourceLineNo">203</span>   * @param tables these tables will be kept on the servers, others will be moved<a name="line.203"></a>
+<span class="sourceLineNo">204</span>   * @param targetGroupName the target group name<a name="line.204"></a>
+<span class="sourceLineNo">205</span>   * @throws IOException if moving the server and tables fail<a name="line.205"></a>
+<span class="sourceLineNo">206</span>   */<a name="line.206"></a>
+<span class="sourceLineNo">207</span>  private void moveRegionsFromServers(Set&lt;Address&gt; servers, Set&lt;TableName&gt; tables,<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      String targetGroupName) throws IOException {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    boolean foundRegionsToMove;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    RSGroupInfo targetGrp = getRSGroupInfo(targetGroupName);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    Set&lt;Address&gt; allSevers = new HashSet&lt;&gt;(servers);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    do {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      foundRegionsToMove = false;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      for (Iterator&lt;Address&gt; iter = allSevers.iterator(); iter.hasNext();) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        Address rs = iter.next();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        // Get regions that are associated with this server and filter regions by tables.<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        List&lt;RegionInfo&gt; regions = new ArrayList&lt;&gt;();<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        for (RegionInfo region : getRegions(rs)) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          if (!tables.contains(region.getTable())) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>            regions.add(region);<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>        LOG.info("Moving " + regions.size() + " region(s) from " + rs +<a name="line.224"></a>
+<span class="sourceLineNo">225</span>            " for server move to " + targetGroupName);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        if (!regions.isEmpty()) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>          for (RegionInfo region: regions) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>            // Regions might get assigned from tables of target group so we need to filter<a name="line.228"></a>
+<span class="sourceLineNo">229</span>            if (!targetGrp.containsTable(region.getTable())) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>              this.master.getAssignmentManager().move(region);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>              if (master.getAssignmentManager().getRegionStates().<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                  getRegionState(region).isFailedOpen()) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                continue;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>              }<a name="line.234"></a>
+<span class="sourceLineNo">235</span>              foundRegionsToMove = true;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>            }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>          }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        }<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        if (!foundRegionsToMove) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>          iter.remove();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        }<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      try {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        rsGroupInfoManager.wait(1000);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      } catch (InterruptedException e) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        LOG.warn("Sleep interrupted", e);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        Thread.currentThread().interrupt();<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      }<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    } while (foundRegionsToMove);<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>  /**<a name="line.252"></a>
+<span class="sourceLineNo">253</span>   * Moves every region of tables which should be kept on the servers,<a name="line.253"></a>
+<span class="sourceLineNo">254</span>   * but currently they are located on other servers.<a name="line.254"></a>
+<span class="sourceLineNo">255</span>   * @param servers the regions of these servers will be kept on the servers, others will be moved<a name="line.255"></a>
+<span class="sourceLineNo">256</span>   * @param tables the tables that will move to new group<a name="line.256"></a>
+<span class="sourceLineNo">257</span>   * @param targetGroupName the target group name<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   * @throws IOException if moving the region fails<a name="line.258"></a>
+<span class="sourceLineNo">259</span>   */<a name="line.259"></a>
+<span class="sourceLineNo">260</span>  private void moveRegionsToServers(Set&lt;Address&gt; servers, Set&lt;TableName&gt; tables,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      String targetGroupName) throws IOException {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    for (TableName table: tables) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      LOG.info("Moving region(s) from " + table + " for table move to " + targetGroupName);<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      for (RegionInfo region : master.getAssignmentManager().getRegionStates()<a name="line.264"></a>
+<span class="sourceLineNo">265</span>              .getRegionsOfTable(table)) {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        ServerName sn = master.getAssignmentManager().getRegionStates()<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                .getRegionServerOfRegion(region);<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        if (!servers.contains(sn.getAddress())) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>          master.getAssignmentManager().move(region);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        }<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      }<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    }<a name="line.272"></a>
+<span class="sourceLineNo">273</span>  }<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      value="RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE",<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      justification="Ignoring complaint because don't know what it is complaining about")<a name="line.277"></a>
+<span class="sourceLineNo">278</span>  @Override<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  public void moveServers(Set&lt;Address&gt; servers, String targetGroupName)<a name="line.279"></a>
+<span class="sourceLineNo">280</span>  throws IOException {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    if (servers == null) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      throw new ConstraintException("The list of servers to move cannot be null.");<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    }<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    if (servers.isEmpty()) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      // For some reason this difference between null servers and isEmpty is important distinction.<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      // TODO. Why? Stuff breaks if I equate them.<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      return;<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    }<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    RSGroupInfo targetGrp = getAndCheckRSGroupInfo(targetGroupName);<a name="line.289"></a>
+<span class="sourceLineNo">290</span><a name="line.290"></a>
+<span class="sourceLineNo">291</span>    // Hold a lock on the manager instance while moving servers to prevent<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    // another writer changing our state while we are working.<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    synchronized (rsGroupInfoManager) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      if (master.getMasterCoprocessorHost() != null) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        master.getMasterCoprocessorHost().preMoveServers(servers, targetGroupName);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      }<a name="line.296"></a>
+<span class="sourceLineNo">297</span>      // Presume first server's source group. Later ensure all servers are from this group.<a name="line.297"></a>
+<span class="sourceLineNo">298</span>      Address firstServer = servers.iterator().next();<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      RSGroupInfo srcGrp = rsGroupInfoManager.getRSGroupOfServer(firstServer);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      if (srcGrp == null) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        // Be careful. This exception message is tested for in TestRSGroupsBase...<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        throw new ConstraintException("Source RSGroup for server " + firstServer<a name="line.302"></a>
+<span class="sourceLineNo">303</span>            + " does not exist.");<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      }<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      if (srcGrp.getName().equals(targetGroupName)) {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        throw new ConstraintException("Target RSGroup " + targetGroupName +<a name="line.306"></a>
+<span class="sourceLineNo">307</span>            " is same as source " + srcGrp + " RSGroup.");<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      }<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      // Only move online servers (when moving from 'default') or servers from other<a name="line.309"></a>
+<span class="sourceLineNo">310</span>      // groups. This prevents bogus servers from entering groups<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      if (RSGroupInfo.DEFAULT_GROUP.equals(srcGrp.getName())) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>        if (srcGrp.getServers().size() &lt;= servers.size()) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>          throw new ConstraintException(KEEP_ONE_SERVER_IN_DEFAULT_ERROR_MESSAGE);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        checkOnlineServersOnly(servers);<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      }<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      // Ensure all servers are of same rsgroup.<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      for (Address server: servers) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        String tmpGroup = rsGroupInfoManager.getRSGroupOfServer(server).getName();<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        if (!tmpGroup.equals(srcGrp.getName())) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>          throw new ConstraintException("Move server request should only come from one source " +<a name="line.321"></a>
+<span class="sourceLineNo">322</span>              "RSGroup. Expecting only " + srcGrp.getName() + " but contains " + tmpGroup);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>        }<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      }<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      if (srcGrp.getServers().size() &lt;= servers.size() &amp;&amp; srcGrp.getTables().size() &gt; 0) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>        throw new ConstraintException("Cannot leave a RSGroup " + srcGrp.getName() +<a name="line.326"></a>
+<span class="sourceLineNo">327</span>            " that contains tables without servers to host them.");<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>      // MovedServers may be &lt; passed in 'servers'.<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      Set&lt;Address&gt; movedServers = rsGroupInfoManager.moveServers(servers, srcGrp.getName(),<a name="line.331"></a>
+<span class="sourceLineNo">332</span>          targetGroupName);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      List&lt;Address&gt; editableMovedServers = Lists.newArrayList(movedServers);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      boolean foundRegionsToMove;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      do {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        foundRegionsToMove = false;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        for (Iterator&lt;Address&gt; iter = editableMovedServers.iterator(); iter.hasNext();) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>          Address rs = iter.next();<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          // Get regions that are associated with this server.<a name="line.339"></a>
+<span class="sourceLineNo">340</span>          List&lt;RegionInfo&gt; regions = getRegions(rs);<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>          LOG.info("Moving " + regions.size() + " region(s) from " + rs +<a name="line.342"></a>
+<span class="sourceLineNo">343</span>              " for server move to " + targetGroupName);<a name="line.343"></a>
+<span class="sourceLineNo">344</span><a name="line.344"></a>
+<span class="sourceLineNo">345</span>          for (RegionInfo region: regions) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>            // Regions might get assigned from tables of target group so we need to filter<a name="line.346"></a>
+<span class="sourceLineNo">347</span>            if (targetGrp.containsTable(region.getTable())) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>              continue;<a name="line.348"></a>
+<span class="sourceLineNo">349</span>            }<a name="line.349"></a>
+<span class="sourceLineNo">350</span>            LOG.info("Moving region " + region.getShortNameToLog());<a name="line.350"></a>
+<span class="sourceLineNo">351</span>            this.master.getAssignmentManager().move(region);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>            if (master.getAssignmentManager().getRegionStates().<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                getRegionState(region).isFailedOpen()) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>              // If region is in FAILED_OPEN state, it won't recover, not without<a name="line.354"></a>
+<span class="sourceLineNo">355</span>              // operator intervention... in hbase-2.0.0 at least. Continue rather<a name="line.355"></a>
+<span class="sourceLineNo">356</span>              // than mark region as 'foundRegionsToMove'.<a name="line.356"></a>
+<span class="sourceLineNo">357</span>              continue;<a name="line.357"></a>
+<span class="sourceLineNo">358</span>            }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>            foundRegionsToMove = true;<a name="line.359"></a>
+<span class="sourceLineNo">360</span>          }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>          if (!foundRegionsToMove) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>            iter.remove();<a name="line.362"></a>
+<span class="sourceLineNo">363</span>          }<a name="line.363"></a>
+<span class="sourceLineNo">364</span>        }<a name="line.364"></a>
+<span class="sourceLineNo">365</span>        try {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>          rsGroupInfoManager.wait(1000);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>        } catch (InterruptedException e) {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>          LOG.warn("Sleep interrupted", e);<a name="line.368"></a>
+<span class="sourceLineNo">369</span>          Thread.currentThread().interrupt();<a name="line.369"></a>
+<span class="sourceLineNo">370</span>        }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>      } while (foundRegionsToMove);<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>      if (master.getMasterCoprocessorHost() != null) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        master.getMasterCoprocessorHost().postMoveServers(servers, targetGroupName);<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      }<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      LOG.info("Move server done: " + srcGrp.getName() + "=&gt;" + targetGroupName);<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    }<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  }<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>  @Override<a name="line.380"></a>
+<span class="sourceLineNo">381</span>  public void moveTables(Set&lt;TableName&gt; tables, String targetGroup) throws IOException {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    if (tables == null) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      throw new ConstraintException("The list of servers cannot be null.");<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    }<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    if (tables.size() &lt; 1) {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      LOG.debug("moveTables() passed an empty set. Ignoring.");<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      return;<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>    // Hold a lock on the manager instance while moving servers to prevent<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    // another writer changing our state while we are working.<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    synchronized (rsGroupInfoManager) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      if (master.getMasterCoprocessorHost() != null) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        master.getMasterCoprocessorHost().preMoveTables(tables, targetGroup);<a name="line.394"></a>
+<span class="sourceLineNo">395</span>      }<a name="line.395"></a>
+<span class="sourceLineNo">396</span>      if(targetGroup != null) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        RSGroupInfo destGroup = rsGroupInfoManager.getRSGroup(targetGroup);<a name="line.397"></a>
+<span class="sourceLineNo">398</span>        if(destGroup == null) {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>          throw new ConstraintException("Target " + targetGroup + " RSGroup does not exist.");<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span>        if(destGroup.getServers().size() &lt; 1) {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>          throw new ConstraintException("Target RSGroup must have at least one server.");<a name="line.402"></a>
+<span class="sourceLineNo">403</span>        }<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      }<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>      for (TableName table : tables) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        String srcGroup = rsGroupInfoManager.getRSGroupOfTable(table);<a name="line.407"></a>
+<span class="sourceLineNo">408</span>        if(srcGroup != null &amp;&amp; srcGroup.equals(targetGroup)) {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>          throw new ConstraintException(<a name="line.409"></a>
+<span class="sourceLineNo">410</span>              "Source RSGroup " + srcGroup + " is same as target " + targetGroup +<a name="line.410"></a>
+<span class="sourceLineNo">411</span>              " RSGroup for table " + table);<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        }<a name="line.412"></a>
+<span class="sourceLineNo">413</span>        LOG.info("Moving table " + table.getNameAsString() + " to RSGroup " + targetGroup);<a name="line.413"></a>
+<span class="sourceLineNo">414</span>      }<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      rsGroupInfoManager.moveTables(tables, targetGroup);<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span>      // targetGroup is null when a table is being deleted. In this case no further<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      // action is required.<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      if (targetGroup != null) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>        for (TableName table: tables) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>          if (master.getAssignmentManager().isTableDisabled(table)) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>            LOG.debug("Skipping move regions because the table" + table + " is disabled.");<a name="line.422"></a>
+<span class="sourceLineNo">423</span>            continue;<a name="line.423"></a>
+<span class="sourceLineNo">424</span>          }<a name="line.424"></a>
+<span class="sourceLineNo">425</span>          for (RegionInfo region :<a name="line.425"></a>
+<span class="sourceLineNo">426</span>              master.getAssignmentManager().getRegionStates().getRegionsOfTable(table)) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>            LOG.info("Moving region " + region.getShortNameToLog() +<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                " to RSGroup " + targetGroup);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>            master.getAssignmentManager().move(region);<a name="line.429"></a>
+<span class="sourceLineNo">430</span>          }<a name="line.430"></a>
+<span class="sourceLineNo">431</span>        }<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      }<a name="line.432"></a>
+<span class="sourceLineNo">433</span><a name="line.433"></a>
+<span class="sourceLineNo">434</span>      if (master.getMasterCoprocessorHost() != null) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        master.getMasterCoprocessorHost().postMoveTables(tables, targetGroup);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>      }<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    }<a name="line.437"></a>
+<span class="sourceLineNo">438</span>  }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>  @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span>  public void addRSGroup(String name) throws IOException {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    if (master.getMasterCoprocessorHost() != null) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      master.getMasterCoprocessorHost().preAddRSGroup(name);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>    }<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    rsGroupInfoManager.addRSGroup(new RSGroupInfo(name));<a name="line.445"></a>
+<span class="sourceLineNo">446</span>    if (master.getMasterCoprocessorHost() != null) {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>      master.getMasterCoprocessorHost().postAddRSGroup(name);<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    }<a name="line.448"></a>
+<span class="sourceLineNo">449</span>  }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>  @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>  public void removeRSGroup(String name) throws IOException {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>    // Hold a lock on the manager instance while moving servers to prevent<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    // another writer changing our state while we are working.<a name="line.454"></a>
+<span class="sourceLineNo">455</span>    synchronized (rsGroupInfoManager) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>      if (master.getMasterCoprocessorHost() != null) {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        master.getMasterCoprocessorHost().preRemoveRSGroup(name);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>      }<a name="line.458"></a>
+<span class="sourceLineNo">459</span>      RSGroupInfo rsGroupInfo = rsGroupInfoManager.getRSGroup(name);<a name="line.459"></a>
+<span class="sourceLineNo">460</span>      if (rsGroupInfo == null) {<a name="line.460"></a>
+<span class="sourceLin

<TRUNCATED>

[08/16] hbase-site git commit: Published site at 4f2dfd387779968d3b76a22f1f4189d3278b202d.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/devapidocs/src-html/org/apache/hadoop/hbase/client/Scan.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/Scan.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/Scan.html
index 64dfea4..070e349 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/Scan.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/Scan.html
@@ -287,984 +287,987 @@
 <span class="sourceLineNo">279</span>    this.limit = scan.getLimit();<a name="line.279"></a>
 <span class="sourceLineNo">280</span>    this.needCursorResult = scan.isNeedCursorResult();<a name="line.280"></a>
 <span class="sourceLineNo">281</span>    setPriority(scan.getPriority());<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>  /**<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   * Builds a scan object with the same specs as get.<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * @param get get to model scan after<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   */<a name="line.287"></a>
-<span class="sourceLineNo">288</span>  public Scan(Get get) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    this.startRow = get.getRow();<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    this.includeStartRow = true;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    this.stopRow = get.getRow();<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    this.includeStopRow = true;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    this.filter = get.getFilter();<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    this.cacheBlocks = get.getCacheBlocks();<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    this.maxVersions = get.getMaxVersions();<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    this.storeLimit = get.getMaxResultsPerColumnFamily();<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    this.storeOffset = get.getRowOffsetPerColumnFamily();<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    this.tr = get.getTimeRange();<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    this.familyMap = get.getFamilyMap();<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    this.asyncPrefetch = false;<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    this.consistency = get.getConsistency();<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    this.setIsolationLevel(get.getIsolationLevel());<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    this.loadColumnFamiliesOnDemand = get.getLoadColumnFamiliesOnDemandValue();<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    for (Map.Entry&lt;String, byte[]&gt; attr : get.getAttributesMap().entrySet()) {<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      setAttribute(attr.getKey(), attr.getValue());<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    }<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    for (Map.Entry&lt;byte[], TimeRange&gt; entry : get.getColumnFamilyTimeRange().entrySet()) {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      TimeRange tr = entry.getValue();<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      setColumnFamilyTimeRange(entry.getKey(), tr.getMin(), tr.getMax());<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    }<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    this.mvccReadPoint = -1L;<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    setPriority(get.getPriority());<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>  public boolean isGetScan() {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    return includeStartRow &amp;&amp; includeStopRow<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        &amp;&amp; ClientUtil.areScanStartRowAndStopRowEqual(this.startRow, this.stopRow);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>  }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>  /**<a name="line.320"></a>
-<span class="sourceLineNo">321</span>   * Get all columns from the specified family.<a name="line.321"></a>
-<span class="sourceLineNo">322</span>   * &lt;p&gt;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>   * Overrides previous calls to addColumn for this family.<a name="line.323"></a>
-<span class="sourceLineNo">324</span>   * @param family family name<a name="line.324"></a>
-<span class="sourceLineNo">325</span>   * @return this<a name="line.325"></a>
-<span class="sourceLineNo">326</span>   */<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public Scan addFamily(byte [] family) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    familyMap.remove(family);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    familyMap.put(family, null);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    return this;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>  }<a name="line.331"></a>
-<span class="sourceLineNo">332</span><a name="line.332"></a>
-<span class="sourceLineNo">333</span>  /**<a name="line.333"></a>
-<span class="sourceLineNo">334</span>   * Get the column from the specified family with the specified qualifier.<a name="line.334"></a>
-<span class="sourceLineNo">335</span>   * &lt;p&gt;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>   * Overrides previous calls to addFamily for this family.<a name="line.336"></a>
-<span class="sourceLineNo">337</span>   * @param family family name<a name="line.337"></a>
-<span class="sourceLineNo">338</span>   * @param qualifier column qualifier<a name="line.338"></a>
-<span class="sourceLineNo">339</span>   * @return this<a name="line.339"></a>
-<span class="sourceLineNo">340</span>   */<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  public Scan addColumn(byte [] family, byte [] qualifier) {<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    NavigableSet&lt;byte []&gt; set = familyMap.get(family);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    if(set == null) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      set = new TreeSet&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      familyMap.put(family, set);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    }<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    if (qualifier == null) {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      qualifier = HConstants.EMPTY_BYTE_ARRAY;<a name="line.348"></a>
+<span class="sourceLineNo">282</span>    readType = scan.getReadType();<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    super.setReplicaId(scan.getReplicaId());<a name="line.283"></a>
+<span class="sourceLineNo">284</span>  }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>  /**<a name="line.286"></a>
+<span class="sourceLineNo">287</span>   * Builds a scan object with the same specs as get.<a name="line.287"></a>
+<span class="sourceLineNo">288</span>   * @param get get to model scan after<a name="line.288"></a>
+<span class="sourceLineNo">289</span>   */<a name="line.289"></a>
+<span class="sourceLineNo">290</span>  public Scan(Get get) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    this.startRow = get.getRow();<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    this.includeStartRow = true;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    this.stopRow = get.getRow();<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    this.includeStopRow = true;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    this.filter = get.getFilter();<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    this.cacheBlocks = get.getCacheBlocks();<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    this.maxVersions = get.getMaxVersions();<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    this.storeLimit = get.getMaxResultsPerColumnFamily();<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    this.storeOffset = get.getRowOffsetPerColumnFamily();<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    this.tr = get.getTimeRange();<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    this.familyMap = get.getFamilyMap();<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    this.asyncPrefetch = false;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    this.consistency = get.getConsistency();<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    this.setIsolationLevel(get.getIsolationLevel());<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    this.loadColumnFamiliesOnDemand = get.getLoadColumnFamiliesOnDemandValue();<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    for (Map.Entry&lt;String, byte[]&gt; attr : get.getAttributesMap().entrySet()) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      setAttribute(attr.getKey(), attr.getValue());<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    }<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    for (Map.Entry&lt;byte[], TimeRange&gt; entry : get.getColumnFamilyTimeRange().entrySet()) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>      TimeRange tr = entry.getValue();<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      setColumnFamilyTimeRange(entry.getKey(), tr.getMin(), tr.getMax());<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    }<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    this.mvccReadPoint = -1L;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    setPriority(get.getPriority());<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    super.setReplicaId(get.getReplicaId());<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>  public boolean isGetScan() {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    return includeStartRow &amp;&amp; includeStopRow<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        &amp;&amp; ClientUtil.areScanStartRowAndStopRowEqual(this.startRow, this.stopRow);<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>   * Get all columns from the specified family.<a name="line.324"></a>
+<span class="sourceLineNo">325</span>   * &lt;p&gt;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>   * Overrides previous calls to addColumn for this family.<a name="line.326"></a>
+<span class="sourceLineNo">327</span>   * @param family family name<a name="line.327"></a>
+<span class="sourceLineNo">328</span>   * @return this<a name="line.328"></a>
+<span class="sourceLineNo">329</span>   */<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  public Scan addFamily(byte [] family) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    familyMap.remove(family);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    familyMap.put(family, null);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    return this;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>  }<a name="line.334"></a>
+<span class="sourceLineNo">335</span><a name="line.335"></a>
+<span class="sourceLineNo">336</span>  /**<a name="line.336"></a>
+<span class="sourceLineNo">337</span>   * Get the column from the specified family with the specified qualifier.<a name="line.337"></a>
+<span class="sourceLineNo">338</span>   * &lt;p&gt;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>   * Overrides previous calls to addFamily for this family.<a name="line.339"></a>
+<span class="sourceLineNo">340</span>   * @param family family name<a name="line.340"></a>
+<span class="sourceLineNo">341</span>   * @param qualifier column qualifier<a name="line.341"></a>
+<span class="sourceLineNo">342</span>   * @return this<a name="line.342"></a>
+<span class="sourceLineNo">343</span>   */<a name="line.343"></a>
+<span class="sourceLineNo">344</span>  public Scan addColumn(byte [] family, byte [] qualifier) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    NavigableSet&lt;byte []&gt; set = familyMap.get(family);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    if(set == null) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      set = new TreeSet&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      familyMap.put(family, set);<a name="line.348"></a>
 <span class="sourceLineNo">349</span>    }<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    set.add(qualifier);<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    return this;<a name="line.351"></a>
-<span class="sourceLineNo">352</span>  }<a name="line.352"></a>
-<span class="sourceLineNo">353</span><a name="line.353"></a>
-<span class="sourceLineNo">354</span>  /**<a name="line.354"></a>
-<span class="sourceLineNo">355</span>   * Get versions of columns only within the specified timestamp range,<a name="line.355"></a>
-<span class="sourceLineNo">356</span>   * [minStamp, maxStamp).  Note, default maximum versions to return is 1.  If<a name="line.356"></a>
-<span class="sourceLineNo">357</span>   * your time range spans more than one version and you want all versions<a name="line.357"></a>
-<span class="sourceLineNo">358</span>   * returned, up the number of versions beyond the default.<a name="line.358"></a>
-<span class="sourceLineNo">359</span>   * @param minStamp minimum timestamp value, inclusive<a name="line.359"></a>
-<span class="sourceLineNo">360</span>   * @param maxStamp maximum timestamp value, exclusive<a name="line.360"></a>
-<span class="sourceLineNo">361</span>   * @see #setMaxVersions()<a name="line.361"></a>
-<span class="sourceLineNo">362</span>   * @see #setMaxVersions(int)<a name="line.362"></a>
-<span class="sourceLineNo">363</span>   * @return this<a name="line.363"></a>
-<span class="sourceLineNo">364</span>   */<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  public Scan setTimeRange(long minStamp, long maxStamp) throws IOException {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    tr = new TimeRange(minStamp, maxStamp);<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    return this;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  }<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>  /**<a name="line.370"></a>
-<span class="sourceLineNo">371</span>   * Get versions of columns with the specified timestamp. Note, default maximum<a name="line.371"></a>
-<span class="sourceLineNo">372</span>   * versions to return is 1.  If your time range spans more than one version<a name="line.372"></a>
-<span class="sourceLineNo">373</span>   * and you want all versions returned, up the number of versions beyond the<a name="line.373"></a>
-<span class="sourceLineNo">374</span>   * defaut.<a name="line.374"></a>
-<span class="sourceLineNo">375</span>   * @param timestamp version timestamp<a name="line.375"></a>
-<span class="sourceLineNo">376</span>   * @see #setMaxVersions()<a name="line.376"></a>
-<span class="sourceLineNo">377</span>   * @see #setMaxVersions(int)<a name="line.377"></a>
-<span class="sourceLineNo">378</span>   * @return this<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   * @deprecated As of release 2.0.0, this will be removed in HBase 3.0.0.<a name="line.379"></a>
-<span class="sourceLineNo">380</span>   *             Use {@link #setTimestamp(long)} instead<a name="line.380"></a>
-<span class="sourceLineNo">381</span>   */<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  @Deprecated<a name="line.382"></a>
-<span class="sourceLineNo">383</span>  public Scan setTimeStamp(long timestamp)<a name="line.383"></a>
-<span class="sourceLineNo">384</span>  throws IOException {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    return this.setTimestamp(timestamp);<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  }<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>  /**<a name="line.388"></a>
-<span class="sourceLineNo">389</span>   * Get versions of columns with the specified timestamp. Note, default maximum<a name="line.389"></a>
-<span class="sourceLineNo">390</span>   * versions to return is 1.  If your time range spans more than one version<a name="line.390"></a>
-<span class="sourceLineNo">391</span>   * and you want all versions returned, up the number of versions beyond the<a name="line.391"></a>
-<span class="sourceLineNo">392</span>   * defaut.<a name="line.392"></a>
-<span class="sourceLineNo">393</span>   * @param timestamp version timestamp<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   * @see #setMaxVersions()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>   * @see #setMaxVersions(int)<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   * @return this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>   */<a name="line.397"></a>
-<span class="sourceLineNo">398</span>  public Scan setTimestamp(long timestamp) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    try {<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      tr = new TimeRange(timestamp, timestamp + 1);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    } catch(Exception e) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>      // This should never happen, unless integer overflow or something extremely wrong...<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      LOG.error("TimeRange failed, likely caused by integer overflow. ", e);<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      throw e;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    }<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>    return this;<a name="line.407"></a>
-<span class="sourceLineNo">408</span>  }<a name="line.408"></a>
+<span class="sourceLineNo">350</span>    if (qualifier == null) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      qualifier = HConstants.EMPTY_BYTE_ARRAY;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    set.add(qualifier);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    return this;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>  /**<a name="line.357"></a>
+<span class="sourceLineNo">358</span>   * Get versions of columns only within the specified timestamp range,<a name="line.358"></a>
+<span class="sourceLineNo">359</span>   * [minStamp, maxStamp).  Note, default maximum versions to return is 1.  If<a name="line.359"></a>
+<span class="sourceLineNo">360</span>   * your time range spans more than one version and you want all versions<a name="line.360"></a>
+<span class="sourceLineNo">361</span>   * returned, up the number of versions beyond the default.<a name="line.361"></a>
+<span class="sourceLineNo">362</span>   * @param minStamp minimum timestamp value, inclusive<a name="line.362"></a>
+<span class="sourceLineNo">363</span>   * @param maxStamp maximum timestamp value, exclusive<a name="line.363"></a>
+<span class="sourceLineNo">364</span>   * @see #setMaxVersions()<a name="line.364"></a>
+<span class="sourceLineNo">365</span>   * @see #setMaxVersions(int)<a name="line.365"></a>
+<span class="sourceLineNo">366</span>   * @return this<a name="line.366"></a>
+<span class="sourceLineNo">367</span>   */<a name="line.367"></a>
+<span class="sourceLineNo">368</span>  public Scan setTimeRange(long minStamp, long maxStamp) throws IOException {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    tr = new TimeRange(minStamp, maxStamp);<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    return this;<a name="line.370"></a>
+<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>  /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>   * Get versions of columns with the specified timestamp. Note, default maximum<a name="line.374"></a>
+<span class="sourceLineNo">375</span>   * versions to return is 1.  If your time range spans more than one version<a name="line.375"></a>
+<span class="sourceLineNo">376</span>   * and you want all versions returned, up the number of versions beyond the<a name="line.376"></a>
+<span class="sourceLineNo">377</span>   * defaut.<a name="line.377"></a>
+<span class="sourceLineNo">378</span>   * @param timestamp version timestamp<a name="line.378"></a>
+<span class="sourceLineNo">379</span>   * @see #setMaxVersions()<a name="line.379"></a>
+<span class="sourceLineNo">380</span>   * @see #setMaxVersions(int)<a name="line.380"></a>
+<span class="sourceLineNo">381</span>   * @return this<a name="line.381"></a>
+<span class="sourceLineNo">382</span>   * @deprecated As of release 2.0.0, this will be removed in HBase 3.0.0.<a name="line.382"></a>
+<span class="sourceLineNo">383</span>   *             Use {@link #setTimestamp(long)} instead<a name="line.383"></a>
+<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  @Deprecated<a name="line.385"></a>
+<span class="sourceLineNo">386</span>  public Scan setTimeStamp(long timestamp)<a name="line.386"></a>
+<span class="sourceLineNo">387</span>  throws IOException {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    return this.setTimestamp(timestamp);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>  /**<a name="line.391"></a>
+<span class="sourceLineNo">392</span>   * Get versions of columns with the specified timestamp. Note, default maximum<a name="line.392"></a>
+<span class="sourceLineNo">393</span>   * versions to return is 1.  If your time range spans more than one version<a name="line.393"></a>
+<span class="sourceLineNo">394</span>   * and you want all versions returned, up the number of versions beyond the<a name="line.394"></a>
+<span class="sourceLineNo">395</span>   * defaut.<a name="line.395"></a>
+<span class="sourceLineNo">396</span>   * @param timestamp version timestamp<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   * @see #setMaxVersions()<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   * @see #setMaxVersions(int)<a name="line.398"></a>
+<span class="sourceLineNo">399</span>   * @return this<a name="line.399"></a>
+<span class="sourceLineNo">400</span>   */<a name="line.400"></a>
+<span class="sourceLineNo">401</span>  public Scan setTimestamp(long timestamp) {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    try {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      tr = new TimeRange(timestamp, timestamp + 1);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    } catch(Exception e) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      // This should never happen, unless integer overflow or something extremely wrong...<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      LOG.error("TimeRange failed, likely caused by integer overflow. ", e);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      throw e;<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>  @Override public Scan setColumnFamilyTimeRange(byte[] cf, long minStamp, long maxStamp) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return (Scan) super.setColumnFamilyTimeRange(cf, minStamp, maxStamp);<a name="line.411"></a>
-<span class="sourceLineNo">412</span>  }<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span>  /**<a name="line.414"></a>
-<span class="sourceLineNo">415</span>   * Set the start row of the scan.<a name="line.415"></a>
-<span class="sourceLineNo">416</span>   * &lt;p&gt;<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * If the specified row does not exist, the Scanner will start from the next closest row after the<a name="line.417"></a>
-<span class="sourceLineNo">418</span>   * specified row.<a name="line.418"></a>
-<span class="sourceLineNo">419</span>   * @param startRow row to start scanner at or after<a name="line.419"></a>
-<span class="sourceLineNo">420</span>   * @return this<a name="line.420"></a>
-<span class="sourceLineNo">421</span>   * @throws IllegalArgumentException if startRow does not meet criteria for a row key (when length<a name="line.421"></a>
-<span class="sourceLineNo">422</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.422"></a>
-<span class="sourceLineNo">423</span>   * @deprecated use {@link #withStartRow(byte[])} instead. This method may change the inclusive of<a name="line.423"></a>
-<span class="sourceLineNo">424</span>   *             the stop row to keep compatible with the old behavior.<a name="line.424"></a>
-<span class="sourceLineNo">425</span>   */<a name="line.425"></a>
-<span class="sourceLineNo">426</span>  @Deprecated<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  public Scan setStartRow(byte[] startRow) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    withStartRow(startRow);<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    if (ClientUtil.areScanStartRowAndStopRowEqual(this.startRow, this.stopRow)) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      // for keeping the old behavior that a scan with the same start and stop row is a get scan.<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      this.includeStopRow = true;<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    return this;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>  /**<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   * Set the start row of the scan.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   * &lt;p&gt;<a name="line.438"></a>
-<span class="sourceLineNo">439</span>   * If the specified row does not exist, the Scanner will start from the next closest row after the<a name="line.439"></a>
-<span class="sourceLineNo">440</span>   * specified row.<a name="line.440"></a>
-<span class="sourceLineNo">441</span>   * @param startRow row to start scanner at or after<a name="line.441"></a>
-<span class="sourceLineNo">442</span>   * @return this<a name="line.442"></a>
-<span class="sourceLineNo">443</span>   * @throws IllegalArgumentException if startRow does not meet criteria for a row key (when length<a name="line.443"></a>
-<span class="sourceLineNo">444</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.444"></a>
-<span class="sourceLineNo">445</span>   */<a name="line.445"></a>
-<span class="sourceLineNo">446</span>  public Scan withStartRow(byte[] startRow) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    return withStartRow(startRow, true);<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  }<a name="line.448"></a>
-<span class="sourceLineNo">449</span><a name="line.449"></a>
-<span class="sourceLineNo">450</span>  /**<a name="line.450"></a>
-<span class="sourceLineNo">451</span>   * Set the start row of the scan.<a name="line.451"></a>
-<span class="sourceLineNo">452</span>   * &lt;p&gt;<a name="line.452"></a>
-<span class="sourceLineNo">453</span>   * If the specified row does not exist, or the {@code inclusive} is {@code false}, the Scanner<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * will start from the next closest row after the specified row.<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * @param startRow row to start scanner at or after<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * @param inclusive whether we should include the start row when scan<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * @return this<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   * @throws IllegalArgumentException if startRow does not meet criteria for a row key (when length<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   */<a name="line.460"></a>
-<span class="sourceLineNo">461</span>  public Scan withStartRow(byte[] startRow, boolean inclusive) {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    if (Bytes.len(startRow) &gt; HConstants.MAX_ROW_LENGTH) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      throw new IllegalArgumentException("startRow's length must be less than or equal to "<a name="line.463"></a>
-<span class="sourceLineNo">464</span>          + HConstants.MAX_ROW_LENGTH + " to meet the criteria" + " for a row key.");<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    }<a name="line.465"></a>
-<span class="sourceLineNo">466</span>    this.startRow = startRow;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    this.includeStartRow = inclusive;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    return this;<a name="line.468"></a>
-<span class="sourceLineNo">469</span>  }<a name="line.469"></a>
-<span class="sourceLineNo">470</span><a name="line.470"></a>
-<span class="sourceLineNo">471</span>  /**<a name="line.471"></a>
-<span class="sourceLineNo">472</span>   * Set the stop row of the scan.<a name="line.472"></a>
-<span class="sourceLineNo">473</span>   * &lt;p&gt;<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   * The scan will include rows that are lexicographically less than the provided stopRow.<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   * &lt;p&gt;<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * &lt;b&gt;Note:&lt;/b&gt; When doing a filter for a rowKey &lt;u&gt;Prefix&lt;/u&gt; use<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * {@link #setRowPrefixFilter(byte[])}. The 'trailing 0' will not yield the desired result.<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * &lt;/p&gt;<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   * @param stopRow row to end at (exclusive)<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * @return this<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * @throws IllegalArgumentException if stopRow does not meet criteria for a row key (when length<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   * @deprecated use {@link #withStartRow(byte[])} instead. This method may change the inclusive of<a name="line.483"></a>
-<span class="sourceLineNo">484</span>   *             the stop row to keep compatible with the old behavior.<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   */<a name="line.485"></a>
-<span class="sourceLineNo">486</span>  @Deprecated<a name="line.486"></a>
-<span class="sourceLineNo">487</span>  public Scan setStopRow(byte[] stopRow) {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    withStopRow(stopRow);<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    if (ClientUtil.areScanStartRowAndStopRowEqual(this.startRow, this.stopRow)) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      // for keeping the old behavior that a scan with the same start and stop row is a get scan.<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      this.includeStopRow = true;<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    }<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    return this;<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>  /**<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   * Set the stop row of the scan.<a name="line.497"></a>
-<span class="sourceLineNo">498</span>   * &lt;p&gt;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>   * The scan will include rows that are lexicographically less than the provided stopRow.<a name="line.499"></a>
-<span class="sourceLineNo">500</span>   * &lt;p&gt;<a name="line.500"></a>
-<span class="sourceLineNo">501</span>   * &lt;b&gt;Note:&lt;/b&gt; When doing a filter for a rowKey &lt;u&gt;Prefix&lt;/u&gt; use<a name="line.501"></a>
-<span class="sourceLineNo">502</span>   * {@link #setRowPrefixFilter(byte[])}. The 'trailing 0' will not yield the desired result.<a name="line.502"></a>
-<span class="sourceLineNo">503</span>   * &lt;/p&gt;<a name="line.503"></a>
-<span class="sourceLineNo">504</span>   * @param stopRow row to end at (exclusive)<a name="line.504"></a>
-<span class="sourceLineNo">505</span>   * @return this<a name="line.505"></a>
-<span class="sourceLineNo">506</span>   * @throws IllegalArgumentException if stopRow does not meet criteria for a row key (when length<a name="line.506"></a>
-<span class="sourceLineNo">507</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.507"></a>
-<span class="sourceLineNo">508</span>   */<a name="line.508"></a>
-<span class="sourceLineNo">509</span>  public Scan withStopRow(byte[] stopRow) {<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    return withStopRow(stopRow, false);<a name="line.510"></a>
-<span class="sourceLineNo">511</span>  }<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>   * Set the stop row of the scan.<a name="line.514"></a>
-<span class="sourceLineNo">515</span>   * &lt;p&gt;<a name="line.515"></a>
-<span class="sourceLineNo">516</span>   * The scan will include rows that are lexicographically less than (or equal to if<a name="line.516"></a>
-<span class="sourceLineNo">517</span>   * {@code inclusive} is {@code true}) the provided stopRow.<a name="line.517"></a>
-<span class="sourceLineNo">518</span>   * @param stopRow row to end at<a name="line.518"></a>
-<span class="sourceLineNo">519</span>   * @param inclusive whether we should include the stop row when scan<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   * @return this<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   * @throws IllegalArgumentException if stopRow does not meet criteria for a row key (when length<a name="line.521"></a>
-<span class="sourceLineNo">522</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.522"></a>
-<span class="sourceLineNo">523</span>   */<a name="line.523"></a>
-<span class="sourceLineNo">524</span>  public Scan withStopRow(byte[] stopRow, boolean inclusive) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>    if (Bytes.len(stopRow) &gt; HConstants.MAX_ROW_LENGTH) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      throw new IllegalArgumentException("stopRow's length must be less than or equal to "<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          + HConstants.MAX_ROW_LENGTH + " to meet the criteria" + " for a row key.");<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    }<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    this.stopRow = stopRow;<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    this.includeStopRow = inclusive;<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    return this;<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>  /**<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   * &lt;p&gt;Set a filter (using stopRow and startRow) so the result set only contains rows where the<a name="line.535"></a>
-<span class="sourceLineNo">536</span>   * rowKey starts with the specified prefix.&lt;/p&gt;<a name="line.536"></a>
-<span class="sourceLineNo">537</span>   * &lt;p&gt;This is a utility method that converts the desired rowPrefix into the appropriate values<a name="line.537"></a>
-<span class="sourceLineNo">538</span>   * for the startRow and stopRow to achieve the desired result.&lt;/p&gt;<a name="line.538"></a>
-<span class="sourceLineNo">539</span>   * &lt;p&gt;This can safely be used in combination with setFilter.&lt;/p&gt;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>   * &lt;p&gt;&lt;b&gt;NOTE: Doing a {@link #setStartRow(byte[])} and/or {@link #setStopRow(byte[])}<a name="line.540"></a>
-<span class="sourceLineNo">541</span>   * after this method will yield undefined results.&lt;/b&gt;&lt;/p&gt;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>   * @param rowPrefix the prefix all rows must start with. (Set &lt;i&gt;null&lt;/i&gt; to remove the filter.)<a name="line.542"></a>
-<span class="sourceLineNo">543</span>   * @return this<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   */<a name="line.544"></a>
-<span class="sourceLineNo">545</span>  public Scan setRowPrefixFilter(byte[] rowPrefix) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    if (rowPrefix == null) {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      setStartRow(HConstants.EMPTY_START_ROW);<a name="line.547"></a>
-<span class="sourceLineNo">548</span>      setStopRow(HConstants.EMPTY_END_ROW);<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    } else {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      this.setStartRow(rowPrefix);<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      this.setStopRow(calculateTheClosestNextRowKeyForPrefix(rowPrefix));<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    }<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    return this;<a name="line.553"></a>
-<span class="sourceLineNo">554</span>  }<a name="line.554"></a>
-<span class="sourceLineNo">555</span><a name="line.555"></a>
-<span class="sourceLineNo">556</span>  /**<a name="line.556"></a>
-<span class="sourceLineNo">557</span>   * &lt;p&gt;When scanning for a prefix the scan should stop immediately after the the last row that<a name="line.557"></a>
-<span class="sourceLineNo">558</span>   * has the specified prefix. This method calculates the closest next rowKey immediately following<a name="line.558"></a>
-<span class="sourceLineNo">559</span>   * the given rowKeyPrefix.&lt;/p&gt;<a name="line.559"></a>
-<span class="sourceLineNo">560</span>   * &lt;p&gt;&lt;b&gt;IMPORTANT: This converts a rowKey&lt;u&gt;Prefix&lt;/u&gt; into a rowKey&lt;/b&gt;.&lt;/p&gt;<a name="line.560"></a>
-<span class="sourceLineNo">561</span>   * &lt;p&gt;If the prefix is an 'ASCII' string put into a byte[] then this is easy because you can<a name="line.561"></a>
-<span class="sourceLineNo">562</span>   * simply increment the last byte of the array.<a name="line.562"></a>
-<span class="sourceLineNo">563</span>   * But if your application uses real binary rowids you may run into the scenario that your<a name="line.563"></a>
-<span class="sourceLineNo">564</span>   * prefix is something like:&lt;/p&gt;<a name="line.564"></a>
-<span class="sourceLineNo">565</span>   * &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;{ 0x12, 0x23, 0xFF, 0xFF }&lt;/b&gt;&lt;br/&gt;<a name="line.565"></a>
-<span class="sourceLineNo">566</span>   * Then this stopRow needs to be fed into the actual scan&lt;br/&gt;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>   * &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;{ 0x12, 0x24 }&lt;/b&gt; (Notice that it is shorter now)&lt;br/&gt;<a name="line.567"></a>
-<span class="sourceLineNo">568</span>   * This method calculates the correct stop row value for this usecase.<a name="line.568"></a>
-<span class="sourceLineNo">569</span>   *<a name="line.569"></a>
-<span class="sourceLineNo">570</span>   * @param rowKeyPrefix the rowKey&lt;u&gt;Prefix&lt;/u&gt;.<a name="line.570"></a>
-<span class="sourceLineNo">571</span>   * @return the closest next rowKey immediately following the given rowKeyPrefix.<a name="line.571"></a>
-<span class="sourceLineNo">572</span>   */<a name="line.572"></a>
-<span class="sourceLineNo">573</span>  private byte[] calculateTheClosestNextRowKeyForPrefix(byte[] rowKeyPrefix) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    // Essentially we are treating it like an 'unsigned very very long' and doing +1 manually.<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    // Search for the place where the trailing 0xFFs start<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    int offset = rowKeyPrefix.length;<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    while (offset &gt; 0) {<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      if (rowKeyPrefix[offset - 1] != (byte) 0xFF) {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>        break;<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      }<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      offset--;<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    }<a name="line.582"></a>
-<span class="sourceLineNo">583</span><a name="line.583"></a>
-<span class="sourceLineNo">584</span>    if (offset == 0) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      // We got an 0xFFFF... (only FFs) stopRow value which is<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      // the last possible prefix before the end of the table.<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      // So set it to stop at the 'end of the table'<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      return HConstants.EMPTY_END_ROW;<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>    // Copy the right length of the original<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    byte[] newStopRow = Arrays.copyOfRange(rowKeyPrefix, 0, offset);<a name="line.592"></a>
-<span class="sourceLineNo">593</span>    // And increment the last one<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    newStopRow[newStopRow.length - 1]++;<a name="line.594"></a>
-<span class="sourceLineNo">595</span>    return newStopRow;<a name="line.595"></a>
-<span class="sourceLineNo">596</span>  }<a name="line.596"></a>
-<span class="sourceLineNo">597</span><a name="line.597"></a>
-<span class="sourceLineNo">598</span>  /**<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * Get all available versions.<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * @return this<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   * @deprecated It is easy to misunderstand with column family's max versions, so use<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   *             {@link #readAllVersions()} instead.<a name="line.602"></a>
-<span class="sourceLineNo">603</span>   */<a name="line.603"></a>
-<span class="sourceLineNo">604</span>  @Deprecated<a name="line.604"></a>
-<span class="sourceLineNo">605</span>  public Scan setMaxVersions() {<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    return readAllVersions();<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>   * Get up to the specified number of versions of each column.<a name="line.610"></a>
-<span class="sourceLineNo">611</span>   * @param maxVersions maximum versions for each column<a name="line.611"></a>
-<span class="sourceLineNo">612</span>   * @return this<a name="line.612"></a>
-<span class="sourceLineNo">613</span>   * @deprecated It is easy to misunderstand with column family's max versions, so use<a name="line.613"></a>
-<span class="sourceLineNo">614</span>   *             {@link #readVersions(int)} instead.<a name="line.614"></a>
-<span class="sourceLineNo">615</span>   */<a name="line.615"></a>
-<span class="sourceLineNo">616</span>  @Deprecated<a name="line.616"></a>
-<span class="sourceLineNo">617</span>  public Scan setMaxVersions(int maxVersions) {<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    return readVersions(maxVersions);<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>  /**<a name="line.621"></a>
-<span class="sourceLineNo">622</span>   * Get all available versions.<a name="line.622"></a>
-<span class="sourceLineNo">623</span>   * @return this<a name="line.623"></a>
-<span class="sourceLineNo">624</span>   */<a name="line.624"></a>
-<span class="sourceLineNo">625</span>  public Scan readAllVersions() {<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    this.maxVersions = Integer.MAX_VALUE;<a name="line.626"></a>
-<span class="sourceLineNo">627</span>    return this;<a name="line.627"></a>
-<span class="sourceLineNo">628</span>  }<a name="line.628"></a>
-<span class="sourceLineNo">629</span><a name="line.629"></a>
-<span class="sourceLineNo">630</span>  /**<a name="line.630"></a>
-<span class="sourceLineNo">631</span>   * Get up to the specified number of versions of each column.<a name="line.631"></a>
-<span class="sourceLineNo">632</span>   * @param versions specified number of versions for each column<a name="line.632"></a>
-<span class="sourceLineNo">633</span>   * @return this<a name="line.633"></a>
-<span class="sourceLineNo">634</span>   */<a name="line.634"></a>
-<span class="sourceLineNo">635</span>  public Scan readVersions(int versions) {<a name="line.635"></a>
-<span class="sourceLineNo">636</span>    this.maxVersions = versions;<a name="line.636"></a>
-<span class="sourceLineNo">637</span>    return this;<a name="line.637"></a>
-<span class="sourceLineNo">638</span>  }<a name="line.638"></a>
-<span class="sourceLineNo">639</span><a name="line.639"></a>
-<span class="sourceLineNo">640</span>  /**<a name="line.640"></a>
-<span class="sourceLineNo">641</span>   * Set the maximum number of cells to return for each call to next(). Callers should be aware<a name="line.641"></a>
-<span class="sourceLineNo">642</span>   * that this is not equivalent to calling {@link #setAllowPartialResults(boolean)}.<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * If you don't allow partial results, the number of cells in each Result must equal to your<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   * batch setting unless it is the last Result for current row. So this method is helpful in paging<a name="line.644"></a>
-<span class="sourceLineNo">645</span>   * queries. If you just want to prevent OOM at client, use setAllowPartialResults(true) is better.<a name="line.645"></a>
-<span class="sourceLineNo">646</span>   * @param batch the maximum number of values<a name="line.646"></a>
-<span class="sourceLineNo">647</span>   * @see Result#mayHaveMoreCellsInRow()<a name="line.647"></a>
-<span class="sourceLineNo">648</span>   */<a name="line.648"></a>
-<span class="sourceLineNo">649</span>  public Scan setBatch(int batch) {<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    if (this.hasFilter() &amp;&amp; this.filter.hasFilterRow()) {<a name="line.650"></a>
-<span class="sourceLineNo">651</span>      throw new IncompatibleFilterException(<a name="line.651"></a>
-<span class="sourceLineNo">652</span>        "Cannot set batch on a scan using a filter" +<a name="line.652"></a>
-<span class="sourceLineNo">653</span>        " that returns true for filter.hasFilterRow");<a name="line.653"></a>
-<span class="sourceLineNo">654</span>    }<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    this.batch = batch;<a name="line.655"></a>
-<span class="sourceLineNo">656</span>    return this;<a name="line.656"></a>
-<span class="sourceLineNo">657</span>  }<a name="line.657"></a>
-<span class="sourceLineNo">658</span><a name="line.658"></a>
-<span class="sourceLineNo">659</span>  /**<a name="line.659"></a>
-<span class="sourceLineNo">660</span>   * Set the maximum number of values to return per row per Column Family<a name="line.660"></a>
-<span class="sourceLineNo">661</span>   * @param limit the maximum number of values returned / row / CF<a name="line.661"></a>
-<span class="sourceLineNo">662</span>   */<a name="line.662"></a>
-<span class="sourceLineNo">663</span>  public Scan setMaxResultsPerColumnFamily(int limit) {<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    this.storeLimit = limit;<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    return this;<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span>  /**<a name="line.668"></a>
-<span class="sourceLineNo">669</span>   * Set offset for the row per Column Family.<a name="line.669"></a>
-<span class="sourceLineNo">670</span>   * @param offset is the number of kvs that will be skipped.<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   */<a name="line.671"></a>
-<span class="sourceLineNo">672</span>  public Scan setRowOffsetPerColumnFamily(int offset) {<a name="line.672"></a>
-<span class="sourceLineNo">673</span>    this.storeOffset = offset;<a name="line.673"></a>
-<span class="sourceLineNo">674</span>    return this;<a name="line.674"></a>
-<span class="sourceLineNo">675</span>  }<a name="line.675"></a>
-<span class="sourceLineNo">676</span><a name="line.676"></a>
-<span class="sourceLineNo">677</span>  /**<a name="line.677"></a>
-<span class="sourceLineNo">678</span>   * Set the number of rows for caching that will be passed to scanners.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>   * If not set, the Configuration setting {@link HConstants#HBASE_CLIENT_SCANNER_CACHING} will<a name="line.679"></a>
-<span class="sourceLineNo">680</span>   * apply.<a name="line.680"></a>
-<span class="sourceLineNo">681</span>   * Higher caching values will enable faster scanners but will use more memory.<a name="line.681"></a>
-<span class="sourceLineNo">682</span>   * @param caching the number of rows for caching<a name="line.682"></a>
-<span class="sourceLineNo">683</span>   */<a name="line.683"></a>
-<span class="sourceLineNo">684</span>  public Scan setCaching(int caching) {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    this.caching = caching;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    return this;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>  }<a name="line.687"></a>
-<span class="sourceLineNo">688</span><a name="line.688"></a>
-<span class="sourceLineNo">689</span>  /**<a name="line.689"></a>
-<span class="sourceLineNo">690</span>   * @return the maximum result size in bytes. See {@link #setMaxResultSize(long)}<a name="line.690"></a>
-<span class="sourceLineNo">691</span>   */<a name="line.691"></a>
-<span class="sourceLineNo">692</span>  public long getMaxResultSize() {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    return maxResultSize;<a name="line.693"></a>
-<span class="sourceLineNo">694</span>  }<a name="line.694"></a>
-<span class="sourceLineNo">695</span><a name="line.695"></a>
-<span class="sourceLineNo">696</span>  /**<a name="line.696"></a>
-<span class="sourceLineNo">697</span>   * Set the maximum result size. The default is -1; this means that no specific<a name="line.697"></a>
-<span class="sourceLineNo">698</span>   * maximum result size will be set for this scan, and the global configured<a name="line.698"></a>
-<span class="sourceLineNo">699</span>   * value will be used instead. (Defaults to unlimited).<a name="line.699"></a>
-<span class="sourceLineNo">700</span>   *<a name="line.700"></a>
-<span class="sourceLineNo">701</span>   * @param maxResultSize The maximum result size in bytes.<a name="line.701"></a>
-<span class="sourceLineNo">702</span>   */<a name="line.702"></a>
-<span class="sourceLineNo">703</span>  public Scan setMaxResultSize(long maxResultSize) {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    this.maxResultSize = maxResultSize;<a name="line.704"></a>
-<span class="sourceLineNo">705</span>    return this;<a name="line.705"></a>
-<span class="sourceLineNo">706</span>  }<a name="line.706"></a>
-<span class="sourceLineNo">707</span><a name="line.707"></a>
-<span class="sourceLineNo">708</span>  @Override<a name="line.708"></a>
-<span class="sourceLineNo">709</span>  public Scan setFilter(Filter filter) {<a name="line.709"></a>
-<span class="sourceLineNo">710</span>    super.setFilter(filter);<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    return this;<a name="line.711"></a>
-<span class="sourceLineNo">712</span>  }<a name="line.712"></a>
-<span class="sourceLineNo">713</span><a name="line.713"></a>
-<span class="sourceLineNo">714</span>  /**<a name="line.714"></a>
-<span class="sourceLineNo">715</span>   * Setting the familyMap<a name="line.715"></a>
-<span class="sourceLineNo">716</span>   * @param familyMap map of family to qualifier<a name="line.716"></a>
-<span class="sourceLineNo">717</span>   * @return this<a name="line.717"></a>
-<span class="sourceLineNo">718</span>   */<a name="line.718"></a>
-<span class="sourceLineNo">719</span>  public Scan setFamilyMap(Map&lt;byte [], NavigableSet&lt;byte []&gt;&gt; familyMap) {<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    this.familyMap = familyMap;<a name="line.720"></a>
-<span class="sourceLineNo">721</span>    return this;<a name="line.721"></a>
-<span class="sourceLineNo">722</span>  }<a name="line.722"></a>
-<span class="sourceLineNo">723</span><a name="line.723"></a>
-<span class="sourceLineNo">724</span>  /**<a name="line.724"></a>
-<span class="sourceLineNo">725</span>   * Getting the familyMap<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   * @return familyMap<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   */<a name="line.727"></a>
-<span class="sourceLineNo">728</span>  public Map&lt;byte [], NavigableSet&lt;byte []&gt;&gt; getFamilyMap() {<a name="line.728"></a>
-<span class="sourceLineNo">729</span>    return this.familyMap;<a name="line.729"></a>
-<span class="sourceLineNo">730</span>  }<a name="line.730"></a>
-<span class="sourceLineNo">731</span><a name="line.731"></a>
-<span class="sourceLineNo">732</span>  /**<a name="line.732"></a>
-<span class="sourceLineNo">733</span>   * @return the number of families in familyMap<a name="line.733"></a>
-<span class="sourceLineNo">734</span>   */<a name="line.734"></a>
-<span class="sourceLineNo">735</span>  public int numFamilies() {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>    if(hasFamilies()) {<a name="line.736"></a>
-<span class="sourceLineNo">737</span>      return this.familyMap.size();<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    }<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    return 0;<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  }<a name="line.740"></a>
-<span class="sourceLineNo">741</span><a name="line.741"></a>
-<span class="sourceLineNo">742</span>  /**<a name="line.742"></a>
-<span class="sourceLineNo">743</span>   * @return true if familyMap is non empty, false otherwise<a name="line.743"></a>
-<span class="sourceLineNo">744</span>   */<a name="line.744"></a>
-<span class="sourceLineNo">745</span>  public boolean hasFamilies() {<a name="line.745"></a>
-<span class="sourceLineNo">746</span>    return !this.familyMap.isEmpty();<a name="line.746"></a>
-<span class="sourceLineNo">747</span>  }<a name="line.747"></a>
-<span class="sourceLineNo">748</span><a name="line.748"></a>
-<span class="sourceLineNo">749</span>  /**<a name="line.749"></a>
-<span class="sourceLineNo">750</span>   * @return the keys of the familyMap<a name="line.750"></a>
-<span class="sourceLineNo">751</span>   */<a name="line.751"></a>
-<span class="sourceLineNo">752</span>  public byte[][] getFamilies() {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    if(hasFamilies()) {<a name="line.753"></a>
-<span class="sourceLineNo">754</span>      return this.familyMap.keySet().toArray(new byte[0][0]);<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    }<a name="line.755"></a>
-<span class="sourceLineNo">756</span>    return null;<a name="line.756"></a>
-<span class="sourceLineNo">757</span>  }<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>  /**<a name="line.759"></a>
-<span class="sourceLineNo">760</span>   * @return the startrow<a name="line.760"></a>
-<span class="sourceLineNo">761</span>   */<a name="line.761"></a>
-<span class="sourceLineNo">762</span>  public byte [] getStartRow() {<a name="line.762"></a>
-<span class="sourceLineNo">763</span>    return this.startRow;<a name="line.763"></a>
-<span class="sourceLineNo">764</span>  }<a name="line.764"></a>
-<span class="sourceLineNo">765</span><a name="line.765"></a>
-<span class="sourceLineNo">766</span>  /**<a name="line.766"></a>
-<span class="sourceLineNo">767</span>   * @return if we should include start row when scan<a name="line.767"></a>
-<span class="sourceLineNo">768</span>   */<a name="line.768"></a>
-<span class="sourceLineNo">769</span>  public boolean includeStartRow() {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    return includeStartRow;<a name="line.770"></a>
-<span class="sourceLineNo">771</span>  }<a name="line.771"></a>
-<span class="sourceLineNo">772</span><a name="line.772"></a>
-<span class="sourceLineNo">773</span>  /**<a name="line.773"></a>
-<span class="sourceLineNo">774</span>   * @return the stoprow<a name="line.774"></a>
-<span class="sourceLineNo">775</span>   */<a name="line.775"></a>
-<span class="sourceLineNo">776</span>  public byte[] getStopRow() {<a name="line.776"></a>
-<span class="sourceLineNo">777</span>    return this.stopRow;<a name="line.777"></a>
-<span class="sourceLineNo">778</span>  }<a name="line.778"></a>
-<span class="sourceLineNo">779</span><a name="line.779"></a>
-<span class="sourceLineNo">780</span>  /**<a name="line.780"></a>
-<span class="sourceLineNo">781</span>   * @return if we should include stop row when scan<a name="line.781"></a>
-<span class="sourceLineNo">782</span>   */<a name="line.782"></a>
-<span class="sourceLineNo">783</span>  public boolean includeStopRow() {<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    return includeStopRow;<a name="line.784"></a>
-<span class="sourceLineNo">785</span>  }<a name="line.785"></a>
-<span class="sourceLineNo">786</span><a name="line.786"></a>
-<span class="sourceLineNo">787</span>  /**<a name="line.787"></a>
-<span class="sourceLineNo">788</span>   * @return the max number of versions to fetch<a name="line.788"></a>
-<span class="sourceLineNo">789</span>   */<a name="line.789"></a>
-<span class="sourceLineNo">790</span>  public int getMaxVersions() {<a name="line.790"></a>
-<span class="sourceLineNo">791</span>    return this.maxVersions;<a name="line.791"></a>
-<span class="sourceLineNo">792</span>  }<a name="line.792"></a>
-<span class="sourceLineNo">793</span><a name="line.793"></a>
-<span class="sourceLineNo">794</span>  /**<a name="line.794"></a>
-<span class="sourceLineNo">795</span>   * @return maximum number of values to return for a single call to next()<a name="line.795"></a>
-<span class="sourceLineNo">796</span>   */<a name="line.796"></a>
-<span class="sourceLineNo">797</span>  public int getBatch() {<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    return this.batch;<a name="line.798"></a>
-<span class="sourceLineNo">799</span>  }<a name="line.799"></a>
-<span class="sourceLineNo">800</span><a name="line.800"></a>
-<span class="sourceLineNo">801</span>  /**<a name="line.801"></a>
-<span class="sourceLineNo">802</span>   * @return maximum number of values to return per row per CF<a name="line.802"></a>
-<span class="sourceLineNo">803</span>   */<a name="line.803"></a>
-<span class="sourceLineNo">804</span>  public int getMaxResultsPerColumnFamily() {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>    return this.storeLimit;<a name="line.805"></a>
-<span class="sourceLineNo">806</span>  }<a name="line.806"></a>
-<span class="sourceLineNo">807</span><a name="line.807"></a>
-<span class="sourceLineNo">808</span>  /**<a name="line.808"></a>
-<span class="sourceLineNo">809</span>   * Method for retrieving the scan's offset per row per column<a name="line.809"></a>
-<span class="sourceLineNo">810</span>   * family (#kvs to be skipped)<a name="line.810"></a>
-<span class="sourceLineNo">811</span>   * @return row offset<a name="line.811"></a>
-<span class="sourceLineNo">812</span>   */<a name="line.812"></a>
-<span class="sourceLineNo">813</span>  public int getRowOffsetPerColumnFamily() {<a name="line.813"></a>
-<span class="sourceLineNo">814</span>    return this.storeOffset;<a name="line.814"></a>
-<span class="sourceLineNo">815</span>  }<a name="line.815"></a>
-<span class="sourceLineNo">816</span><a name="line.816"></a>
-<span class="sourceLineNo">817</span>  /**<a name="line.817"></a>
-<span class="sourceLineNo">818</span>   * @return caching the number of rows fetched when calling next on a scanner<a name="line.818"></a>
-<span class="sourceLineNo">819</span>   */<a name="line.819"></a>
-<span class="sourceLineNo">820</span>  public int getCaching() {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>    return this.caching;<a name="line.821"></a>
-<span class="sourceLineNo">822</span>  }<a name="line.822"></a>
-<span class="sourceLineNo">823</span><a name="line.823"></a>
-<span class="sourceLineNo">824</span>  /**<a name="line.824"></a>
-<span class="sourceLineNo">825</span>   * @return TimeRange<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   */<a name="line.826"></a>
-<span class="sourceLineNo">827</span>  public TimeRange getTimeRange() {<a name="line.827"></a>
-<span class="sourceLineNo">828</span>    return this.tr;<a name="line.828"></a>
-<span class="sourceLineNo">829</span>  }<a name="line.829"></a>
-<span class="sourceLineNo">830</span><a name="line.830"></a>
-<span class="sourceLineNo">831</span>  /**<a name="line.831"></a>
-<span class="sourceLineNo">832</span>   * @return RowFilter<a name="line.832"></a>
-<span class="sourceLineNo">833</span>   */<a name="line.833"></a>
-<span class="sourceLineNo">834</span>  @Override<a name="line.834"></a>
-<span class="sourceLineNo">835</span>  public Filter getFilter() {<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    return filter;<a name="line.836"></a>
-<span class="sourceLineNo">837</span>  }<a name="line.837"></a>
-<span class="sourceLineNo">838</span><a name="line.838"></a>
-<span class="sourceLineNo">839</span>  /**<a name="line.839"></a>
-<span class="sourceLineNo">840</span>   * @return true is a filter has been specified, false if not<a name="line.840"></a>
-<span class="sourceLineNo">841</span>   */<a name="line.841"></a>
-<span class="sourceLineNo">842</span>  public boolean hasFilter() {<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    return filter != null;<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  }<a name="line.844"></a>
-<span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  /**<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   * Set whether blocks should be cached for this Scan.<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * &lt;p&gt;<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * This is true by default.  When true, default settings of the table and<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * family are used (this will never override caching blocks if the block<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   * cache is disabled for that family or entirely).<a name="line.851"></a>
-<span class="sourceLineNo">852</span>   *<a name="line.852"></a>
-<span class="sourceLineNo">853</span>   * @param cacheBlocks if false, default settings are overridden and blocks<a name="line.853"></a>
-<span class="sourceLineNo">854</span>   * will not be cached<a name="line.854"></a>
-<span class="sourceLineNo">855</span>   */<a name="line.855"></a>
-<span class="sourceLineNo">856</span>  public Scan setCacheBlocks(boolean cacheBlocks) {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    this.cacheBlocks = cacheBlocks;<a name="line.857"></a>
-<span class="sourceLineNo">858</span>    return this;<a name="line.858"></a>
-<span class="sourceLineNo">859</span>  }<a name="line.859"></a>
-<span class="sourceLineNo">860</span><a name="line.860"></a>
-<span class="sourceLineNo">861</span>  /**<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   * Get whether blocks should be cached for this Scan.<a name="line.862"></a>
-<span class="sourceLineNo">863</span>   * @return true if default caching should be used, false if blocks should not<a name="line.863"></a>
-<span class="sourceLineNo">864</span>   * be cached<a name="line.864"></a>
-<span class="sourceLineNo">865</span>   */<a name="line.865"></a>
-<span class="sourceLineNo">866</span>  public boolean getCacheBlocks() {<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    return cacheBlocks;<a name="line.867"></a>
-<span class="sourceLineNo">868</span>  }<a name="line.868"></a>
-<span class="sourceLineNo">869</span><a name="line.869"></a>
-<span class="sourceLineNo">870</span>  /**<a name="line.870"></a>
-<span class="sourceLineNo">871</span>   * Set whether this scan is a reversed one<a name="line.871"></a>
-<span class="sourceLineNo">872</span>   * &lt;p&gt;<a name="line.872"></a>
-<span class="sourceLineNo">873</span>   * This is false by default which means forward(normal) scan.<a name="line.873"></a>
-<span class="sourceLineNo">874</span>   *<a name="line.874"></a>
-<span class="sourceLineNo">875</span>   * @param reversed if true, scan will be backward order<a name="line.875"></a>
-<span class="sourceLineNo">876</span>   * @return this<a name="line.876"></a>
-<span class="sourceLineNo">877</span>   */<a name="line.877"></a>
-<span class="sourceLineNo">878</span>  public Scan setReversed(boolean reversed) {<a name="line.878"></a>
-<span class="sourceLineNo">879</span>    this.reversed = reversed;<a name="line.879"></a>
-<span class="sourceLineNo">880</span>    return this;<a name="line.880"></a>
-<span class="sourceLineNo">881</span>  }<a name="line.881"></a>
-<span class="sourceLineNo">882</span><a name="line.882"></a>
-<span class="sourceLineNo">883</span>  /**<a name="line.883"></a>
-<span class="sourceLineNo">884</span>   * Get whether this scan is a reversed one.<a name="line.884"></a>
-<span class="sourceLineNo">885</span>   * @return true if backward scan, false if forward(default) scan<a name="line.885"></a>
-<span class="sourceLineNo">886</span>   */<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  public boolean isReversed() {<a name="line.887"></a>
-<span class="sourceLineNo">888</span>    return reversed;<a name="line.888"></a>
-<span class="sourceLineNo">889</span>  }<a name="line.889"></a>
-<span class="sourceLineNo">890</span><a name="line.890"></a>
-<span class="sourceLineNo">891</span>  /**<a name="line.891"></a>
-<span class="sourceLineNo">892</span>   * Setting whether the caller wants to see the partial results when server returns<a name="line.892"></a>
-<span class="sourceLineNo">893</span>   * less-than-expected cells. It is helpful while scanning a huge row to prevent OOM at client.<a name="line.893"></a>
-<span class="sourceLineNo">894</span>   * By default this value is false and the complete results will be assembled client side<a name="line.894"></a>
-<span class="sourceLineNo">895</span>   * before being delivered to the caller.<a name="line.895"></a>
-<span class="sourceLineNo">896</span>   * @param allowPartialResults<a name="line.896"></a>
-<span class="sourceLineNo">897</span>   * @return this<a name="line.897"></a>
-<span class="sourceLineNo">898</span>   * @see Result#mayHaveMoreCellsInRow()<a name="line.898"></a>
-<span class="sourceLineNo">899</span>   * @see #setBatch(int)<a name="line.899"></a>
-<span class="sourceLineNo">900</span>   */<a name="line.900"></a>
-<span class="sourceLineNo">901</span>  public Scan setAllowPartialResults(final boolean allowPartialResults) {<a name="line.901"></a>
-<span class="sourceLineNo">902</span>    this.allowPartialResults = allowPartialResults;<a name="line.902"></a>
-<span class="sourceLineNo">903</span>    return this;<a name="line.903"></a>
-<span class="sourceLineNo">904</span>  }<a name="line.904"></a>
-<span class="sourceLineNo">905</span><a name="line.905"></a>
-<span class="sourceLineNo">906</span>  /**<a name="line.906"></a>
-<span class="sourceLineNo">907</span>   * @return true when the constructor of this scan understands that the results they will see may<a name="line.907"></a>
-<span class="sourceLineNo">908</span>   *         only represent a partial portion of a row. The entire row would be retrieved by<a name="line.908"></a>
-<span class="sourceLineNo">909</span>   *         subsequent calls to {@link ResultScanner#next()}<a name="line.909"></a>
-<span class="sourceLineNo">910</span>   */<a name="line.910"></a>
-<span class="sourceLineNo">911</span>  public boolean getAllowPartialResults() {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>    return allowPartialResults;<a name="line.912"></a>
-<span class="sourceLineNo">913</span>  }<a name="line.913"></a>
-<span class="sourceLineNo">914</span><a name="line.914"></a>
-<span class="sourceLineNo">915</span>  @Override<a name="line.915"></a>
-<span class="sourceLineNo">916</span>  public Scan setLoadColumnFamiliesOnDemand(boolean value) {<a name="line.916"></a>
-<span class="sourceLineNo">917</span>    return (Scan) super.setLoadColumnFamiliesOnDemand(value);<a name="line.917"></a>
-<span class="sourceLineNo">918</span>  }<a name="line.918"></a>
-<span class="sourceLineNo">919</span><a name="line.919"></a>
-<span class="sourceLineNo">920</span>  /**<a name="line.920"></a>
-<span class="sourceLineNo">921</span>   * Compile the table and column family (i.e. schema) information<a name="line.921"></a>
-<span class="sourceLineNo">922</span>   * into a String. Useful for parsing and aggregation by debugging,<a name="line.922"></a>
-<span class="sourceLineNo">923</span>   * logging, and administration tools.<a name="line.923"></a>
-<span class="sourceLineNo">924</span>   * @return Map<a name="line.924"></a>
-<span class="sourceLineNo">925</span>   */<a name="line.925"></a>
-<span class="sourceLineNo">926</span>  @Override<a name="line.926"></a>
-<span class="sourceLineNo">927</span>  public Map&lt;String, Object&gt; getFingerprint() {<a name="line.927"></a>
-<span class="sourceLineNo">928</span>    Map&lt;String, Object&gt; map = new HashMap&lt;&gt;();<a name="line.928"></a>
-<span class="sourceLineNo">929</span>    List&lt;String&gt; families = new ArrayList&lt;&gt;();<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    if(this.familyMap.isEmpty()) {<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      map.put("families", "ALL");<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      return map;<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    } else {<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      map.put("families", families);<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    for (Map.Entry&lt;byte [], NavigableSet&lt;byte[]&gt;&gt; entry :<a name="line.936"></a>
-<span class="sourceLineNo">937</span>        this.familyMap.entrySet()) {<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      families.add(Bytes.toStringBinary(entry.getKey()));<a name="line.938"></a>
-<span class="sourceLineNo">939</span>    }<a name="line.939"></a>
-<span class="sourceLineNo">940</span>    return map;<a name="line.940"></a>
-<span class="sourceLineNo">941</span>  }<a name="line.941"></a>
-<span class="sourceLineNo">942</span><a name="line.942"></a>
-<span class="sourceLineNo">943</span>  /**<a name="line.943"></a>
-<span class="sourceLineNo">944</span>   * Compile the details beyond the scope of getFingerprint (row, columns,<a name="line.944"></a>
-<span class="sourceLineNo">945</span>   * timestamps, etc.) into a Map along with the fingerprinted information.<a name="line.945"></a>
-<span class="sourceLineNo">946</span>   * Useful for debugging, logging, and administration tools.<a name="line.946"></a>
-<span class="sourceLineNo">947</span>   * @param maxCols a limit on the number of columns output prior to truncation<a name="line.947"></a>
-<span class="sourceLineNo">948</span>   * @return Map<a name="line.948"></a>
-<span class="sourceLineNo">949</span>   */<a name="line.949"></a>
-<span class="sourceLineNo">950</span>  @Override<a name="line.950"></a>
-<span class="sourceLineNo">951</span>  public Map&lt;String, Object&gt; toMap(int maxCols) {<a name="line.951"></a>
-<span class="sourceLineNo">952</span>    // start with the fingerpring map and build on top of it<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    Map&lt;String, Object&gt; map = getFingerprint();<a name="line.953"></a>
-<span class="sourceLineNo">954</span>    // map from families to column list replaces fingerprint's list of families<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    Map&lt;String, List&lt;String&gt;&gt; familyColumns = new HashMap&lt;&gt;();<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    map.put("families", familyColumns);<a name="line.956"></a>
-<span class="sourceLineNo">957</span>    // add scalar information first<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    map.put("startRow", Bytes.toStringBinary(this.startRow));<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    map.put("stopRow", Bytes.toStringBinary(this.stopRow));<a name="line.959"></a>
-<span class="sourceLineNo">960</span>    map.put("maxVersions", this.maxVersions);<a name="line.960"></a>
-<span class="sourceLineNo">961</span>    map.put("batch", this.batch);<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    map.put("caching", this.caching);<a name="line.962"></a>
-<span class="sourceLineNo">963</span>    map.put("maxResultSize", this.maxResultSize);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    map.put("cacheBlocks", this.cacheBlocks);<a name="line.964"></a>
-<span class="sourceLineNo">965</span>    map.put("loadColumnFamiliesOnDemand", this.loadColumnFamiliesOnDemand);<a name="line.965"></a>
-<span class="sourceLineNo">966</span>    List&lt;Long&gt; timeRange = new ArrayList&lt;&gt;(2);<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    timeRange.add(this.tr.getMin());<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    timeRange.add(this.tr.getMax());<a name="line.968"></a>
-<span class="sourceLineNo">969</span>    map.put("timeRange", timeRange);<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    int colCount = 0;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    // iterate through affected families and list out up to maxCols columns<a name="line.971"></a>
-<span class="sourceLineNo">972</span>    for (Map.Entry&lt;byte [], NavigableSet&lt;byte[]&gt;&gt; entry :<a name="line.972"></a>
-<span class="sourceLineNo">973</span>      this.familyMap.entrySet()) {<a name="line.973"></a>
-<span class="sourceLineNo">974</span>      List&lt;String&gt; columns = new ArrayList&lt;&gt;();<a name="line.974"></a>
-<span class="sourceLineNo">975</span>      familyColumns.put(Bytes.toStringBinary(entry.getKey()), columns);<a name="line.975"></a>
-<span class="sourceLineNo">976</span>      if(entry.getValue() == null) {<a name="line.976"></a>
-<span class="sourceLineNo">977</span>        colCount++;<a name="line.977"></a>
-<span class="sourceLineNo">978</span>        --maxCols;<a name="line.978"></a>
-<span class="sourceLineNo">979</span>        columns.add("ALL");<a name="line.979"></a>
-<span class="sourceLineNo">980</span>      } else {<a name="line.980"></a>
-<span class="sourceLineNo">981</span>        colCount += entry.getValue().size();<a name="line.981"></a>
-<span class="sourceLineNo">982</span>        if (maxCols &lt;= 0) {<a name="line.982"></a>
-<span class="sourceLineNo">983</span>          continue;<a name="line.983"></a>
-<span class="sourceLineNo">984</span>        }<a name="line.984"></a>
-<span class="sourceLineNo">985</span>        for (byte [] column : entry.getValue()) {<a name="line.985"></a>
-<span class="sourceLineNo">986</span>          if (--maxCols &lt;= 0) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>            continue;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>          }<a name="line.988"></a>
-<span class="sourceLineNo">989</span>          columns.add(Bytes.toStringBinary(column));<a name="line.989"></a>
-<span class="sourceLineNo">990</span>        }<a name="line.990"></a>
-<span class="sourceLineNo">991</span>      }<a name="line.991"></a>
-<span class="sourceLineNo">992</span>    }<a name="line.992"></a>
-<span class="sourceLineNo">993</span>    map.put("totalColumns", colCount);<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    if (this.filter != null) {<a name="line.994"></a>
-<span class="sourceLineNo">995</span>      map.put("filter", this.filter.toString());<a name="line.995"></a>
-<span class="sourceLineNo">996</span>    }<a name="line.996"></a>
-<span class="sourceLineNo">997</span>    // add the id if set<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    if (getId() != null) {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>      map.put("id", getId());<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    }<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    return map;<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>  }<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>  /**<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>   * Enable/disable "raw" mode for this scan.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>   * If "raw" is enabled the scan will return all<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>   * delete marker and deleted rows that have not<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>   * been collected, yet.<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>   * This is mostly useful for Scan on column families<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>   * that have KEEP_DELETED_ROWS enabled.<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>   * It is an error to specify any column when "raw" is set.<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>   * @param raw True/False to enable/disable "raw" mode.<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>   */<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  public Scan setRaw(boolean raw) {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>    setAttribute(RAW_ATTR, Bytes.toBytes(raw));<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    return this;<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>  }<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span><a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>  /**<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>   * @return True if this Scan is in "raw" mode.<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>   */<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>  public boolean isRaw() {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>    byte[] attr = getAttribute(RAW_ATTR);<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    return attr == null ? false : Bytes.toBoolean(attr);<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>  }<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span><a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>  /**<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>   * Set whether this scan is a small scan<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>   * &lt;p&gt;<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>   * Small scan should use pread and big scan can use seek + read seek + read is fast but can cause<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>   * two problem (1) resource contention (2) cause too much network io [89-fb] Using pread for<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>   * non-compaction read request https://issues.apache.org/jira/browse/HBASE-7266 On the other hand,<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>   * if setting it true, we would do openScanner,next,closeScanner in one RPC call. It means the<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>   * better performance for small scan. [HBASE-9488]. Generally, if the scan range is within one<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>   * data block(64KB), it could be considered as a small scan.<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>   * @param small<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>   * @deprecated since 2.0.0. Use {@link #setLimit(int)} and {@link #setReadType(ReadType)} instead.<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>   *             And for the one rpc optimization, now we will also fetch data when openScanner, and<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>   *             if the number of rows reaches the limit then we will close the scanner<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>   *             automatically which means we will fall back to one rpc.<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>   * @see #setLimit(int)<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>   * @see #setReadType(ReadType)<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>   */<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>  @Deprecated<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>  public Scan setSmall(boolean small) {<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>    this.small = small;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>    this.readType = ReadType.PREAD;<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>    return this;<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>  }<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span><a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>  /**<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>   * Get whether this scan is a small scan<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>   * @return true if small scan<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>   * @deprecated since 2.0.0. See the comment of {@link #setSmall(boolean)}<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>   */<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>  @Deprecated<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>  public boolean isSmall() {<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    return small;<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>  }<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span><a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>  @Override<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>  public Scan setAttribute(String name, byte[] value) {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>    return (Scan) super.setAttribute(name, value);<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>  }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span><a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>  @Override<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>  public Scan setId(String id) {<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    return (Scan) super.setId(id);<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>  }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span><a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  @Override<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>  public Scan setAuthorizations(Authorizations authorizations) {<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    return (Scan) super.setAuthorizations(authorizations);<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>  }<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span><a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>  @Override<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>  public Scan setACL(Map&lt;String, Permission&gt; perms) {<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>    return (Scan) super.setACL(perms);<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>  }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span><a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>  @Override<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  public Scan setACL(String user, Permission perms) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>    return (Scan) super.setACL(user, perms);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>  }<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span><a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>  @Override<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>  public Scan setConsistency(Consistency consistency) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>    return (Scan) super.setConsistency(consistency);<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>  }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span><a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>  @Override<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>  public Scan setReplicaId(int Id) {<a name="line.1092"></

<TRUNCATED>

[05/16] hbase-site git commit: Published site at 4f2dfd387779968d3b76a22f1f4189d3278b202d.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/downloads.html
----------------------------------------------------------------------
diff --git a/downloads.html b/downloads.html
index 34efd15..74e56fe 100644
--- a/downloads.html
+++ b/downloads.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase Downloads</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -366,7 +366,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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/export_control.html
----------------------------------------------------------------------
diff --git a/export_control.html b/export_control.html
index 0191db6..5fa9e7f 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index da14698..121f6ef 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
index 40defbe..e555383 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
index 12aa6ea..6d39cda 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index 92ece62..ba72019 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/mail-lists.html
----------------------------------------------------------------------
diff --git a/mail-lists.html b/mail-lists.html
index 8d2afb0..7c4639f 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/metrics.html
----------------------------------------------------------------------
diff --git a/metrics.html b/metrics.html
index 478e946..56f4ac9 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/old_news.html
----------------------------------------------------------------------
diff --git a/old_news.html b/old_news.html
index 6e4cffa..8c67baf 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/plugin-management.html
----------------------------------------------------------------------
diff --git a/plugin-management.html b/plugin-management.html
index fbb2909..c8192f4 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
index f8c3a7a..6244afa 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/poweredbyhbase.html
----------------------------------------------------------------------
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index bfa07f7..4cb36cc 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/project-info.html
----------------------------------------------------------------------
diff --git a/project-info.html b/project-info.html
index 17469d0..3b6fab7 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/project-reports.html
----------------------------------------------------------------------
diff --git a/project-reports.html b/project-reports.html
index b84284f..6109e64 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/project-summary.html
----------------------------------------------------------------------
diff --git a/project-summary.html b/project-summary.html
index 42edeed..62028d4 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/pseudo-distributed.html
----------------------------------------------------------------------
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index b0b4f01..8648ff5 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/replication.html
----------------------------------------------------------------------
diff --git a/replication.html b/replication.html
index 7eb44bd..d027e61 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/resources.html
----------------------------------------------------------------------
diff --git a/resources.html b/resources.html
index d3ef3ea..360aef0 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index 1ba2564..39d7098 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/sponsors.html
----------------------------------------------------------------------
diff --git a/sponsors.html b/sponsors.html
index bd595ef..2d1dba0 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/supportingprojects.html
----------------------------------------------------------------------
diff --git a/supportingprojects.html b/supportingprojects.html
index 88b7d09..2aabd52 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index e77082e..b270e0e 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/testdevapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index 5f98900..6ba4eef 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -47314,6 +47314,8 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestDefaultEnvironmentEdge.html#TestDefaultEnvironmentEdge--">TestDefaultEnvironmentEdge()</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestDefaultEnvironmentEdge.html" title="class in org.apache.hadoop.hbase.util">TestDefaultEnvironmentEdge</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/TestPerformanceEvaluation.html#testDefaultInMemoryCompaction--">testDefaultInMemoryCompaction()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/TestPerformanceEvaluation.html" title="class in org.apache.hadoop.hbase">TestPerformanceEvaluation</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/master/balancer/TestDefaultLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">TestDefaultLoadBalancer</span></a> - Class in <a href="org/apache/hadoop/hbase/master/balancer/package-summary.html">org.apache.hadoop.hbase.master.balancer</a></dt>
 <dd>
 <div class="block">Test the load balancer that is created by default.</div>
@@ -53642,6 +53644,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#testMoveServersAndTables--">testMoveServersAndTables()</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html" title="class in org.apache.hadoop.hbase.rsgroup">TestRSGroupsWithACL</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServersFromDefaultGroup--">testMoveServersFromDefaultGroup()</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html" title="class in org.apache.hadoop.hbase.rsgroup">TestRSGroupsBase</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#testMoveTables--">testMoveTables()</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html" title="class in org.apache.hadoop.hbase.rsgroup">TestRSGroupsWithACL</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/TestMaster.html#testMoveThrowsPleaseHoldException--">testMoveThrowsPleaseHoldException()</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/TestMaster.html" title="class in org.apache.hadoop.hbase.master">TestMaster</a></dt>
@@ -58692,6 +58696,8 @@
 <dd>
 <div class="block">Test from client side for batch of scan</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestScan.html#testScanCopyConstructor--">testScanCopyConstructor()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestScan.html" title="class in org.apache.hadoop.hbase.client">TestScan</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/querymatcher/TestScanDeleteTracker.html" title="class in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">TestScanDeleteTracker</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/querymatcher/package-summary.html">org.apache.hadoop.hbase.regionserver.querymatcher</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/querymatcher/TestScanDeleteTracker.html#TestScanDeleteTracker--">TestScanDeleteTracker()</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.querymatcher.<a href="org/apache/hadoop/hbase/regionserver/querymatcher/TestScanDeleteTracker.html" title="class in org.apache.hadoop.hbase.regionserver.querymatcher">TestScanDeleteTracker</a></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/testdevapidocs/org/apache/hadoop/hbase/TestPerformanceEvaluation.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/TestPerformanceEvaluation.html b/testdevapidocs/org/apache/hadoop/hbase/TestPerformanceEvaluation.html
index ce6402c..934e6a0 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/TestPerformanceEvaluation.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/TestPerformanceEvaluation.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";
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.51">TestPerformanceEvaluation</a>
+<pre>public class <a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.52">TestPerformanceEvaluation</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>
@@ -171,39 +171,43 @@ 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>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestPerformanceEvaluation.html#testParseOptsNoThreads--">testParseOptsNoThreads</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestPerformanceEvaluation.html#testDefaultInMemoryCompaction--">testDefaultInMemoryCompaction</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestPerformanceEvaluation.html#testParseOptsWithThreads--">testParseOptsWithThreads</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestPerformanceEvaluation.html#testParseOptsNoThreads--">testParseOptsNoThreads</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestPerformanceEvaluation.html#testParseOptsWrongThreads--">testParseOptsWrongThreads</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestPerformanceEvaluation.html#testParseOptsWithThreads--">testParseOptsWithThreads</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i3" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestPerformanceEvaluation.html#testRandomReadCalculation--">testRandomReadCalculation</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestPerformanceEvaluation.html#testParseOptsWrongThreads--">testParseOptsWrongThreads</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestPerformanceEvaluation.html#testSerialization--">testSerialization</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestPerformanceEvaluation.html#testRandomReadCalculation--">testRandomReadCalculation</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i5" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestPerformanceEvaluation.html#testSetBufferSizeOption--">testSetBufferSizeOption</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestPerformanceEvaluation.html#testSerialization--">testSerialization</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i6" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestPerformanceEvaluation.html#testSizeCalculation--">testSizeCalculation</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestPerformanceEvaluation.html#testSetBufferSizeOption--">testSetBufferSizeOption</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i7" class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestPerformanceEvaluation.html#testSizeCalculation--">testSizeCalculation</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestPerformanceEvaluation.html#testWriteInputFile--">testWriteInputFile</a></span>()</code>
 <div class="block">Exercise the mr spec writing.</div>
 </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/TestPerformanceEvaluation.html#testZipfian--">testZipfian</a></span>()</code>&nbsp;</td>
 </tr>
@@ -235,7 +239,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/TestPerformanceEvaluation.html#line.54">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/TestPerformanceEvaluation.html#line.55">CLASS_RULE</a></pre>
 </li>
 </ul>
 <a name="HTU">
@@ -244,7 +248,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HTU</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/TestPerformanceEvaluation.html#line.57">HTU</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/TestPerformanceEvaluation.html#line.58">HTU</a></pre>
 </li>
 </ul>
 </li>
@@ -261,7 +265,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestPerformanceEvaluation</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.51">TestPerformanceEvaluation</a>()</pre>
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.52">TestPerformanceEvaluation</a>()</pre>
 </li>
 </ul>
 </li>
@@ -272,13 +276,22 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Method Detail</h3>
+<a name="testDefaultInMemoryCompaction--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testDefaultInMemoryCompaction</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.61">testDefaultInMemoryCompaction</a>()</pre>
+</li>
+</ul>
 <a name="testSerialization--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>testSerialization</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.60">testSerialization</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.74">testSerialization</a>()
                        throws com.fasterxml.jackson.core.JsonGenerationException,
                               com.fasterxml.jackson.databind.JsonMappingException,
                               <a href="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>
@@ -296,7 +309,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testWriteInputFile</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.77">testWriteInputFile</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.91">testWriteInputFile</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">Exercise the mr spec writing.  Simple assertions to make sure it is basically working.</div>
 <dl>
@@ -311,7 +324,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testSizeCalculation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.105">testSizeCalculation</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.119">testSizeCalculation</a>()</pre>
 </li>
 </ul>
 <a name="testRandomReadCalculation--">
@@ -320,7 +333,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testRandomReadCalculation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.127">testRandomReadCalculation</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.141">testRandomReadCalculation</a>()</pre>
 </li>
 </ul>
 <a name="testZipfian--">
@@ -329,7 +342,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testZipfian</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.158">testZipfian</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.172">testZipfian</a>()
                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang">NoSuchMethodException</a>,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang">SecurityException</a>,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InstantiationException.html?is-external=true" title="class or interface in java.lang">InstantiationException</a>,
@@ -353,7 +366,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetBufferSizeOption</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.182">testSetBufferSizeOption</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.196">testSetBufferSizeOption</a>()</pre>
 </li>
 </ul>
 <a name="testParseOptsWithThreads--">
@@ -362,7 +375,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testParseOptsWithThreads</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.192">testParseOptsWithThreads</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.206">testParseOptsWithThreads</a>()</pre>
 </li>
 </ul>
 <a name="testParseOptsWrongThreads--">
@@ -371,7 +384,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testParseOptsWrongThreads</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.206">testParseOptsWrongThreads</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.220">testParseOptsWrongThreads</a>()</pre>
 </li>
 </ul>
 <a name="testParseOptsNoThreads--">
@@ -380,7 +393,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>testParseOptsNoThreads</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.221">testParseOptsNoThreads</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#line.235">testParseOptsNoThreads</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index 3168ee3..e159b3f 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -145,8 +145,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.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/TestIncrementalBackupMergeWithFailures.FailurePhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestIncrementalBackupMergeWithFailures.FailurePhase</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.Failure.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestBackupDeleteWithFailures.Failure</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/TestIncrementalBackupMergeWithFailures.FailurePhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestIncrementalBackupMergeWithFailures.FailurePhase</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/testdevapidocs/org/apache/hadoop/hbase/client/TestScan.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestScan.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestScan.html
index e0b12e5..121bcb4 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestScan.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestScan.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
 var tabs = {65535:["t0","All 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/client/TestScan.html#line.44">TestScan</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestScan.html#line.47">TestScan</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>
@@ -183,10 +183,14 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestScan.html#testSetAuthorizations--">testSetAuthorizations</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestScan.html#testScanCopyConstructor--">testScanCopyConstructor</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i5" class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestScan.html#testSetAuthorizations--">testSetAuthorizations</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestScan.html#testSetStartRowAndSetStopRow--">testSetStartRowAndSetStopRow</a></span>()</code>&nbsp;</td>
 </tr>
 </table>
@@ -217,7 +221,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestScan.html#line.47">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/TestScan.html#line.50">CLASS_RULE</a></pre>
 </li>
 </ul>
 </li>
@@ -234,7 +238,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestScan</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestScan.html#line.44">TestScan</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestScan.html#line.47">TestScan</a>()</pre>
 </li>
 </ul>
 </li>
@@ -251,7 +255,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testAttributesSerialization</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestScan.html#line.51">testAttributesSerialization</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestScan.html#line.54">testAttributesSerialization</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>
@@ -265,11 +269,11 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testGetToScan</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestScan.html#line.69">testGetToScan</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>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestScan.html#line.72">testGetToScan</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/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 </dl>
 </li>
 </ul>
@@ -279,7 +283,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testScanAttributes</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestScan.html#line.103">testScanAttributes</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestScan.html#line.115">testScanAttributes</a>()</pre>
 </li>
 </ul>
 <a name="testNullQualifier--">
@@ -288,7 +292,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testNullQualifier</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestScan.html#line.150">testNullQualifier</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestScan.html#line.162">testNullQualifier</a>()</pre>
 </li>
 </ul>
 <a name="testSetAuthorizations--">
@@ -297,16 +301,30 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetAuthorizations</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestScan.html#line.159">testSetAuthorizations</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestScan.html#line.171">testSetAuthorizations</a>()</pre>
 </li>
 </ul>
 <a name="testSetStartRowAndSetStopRow--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>testSetStartRowAndSetStopRow</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestScan.html#line.180">testSetStartRowAndSetStopRow</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestScan.html#line.192">testSetStartRowAndSetStopRow</a>()</pre>
+</li>
+</ul>
+<a name="testScanCopyConstructor--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>testScanCopyConstructor</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestScan.html#line.218">testScanCopyConstructor</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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
index ec56445..4837d80 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -158,8 +158,8 @@
 <ul>
 <li type="circle">java.lang.<a href="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/TestCacheOnWrite.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TestCacheOnWrite.CacheOnWriteType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TagUsage.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TagUsage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TestCacheOnWrite.CacheOnWriteType</span></a></li>
 </ul>
 </li>
 </ul>

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

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/testdevapidocs/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html b/testdevapidocs/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html
index 2cd4e08..4cdbab6 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html
@@ -197,7 +197,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.rsgroup.<a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html" title="class in org.apache.hadoop.hbase.rsgroup">TestRSGroupsBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#addGroup-java.lang.String-int-">addGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteGroups--">deleteGroups</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteNamespaceIfNecessary--">deleteNamespaceIfNecessary</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteTableIfNecessary--">deleteTableIfNecessary</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getNumServers--">getNumServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getTableRegionMap--">getTableRegionMap</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getTableServerRegionMap--">getTableServerRegionMap</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#removeGroup-java.lang.String-">remo
 veGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testBogusArgs--">testBogusArgs</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testClearDeadServers--">testClearDeadServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateAndDrop--">testCreateAndDrop</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateMultiRegion--">testCreateMultiRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateWhenRsgroupNoOnlineServers--">testCreateWhenRsgroupNoOnlineServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testDisabledTableMove--">testDisabledTableMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testFailRemoveGroup--">t
 estFailRemoveGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testGroupBalance--">testGroupBalance</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testKillRS--">testKillRS</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServers--">testMoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServersAndTables--">testMoveServersAndTables</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMultiTableMove--">testMultiTableMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testNonExistentTableMove--">testNonExistentTableMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRegionMove--">testRegionMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRemoveServers--">testRemoveServer
 s</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testSimpleRegionServerMove--">testSimpleRegionServerMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testTableMoveTruncateAndDrop--">testTableMoveTruncateAndDrop</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testValidGroupNames--">testValidGroupNames</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#addGroup-java.lang.String-int-">addGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteGroups--">deleteGroups</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteNamespaceIfNecessary--">deleteNamespaceIfNecessary</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteTableIfNecessary--">deleteTableIfNecessary</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getNumServers--">getNumServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getTableRegionMap--">getTableRegionMap</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getTableServerRegionMap--">getTableServerRegionMap</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#removeGroup-java.lang.String-">remo
 veGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testBogusArgs--">testBogusArgs</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testClearDeadServers--">testClearDeadServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateAndDrop--">testCreateAndDrop</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateMultiRegion--">testCreateMultiRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateWhenRsgroupNoOnlineServers--">testCreateWhenRsgroupNoOnlineServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testDisabledTableMove--">testDisabledTableMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testFailRemoveGroup--">t
 estFailRemoveGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testGroupBalance--">testGroupBalance</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testKillRS--">testKillRS</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServers--">testMoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServersAndTables--">testMoveServersAndTables</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServersFromDefaultGroup--">testMoveServersFromDefaultGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMultiTableMove--">testMultiTableMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testNonExistentTableMove--">testNonExistentTableMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#tes
 tRegionMove--">testRegionMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRemoveServers--">testRemoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testSimpleRegionServerMove--">testSimpleRegionServerMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testTableMoveTruncateAndDrop--">testTableMoveTruncateAndDrop</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testValidGroupNames--">testValidGroupNames</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/63aade82/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroups.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroups.html b/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroups.html
index 5864175..0139757 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroups.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroups.html
@@ -239,7 +239,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.rsgroup.<a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html" title="class in org.apache.hadoop.hbase.rsgroup">TestRSGroupsBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#addGroup-java.lang.String-int-">addGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteGroups--">deleteGroups</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteNamespaceIfNecessary--">deleteNamespaceIfNecessary</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteTableIfNecessary--">deleteTableIfNecessary</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getNumServers--">getNumServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getTableRegionMap--">getTableRegionMap</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getTableServerRegionMap--">getTableServerRegionMap</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#removeGroup-java.lang.String-">remo
 veGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testBogusArgs--">testBogusArgs</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testClearDeadServers--">testClearDeadServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateAndDrop--">testCreateAndDrop</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateMultiRegion--">testCreateMultiRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateWhenRsgroupNoOnlineServers--">testCreateWhenRsgroupNoOnlineServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testDisabledTableMove--">testDisabledTableMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testFailRemoveGroup--">t
 estFailRemoveGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testGroupBalance--">testGroupBalance</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testKillRS--">testKillRS</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServers--">testMoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServersAndTables--">testMoveServersAndTables</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMultiTableMove--">testMultiTableMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testNonExistentTableMove--">testNonExistentTableMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRegionMove--">testRegionMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRemoveServers--">testRemoveServer
 s</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testSimpleRegionServerMove--">testSimpleRegionServerMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testTableMoveTruncateAndDrop--">testTableMoveTruncateAndDrop</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testValidGroupNames--">testValidGroupNames</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#addGroup-java.lang.String-int-">addGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteGroups--">deleteGroups</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteNamespaceIfNecessary--">deleteNamespaceIfNecessary</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteTableIfNecessary--">deleteTableIfNecessary</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getNumServers--">getNumServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getTableRegionMap--">getTableRegionMap</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getTableServerRegionMap--">getTableServerRegionMap</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#removeGroup-java.lang.String-">remo
 veGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testBogusArgs--">testBogusArgs</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testClearDeadServers--">testClearDeadServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateAndDrop--">testCreateAndDrop</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateMultiRegion--">testCreateMultiRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateWhenRsgroupNoOnlineServers--">testCreateWhenRsgroupNoOnlineServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testDisabledTableMove--">testDisabledTableMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testFailRemoveGroup--">t
 estFailRemoveGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testGroupBalance--">testGroupBalance</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testKillRS--">testKillRS</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServers--">testMoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServersAndTables--">testMoveServersAndTables</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServersFromDefaultGroup--">testMoveServersFromDefaultGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMultiTableMove--">testMultiTableMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testNonExistentTableMove--">testNonExistentTableMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#tes
 tRegionMove--">testRegionMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRemoveServers--">testRemoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testSimpleRegionServerMove--">testSimpleRegionServerMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testTableMoveTruncateAndDrop--">testTableMoveTruncateAndDrop</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testValidGroupNames--">testValidGroupNames</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


[07/16] hbase-site git commit: Published site at 4f2dfd387779968d3b76a22f1f4189d3278b202d.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.TableRecordWriter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.TableRecordWriter.html b/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.TableRecordWriter.html
index fbdfc65..68ce820 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.TableRecordWriter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.TableRecordWriter.html
@@ -182,9 +182,9 @@
 <span class="sourceLineNo">174</span>  @Override<a name="line.174"></a>
 <span class="sourceLineNo">175</span>  public void checkOutputSpecs(JobContext context) throws IOException,<a name="line.175"></a>
 <span class="sourceLineNo">176</span>      InterruptedException {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    Configuration hConf = context.getConfiguration();<a name="line.177"></a>
+<span class="sourceLineNo">177</span>    Configuration hConf = getConf();<a name="line.177"></a>
 <span class="sourceLineNo">178</span>    if (hConf == null) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      hConf = this.conf;<a name="line.179"></a>
+<span class="sourceLineNo">179</span>      hConf = context.getConfiguration();<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>    try (Admin admin = ConnectionFactory.createConnection(hConf).getAdmin()) {<a name="line.182"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.html b/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.html
index fbdfc65..68ce820 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.html
@@ -182,9 +182,9 @@
 <span class="sourceLineNo">174</span>  @Override<a name="line.174"></a>
 <span class="sourceLineNo">175</span>  public void checkOutputSpecs(JobContext context) throws IOException,<a name="line.175"></a>
 <span class="sourceLineNo">176</span>      InterruptedException {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    Configuration hConf = context.getConfiguration();<a name="line.177"></a>
+<span class="sourceLineNo">177</span>    Configuration hConf = getConf();<a name="line.177"></a>
 <span class="sourceLineNo">178</span>    if (hConf == null) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      hConf = this.conf;<a name="line.179"></a>
+<span class="sourceLineNo">179</span>      hConf = context.getConfiguration();<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>    try (Admin admin = ConnectionFactory.createConnection(hConf).getAdmin()) {<a name="line.182"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/devapidocs/src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html
index 8861636..383a5f7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.SwitchStateTracker.html
@@ -44,121 +44,120 @@
 <span class="sourceLineNo">036</span><a name="line.36"></a>
 <span class="sourceLineNo">037</span>/**<a name="line.37"></a>
 <span class="sourceLineNo">038</span> * Tracks the switch of split and merge states in ZK<a name="line.38"></a>
-<span class="sourceLineNo">039</span> *<a name="line.39"></a>
-<span class="sourceLineNo">040</span> */<a name="line.40"></a>
-<span class="sourceLineNo">041</span>@InterfaceAudience.Private<a name="line.41"></a>
-<span class="sourceLineNo">042</span>public class SplitOrMergeTracker {<a name="line.42"></a>
-<span class="sourceLineNo">043</span><a name="line.43"></a>
-<span class="sourceLineNo">044</span>  private String splitZnode;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  private String mergeZnode;<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span>  private SwitchStateTracker splitStateTracker;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>  private SwitchStateTracker mergeStateTracker;<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>  public SplitOrMergeTracker(ZKWatcher watcher, Configuration conf,<a name="line.50"></a>
-<span class="sourceLineNo">051</span>                             Abortable abortable) {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    try {<a name="line.52"></a>
-<span class="sourceLineNo">053</span>      if (ZKUtil.checkExists(watcher, watcher.znodePaths.switchZNode) &lt; 0) {<a name="line.53"></a>
-<span class="sourceLineNo">054</span>        ZKUtil.createAndFailSilent(watcher, watcher.znodePaths.switchZNode);<a name="line.54"></a>
-<span class="sourceLineNo">055</span>      }<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    } catch (KeeperException e) {<a name="line.56"></a>
-<span class="sourceLineNo">057</span>      throw new RuntimeException(e);<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    }<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    splitZnode = ZNodePaths.joinZNode(watcher.znodePaths.switchZNode,<a name="line.59"></a>
-<span class="sourceLineNo">060</span>      conf.get("zookeeper.znode.switch.split", "split"));<a name="line.60"></a>
-<span class="sourceLineNo">061</span>    mergeZnode = ZNodePaths.joinZNode(watcher.znodePaths.switchZNode,<a name="line.61"></a>
-<span class="sourceLineNo">062</span>      conf.get("zookeeper.znode.switch.merge", "merge"));<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    splitStateTracker = new SwitchStateTracker(watcher, splitZnode, abortable);<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    mergeStateTracker = new SwitchStateTracker(watcher, mergeZnode, abortable);<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>  public void start() {<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    splitStateTracker.start();<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    mergeStateTracker.start();<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>  public boolean isSplitOrMergeEnabled(MasterSwitchType switchType) {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    switch (switchType) {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      case SPLIT:<a name="line.74"></a>
-<span class="sourceLineNo">075</span>        return splitStateTracker.isSwitchEnabled();<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      case MERGE:<a name="line.76"></a>
-<span class="sourceLineNo">077</span>        return mergeStateTracker.isSwitchEnabled();<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      default:<a name="line.78"></a>
-<span class="sourceLineNo">079</span>        break;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    }<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    return false;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  }<a name="line.82"></a>
-<span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span>  public void setSplitOrMergeEnabled(boolean enabled, MasterSwitchType switchType)<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    throws KeeperException {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    switch (switchType) {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>      case SPLIT:<a name="line.87"></a>
-<span class="sourceLineNo">088</span>        splitStateTracker.setSwitchEnabled(enabled);<a name="line.88"></a>
-<span class="sourceLineNo">089</span>        break;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>      case MERGE:<a name="line.90"></a>
-<span class="sourceLineNo">091</span>        mergeStateTracker.setSwitchEnabled(enabled);<a name="line.91"></a>
-<span class="sourceLineNo">092</span>        break;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      default:<a name="line.93"></a>
-<span class="sourceLineNo">094</span>        break;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    }<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  }<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>  private static class SwitchStateTracker extends ZKNodeTracker {<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>    public SwitchStateTracker(ZKWatcher watcher, String node, Abortable abortable) {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>      super(watcher, node, abortable);<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>    /**<a name="line.104"></a>
-<span class="sourceLineNo">105</span>     * Return true if the switch is on, false otherwise<a name="line.105"></a>
-<span class="sourceLineNo">106</span>     */<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    public boolean isSwitchEnabled() {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      byte [] upData = super.getData(false);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      try {<a name="line.109"></a>
-<span class="sourceLineNo">110</span>        // if data in ZK is null, use default of on.<a name="line.110"></a>
-<span class="sourceLineNo">111</span>        return upData == null || parseFrom(upData).getEnabled();<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      } catch (DeserializationException dex) {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>        LOG.error("ZK state for LoadBalancer could not be parsed " + Bytes.toStringBinary(upData));<a name="line.113"></a>
-<span class="sourceLineNo">114</span>        // return false to be safe.<a name="line.114"></a>
-<span class="sourceLineNo">115</span>        return false;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    }<a name="line.117"></a>
-<span class="sourceLineNo">118</span><a name="line.118"></a>
-<span class="sourceLineNo">119</span>    /**<a name="line.119"></a>
-<span class="sourceLineNo">120</span>     * Set the switch on/off<a name="line.120"></a>
-<span class="sourceLineNo">121</span>     * @param enabled switch enabled or not?<a name="line.121"></a>
-<span class="sourceLineNo">122</span>     * @throws KeeperException keepException will be thrown out<a name="line.122"></a>
-<span class="sourceLineNo">123</span>     */<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public void setSwitchEnabled(boolean enabled) throws KeeperException {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      byte [] upData = toByteArray(enabled);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      try {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>        ZKUtil.setData(watcher, node, upData);<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      } catch(KeeperException.NoNodeException nne) {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>        ZKUtil.createAndWatch(watcher, node, upData);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>      }<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      super.nodeDataChanged(node);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    }<a name="line.132"></a>
-<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>    private byte [] toByteArray(boolean enabled) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      SwitchState.Builder builder = SwitchState.newBuilder();<a name="line.135"></a>
-<span class="sourceLineNo">136</span>      builder.setEnabled(enabled);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      return ProtobufUtil.prependPBMagic(builder.build().toByteArray());<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>    private SwitchState parseFrom(byte [] bytes)<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      throws DeserializationException {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>      ProtobufUtil.expectPBMagicPrefix(bytes);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      SwitchState.Builder builder = SwitchState.newBuilder();<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      try {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>        int magicLen = ProtobufUtil.lengthOfPBMagic();<a name="line.145"></a>
-<span class="sourceLineNo">146</span>        ProtobufUtil.mergeFrom(builder, bytes, magicLen, bytes.length - magicLen);<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      } catch (IOException e) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        throw new DeserializationException(e);<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      }<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      return builder.build();<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>}<a name="line.153"></a>
+<span class="sourceLineNo">039</span> */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>@InterfaceAudience.Private<a name="line.40"></a>
+<span class="sourceLineNo">041</span>public class SplitOrMergeTracker {<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>  private String splitZnode;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  private String mergeZnode;<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>  private SwitchStateTracker splitStateTracker;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  private SwitchStateTracker mergeStateTracker;<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>  public SplitOrMergeTracker(ZKWatcher watcher, Configuration conf,<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                             Abortable abortable) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    try {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      if (ZKUtil.checkExists(watcher, watcher.znodePaths.switchZNode) &lt; 0) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        ZKUtil.createAndFailSilent(watcher, watcher.znodePaths.switchZNode);<a name="line.53"></a>
+<span class="sourceLineNo">054</span>      }<a name="line.54"></a>
+<span class="sourceLineNo">055</span>    } catch (KeeperException e) {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>      throw new RuntimeException(e);<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    }<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    splitZnode = ZNodePaths.joinZNode(watcher.znodePaths.switchZNode,<a name="line.58"></a>
+<span class="sourceLineNo">059</span>      conf.get("zookeeper.znode.switch.split", "split"));<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    mergeZnode = ZNodePaths.joinZNode(watcher.znodePaths.switchZNode,<a name="line.60"></a>
+<span class="sourceLineNo">061</span>      conf.get("zookeeper.znode.switch.merge", "merge"));<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    splitStateTracker = new SwitchStateTracker(watcher, splitZnode, abortable);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    mergeStateTracker = new SwitchStateTracker(watcher, mergeZnode, abortable);<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">066</span>  public void start() {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    splitStateTracker.start();<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    mergeStateTracker.start();<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  public boolean isSplitOrMergeEnabled(MasterSwitchType switchType) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    switch (switchType) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      case SPLIT:<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        return splitStateTracker.isSwitchEnabled();<a name="line.74"></a>
+<span class="sourceLineNo">075</span>      case MERGE:<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        return mergeStateTracker.isSwitchEnabled();<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      default:<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        break;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    }<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    return false;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>  public void setSplitOrMergeEnabled(boolean enabled, MasterSwitchType switchType)<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    throws KeeperException {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    switch (switchType) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>      case SPLIT:<a name="line.86"></a>
+<span class="sourceLineNo">087</span>        splitStateTracker.setSwitchEnabled(enabled);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>        break;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>      case MERGE:<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        mergeStateTracker.setSwitchEnabled(enabled);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>        break;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      default:<a name="line.92"></a>
+<span class="sourceLineNo">093</span>        break;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    }<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  }<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>  private static class SwitchStateTracker extends ZKNodeTracker {<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>    public SwitchStateTracker(ZKWatcher watcher, String node, Abortable abortable) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      super(watcher, node, abortable);<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>     * Return true if the switch is on, false otherwise<a name="line.104"></a>
+<span class="sourceLineNo">105</span>     */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    public boolean isSwitchEnabled() {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      byte [] upData = super.getData(false);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>      try {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>        // if data in ZK is null, use default of on.<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        return upData == null || parseFrom(upData).getEnabled();<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      } catch (DeserializationException dex) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        LOG.error("ZK state for LoadBalancer could not be parsed " + Bytes.toStringBinary(upData));<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        // return false to be safe.<a name="line.113"></a>
+<span class="sourceLineNo">114</span>        return false;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      }<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    }<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span>    /**<a name="line.118"></a>
+<span class="sourceLineNo">119</span>     * Set the switch on/off<a name="line.119"></a>
+<span class="sourceLineNo">120</span>     * @param enabled switch enabled or not?<a name="line.120"></a>
+<span class="sourceLineNo">121</span>     * @throws KeeperException keepException will be thrown out<a name="line.121"></a>
+<span class="sourceLineNo">122</span>     */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    public void setSwitchEnabled(boolean enabled) throws KeeperException {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      byte [] upData = toByteArray(enabled);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      try {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        ZKUtil.setData(watcher, node, upData);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      } catch(KeeperException.NoNodeException nne) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        ZKUtil.createAndWatch(watcher, node, upData);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>      }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      super.nodeDataChanged(node);<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>    private byte [] toByteArray(boolean enabled) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      SwitchState.Builder builder = SwitchState.newBuilder();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      builder.setEnabled(enabled);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      return ProtobufUtil.prependPBMagic(builder.build().toByteArray());<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>    private SwitchState parseFrom(byte [] bytes)<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      throws DeserializationException {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      ProtobufUtil.expectPBMagicPrefix(bytes);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      SwitchState.Builder builder = SwitchState.newBuilder();<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      try {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        int magicLen = ProtobufUtil.lengthOfPBMagic();<a name="line.144"></a>
+<span class="sourceLineNo">145</span>        ProtobufUtil.mergeFrom(builder, bytes, magicLen, bytes.length - magicLen);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      } catch (IOException e) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        throw new DeserializationException(e);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      }<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      return builder.build();<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>}<a name="line.152"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/devapidocs/src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html
index 8861636..383a5f7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/SplitOrMergeTracker.html
@@ -44,121 +44,120 @@
 <span class="sourceLineNo">036</span><a name="line.36"></a>
 <span class="sourceLineNo">037</span>/**<a name="line.37"></a>
 <span class="sourceLineNo">038</span> * Tracks the switch of split and merge states in ZK<a name="line.38"></a>
-<span class="sourceLineNo">039</span> *<a name="line.39"></a>
-<span class="sourceLineNo">040</span> */<a name="line.40"></a>
-<span class="sourceLineNo">041</span>@InterfaceAudience.Private<a name="line.41"></a>
-<span class="sourceLineNo">042</span>public class SplitOrMergeTracker {<a name="line.42"></a>
-<span class="sourceLineNo">043</span><a name="line.43"></a>
-<span class="sourceLineNo">044</span>  private String splitZnode;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  private String mergeZnode;<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span>  private SwitchStateTracker splitStateTracker;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>  private SwitchStateTracker mergeStateTracker;<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>  public SplitOrMergeTracker(ZKWatcher watcher, Configuration conf,<a name="line.50"></a>
-<span class="sourceLineNo">051</span>                             Abortable abortable) {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    try {<a name="line.52"></a>
-<span class="sourceLineNo">053</span>      if (ZKUtil.checkExists(watcher, watcher.znodePaths.switchZNode) &lt; 0) {<a name="line.53"></a>
-<span class="sourceLineNo">054</span>        ZKUtil.createAndFailSilent(watcher, watcher.znodePaths.switchZNode);<a name="line.54"></a>
-<span class="sourceLineNo">055</span>      }<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    } catch (KeeperException e) {<a name="line.56"></a>
-<span class="sourceLineNo">057</span>      throw new RuntimeException(e);<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    }<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    splitZnode = ZNodePaths.joinZNode(watcher.znodePaths.switchZNode,<a name="line.59"></a>
-<span class="sourceLineNo">060</span>      conf.get("zookeeper.znode.switch.split", "split"));<a name="line.60"></a>
-<span class="sourceLineNo">061</span>    mergeZnode = ZNodePaths.joinZNode(watcher.znodePaths.switchZNode,<a name="line.61"></a>
-<span class="sourceLineNo">062</span>      conf.get("zookeeper.znode.switch.merge", "merge"));<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    splitStateTracker = new SwitchStateTracker(watcher, splitZnode, abortable);<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    mergeStateTracker = new SwitchStateTracker(watcher, mergeZnode, abortable);<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>  public void start() {<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    splitStateTracker.start();<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    mergeStateTracker.start();<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>  public boolean isSplitOrMergeEnabled(MasterSwitchType switchType) {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    switch (switchType) {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      case SPLIT:<a name="line.74"></a>
-<span class="sourceLineNo">075</span>        return splitStateTracker.isSwitchEnabled();<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      case MERGE:<a name="line.76"></a>
-<span class="sourceLineNo">077</span>        return mergeStateTracker.isSwitchEnabled();<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      default:<a name="line.78"></a>
-<span class="sourceLineNo">079</span>        break;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    }<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    return false;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  }<a name="line.82"></a>
-<span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span>  public void setSplitOrMergeEnabled(boolean enabled, MasterSwitchType switchType)<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    throws KeeperException {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    switch (switchType) {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>      case SPLIT:<a name="line.87"></a>
-<span class="sourceLineNo">088</span>        splitStateTracker.setSwitchEnabled(enabled);<a name="line.88"></a>
-<span class="sourceLineNo">089</span>        break;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>      case MERGE:<a name="line.90"></a>
-<span class="sourceLineNo">091</span>        mergeStateTracker.setSwitchEnabled(enabled);<a name="line.91"></a>
-<span class="sourceLineNo">092</span>        break;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      default:<a name="line.93"></a>
-<span class="sourceLineNo">094</span>        break;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    }<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  }<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>  private static class SwitchStateTracker extends ZKNodeTracker {<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>    public SwitchStateTracker(ZKWatcher watcher, String node, Abortable abortable) {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>      super(watcher, node, abortable);<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>    /**<a name="line.104"></a>
-<span class="sourceLineNo">105</span>     * Return true if the switch is on, false otherwise<a name="line.105"></a>
-<span class="sourceLineNo">106</span>     */<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    public boolean isSwitchEnabled() {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      byte [] upData = super.getData(false);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      try {<a name="line.109"></a>
-<span class="sourceLineNo">110</span>        // if data in ZK is null, use default of on.<a name="line.110"></a>
-<span class="sourceLineNo">111</span>        return upData == null || parseFrom(upData).getEnabled();<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      } catch (DeserializationException dex) {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>        LOG.error("ZK state for LoadBalancer could not be parsed " + Bytes.toStringBinary(upData));<a name="line.113"></a>
-<span class="sourceLineNo">114</span>        // return false to be safe.<a name="line.114"></a>
-<span class="sourceLineNo">115</span>        return false;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    }<a name="line.117"></a>
-<span class="sourceLineNo">118</span><a name="line.118"></a>
-<span class="sourceLineNo">119</span>    /**<a name="line.119"></a>
-<span class="sourceLineNo">120</span>     * Set the switch on/off<a name="line.120"></a>
-<span class="sourceLineNo">121</span>     * @param enabled switch enabled or not?<a name="line.121"></a>
-<span class="sourceLineNo">122</span>     * @throws KeeperException keepException will be thrown out<a name="line.122"></a>
-<span class="sourceLineNo">123</span>     */<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public void setSwitchEnabled(boolean enabled) throws KeeperException {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      byte [] upData = toByteArray(enabled);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      try {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>        ZKUtil.setData(watcher, node, upData);<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      } catch(KeeperException.NoNodeException nne) {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>        ZKUtil.createAndWatch(watcher, node, upData);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>      }<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      super.nodeDataChanged(node);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    }<a name="line.132"></a>
-<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>    private byte [] toByteArray(boolean enabled) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      SwitchState.Builder builder = SwitchState.newBuilder();<a name="line.135"></a>
-<span class="sourceLineNo">136</span>      builder.setEnabled(enabled);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      return ProtobufUtil.prependPBMagic(builder.build().toByteArray());<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>    private SwitchState parseFrom(byte [] bytes)<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      throws DeserializationException {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>      ProtobufUtil.expectPBMagicPrefix(bytes);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      SwitchState.Builder builder = SwitchState.newBuilder();<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      try {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>        int magicLen = ProtobufUtil.lengthOfPBMagic();<a name="line.145"></a>
-<span class="sourceLineNo">146</span>        ProtobufUtil.mergeFrom(builder, bytes, magicLen, bytes.length - magicLen);<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      } catch (IOException e) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        throw new DeserializationException(e);<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      }<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      return builder.build();<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>}<a name="line.153"></a>
+<span class="sourceLineNo">039</span> */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>@InterfaceAudience.Private<a name="line.40"></a>
+<span class="sourceLineNo">041</span>public class SplitOrMergeTracker {<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>  private String splitZnode;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  private String mergeZnode;<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>  private SwitchStateTracker splitStateTracker;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  private SwitchStateTracker mergeStateTracker;<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>  public SplitOrMergeTracker(ZKWatcher watcher, Configuration conf,<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                             Abortable abortable) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    try {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      if (ZKUtil.checkExists(watcher, watcher.znodePaths.switchZNode) &lt; 0) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        ZKUtil.createAndFailSilent(watcher, watcher.znodePaths.switchZNode);<a name="line.53"></a>
+<span class="sourceLineNo">054</span>      }<a name="line.54"></a>
+<span class="sourceLineNo">055</span>    } catch (KeeperException e) {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>      throw new RuntimeException(e);<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    }<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    splitZnode = ZNodePaths.joinZNode(watcher.znodePaths.switchZNode,<a name="line.58"></a>
+<span class="sourceLineNo">059</span>      conf.get("zookeeper.znode.switch.split", "split"));<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    mergeZnode = ZNodePaths.joinZNode(watcher.znodePaths.switchZNode,<a name="line.60"></a>
+<span class="sourceLineNo">061</span>      conf.get("zookeeper.znode.switch.merge", "merge"));<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    splitStateTracker = new SwitchStateTracker(watcher, splitZnode, abortable);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    mergeStateTracker = new SwitchStateTracker(watcher, mergeZnode, abortable);<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">066</span>  public void start() {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    splitStateTracker.start();<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    mergeStateTracker.start();<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  public boolean isSplitOrMergeEnabled(MasterSwitchType switchType) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    switch (switchType) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      case SPLIT:<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        return splitStateTracker.isSwitchEnabled();<a name="line.74"></a>
+<span class="sourceLineNo">075</span>      case MERGE:<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        return mergeStateTracker.isSwitchEnabled();<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      default:<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        break;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    }<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    return false;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>  public void setSplitOrMergeEnabled(boolean enabled, MasterSwitchType switchType)<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    throws KeeperException {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    switch (switchType) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>      case SPLIT:<a name="line.86"></a>
+<span class="sourceLineNo">087</span>        splitStateTracker.setSwitchEnabled(enabled);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>        break;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>      case MERGE:<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        mergeStateTracker.setSwitchEnabled(enabled);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>        break;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      default:<a name="line.92"></a>
+<span class="sourceLineNo">093</span>        break;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    }<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  }<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>  private static class SwitchStateTracker extends ZKNodeTracker {<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>    public SwitchStateTracker(ZKWatcher watcher, String node, Abortable abortable) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      super(watcher, node, abortable);<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>     * Return true if the switch is on, false otherwise<a name="line.104"></a>
+<span class="sourceLineNo">105</span>     */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    public boolean isSwitchEnabled() {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      byte [] upData = super.getData(false);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>      try {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>        // if data in ZK is null, use default of on.<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        return upData == null || parseFrom(upData).getEnabled();<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      } catch (DeserializationException dex) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        LOG.error("ZK state for LoadBalancer could not be parsed " + Bytes.toStringBinary(upData));<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        // return false to be safe.<a name="line.113"></a>
+<span class="sourceLineNo">114</span>        return false;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      }<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    }<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span>    /**<a name="line.118"></a>
+<span class="sourceLineNo">119</span>     * Set the switch on/off<a name="line.119"></a>
+<span class="sourceLineNo">120</span>     * @param enabled switch enabled or not?<a name="line.120"></a>
+<span class="sourceLineNo">121</span>     * @throws KeeperException keepException will be thrown out<a name="line.121"></a>
+<span class="sourceLineNo">122</span>     */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    public void setSwitchEnabled(boolean enabled) throws KeeperException {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      byte [] upData = toByteArray(enabled);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      try {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        ZKUtil.setData(watcher, node, upData);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      } catch(KeeperException.NoNodeException nne) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        ZKUtil.createAndWatch(watcher, node, upData);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>      }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      super.nodeDataChanged(node);<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>    private byte [] toByteArray(boolean enabled) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      SwitchState.Builder builder = SwitchState.newBuilder();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      builder.setEnabled(enabled);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      return ProtobufUtil.prependPBMagic(builder.build().toByteArray());<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>    private SwitchState parseFrom(byte [] bytes)<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      throws DeserializationException {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      ProtobufUtil.expectPBMagicPrefix(bytes);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      SwitchState.Builder builder = SwitchState.newBuilder();<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      try {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        int magicLen = ProtobufUtil.lengthOfPBMagic();<a name="line.144"></a>
+<span class="sourceLineNo">145</span>        ProtobufUtil.mergeFrom(builder, bytes, magicLen, bytes.length - magicLen);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      } catch (IOException e) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        throw new DeserializationException(e);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      }<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      return builder.build();<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>}<a name="line.152"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html
index 01b8a09..d4390be 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.InMemoryFlushRunnable.html
@@ -66,7 +66,7 @@
 <span class="sourceLineNo">058</span>  public static final String COMPACTING_MEMSTORE_TYPE_KEY =<a name="line.58"></a>
 <span class="sourceLineNo">059</span>      "hbase.hregion.compacting.memstore.type";<a name="line.59"></a>
 <span class="sourceLineNo">060</span>  public static final String COMPACTING_MEMSTORE_TYPE_DEFAULT =<a name="line.60"></a>
-<span class="sourceLineNo">061</span>      String.valueOf(MemoryCompactionPolicy.BASIC);<a name="line.61"></a>
+<span class="sourceLineNo">061</span>      String.valueOf(MemoryCompactionPolicy.NONE);<a name="line.61"></a>
 <span class="sourceLineNo">062</span>  // Default fraction of in-memory-flush size w.r.t. flush-to-disk size<a name="line.62"></a>
 <span class="sourceLineNo">063</span>  public static final String IN_MEMORY_FLUSH_THRESHOLD_FACTOR_KEY =<a name="line.63"></a>
 <span class="sourceLineNo">064</span>      "hbase.memstore.inmemoryflush.threshold.factor";<a name="line.64"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html
index 01b8a09..d4390be 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html
@@ -66,7 +66,7 @@
 <span class="sourceLineNo">058</span>  public static final String COMPACTING_MEMSTORE_TYPE_KEY =<a name="line.58"></a>
 <span class="sourceLineNo">059</span>      "hbase.hregion.compacting.memstore.type";<a name="line.59"></a>
 <span class="sourceLineNo">060</span>  public static final String COMPACTING_MEMSTORE_TYPE_DEFAULT =<a name="line.60"></a>
-<span class="sourceLineNo">061</span>      String.valueOf(MemoryCompactionPolicy.BASIC);<a name="line.61"></a>
+<span class="sourceLineNo">061</span>      String.valueOf(MemoryCompactionPolicy.NONE);<a name="line.61"></a>
 <span class="sourceLineNo">062</span>  // Default fraction of in-memory-flush size w.r.t. flush-to-disk size<a name="line.62"></a>
 <span class="sourceLineNo">063</span>  public static final String IN_MEMORY_FLUSH_THRESHOLD_FACTOR_KEY =<a name="line.63"></a>
 <span class="sourceLineNo">064</span>      "hbase.memstore.inmemoryflush.threshold.factor";<a name="line.64"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html
index 01b8a09..d4390be 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactingMemStore.html
@@ -66,7 +66,7 @@
 <span class="sourceLineNo">058</span>  public static final String COMPACTING_MEMSTORE_TYPE_KEY =<a name="line.58"></a>
 <span class="sourceLineNo">059</span>      "hbase.hregion.compacting.memstore.type";<a name="line.59"></a>
 <span class="sourceLineNo">060</span>  public static final String COMPACTING_MEMSTORE_TYPE_DEFAULT =<a name="line.60"></a>
-<span class="sourceLineNo">061</span>      String.valueOf(MemoryCompactionPolicy.BASIC);<a name="line.61"></a>
+<span class="sourceLineNo">061</span>      String.valueOf(MemoryCompactionPolicy.NONE);<a name="line.61"></a>
 <span class="sourceLineNo">062</span>  // Default fraction of in-memory-flush size w.r.t. flush-to-disk size<a name="line.62"></a>
 <span class="sourceLineNo">063</span>  public static final String IN_MEMORY_FLUSH_THRESHOLD_FACTOR_KEY =<a name="line.63"></a>
 <span class="sourceLineNo">064</span>      "hbase.memstore.inmemoryflush.threshold.factor";<a name="line.64"></a>


[09/16] hbase-site git commit: Published site at 4f2dfd387779968d3b76a22f1f4189d3278b202d.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/devapidocs/src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html
index 64dfea4..070e349 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html
@@ -287,984 +287,987 @@
 <span class="sourceLineNo">279</span>    this.limit = scan.getLimit();<a name="line.279"></a>
 <span class="sourceLineNo">280</span>    this.needCursorResult = scan.isNeedCursorResult();<a name="line.280"></a>
 <span class="sourceLineNo">281</span>    setPriority(scan.getPriority());<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>  /**<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   * Builds a scan object with the same specs as get.<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * @param get get to model scan after<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   */<a name="line.287"></a>
-<span class="sourceLineNo">288</span>  public Scan(Get get) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    this.startRow = get.getRow();<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    this.includeStartRow = true;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    this.stopRow = get.getRow();<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    this.includeStopRow = true;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    this.filter = get.getFilter();<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    this.cacheBlocks = get.getCacheBlocks();<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    this.maxVersions = get.getMaxVersions();<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    this.storeLimit = get.getMaxResultsPerColumnFamily();<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    this.storeOffset = get.getRowOffsetPerColumnFamily();<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    this.tr = get.getTimeRange();<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    this.familyMap = get.getFamilyMap();<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    this.asyncPrefetch = false;<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    this.consistency = get.getConsistency();<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    this.setIsolationLevel(get.getIsolationLevel());<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    this.loadColumnFamiliesOnDemand = get.getLoadColumnFamiliesOnDemandValue();<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    for (Map.Entry&lt;String, byte[]&gt; attr : get.getAttributesMap().entrySet()) {<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      setAttribute(attr.getKey(), attr.getValue());<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    }<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    for (Map.Entry&lt;byte[], TimeRange&gt; entry : get.getColumnFamilyTimeRange().entrySet()) {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      TimeRange tr = entry.getValue();<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      setColumnFamilyTimeRange(entry.getKey(), tr.getMin(), tr.getMax());<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    }<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    this.mvccReadPoint = -1L;<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    setPriority(get.getPriority());<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>  public boolean isGetScan() {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    return includeStartRow &amp;&amp; includeStopRow<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        &amp;&amp; ClientUtil.areScanStartRowAndStopRowEqual(this.startRow, this.stopRow);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>  }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>  /**<a name="line.320"></a>
-<span class="sourceLineNo">321</span>   * Get all columns from the specified family.<a name="line.321"></a>
-<span class="sourceLineNo">322</span>   * &lt;p&gt;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>   * Overrides previous calls to addColumn for this family.<a name="line.323"></a>
-<span class="sourceLineNo">324</span>   * @param family family name<a name="line.324"></a>
-<span class="sourceLineNo">325</span>   * @return this<a name="line.325"></a>
-<span class="sourceLineNo">326</span>   */<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public Scan addFamily(byte [] family) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    familyMap.remove(family);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    familyMap.put(family, null);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    return this;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>  }<a name="line.331"></a>
-<span class="sourceLineNo">332</span><a name="line.332"></a>
-<span class="sourceLineNo">333</span>  /**<a name="line.333"></a>
-<span class="sourceLineNo">334</span>   * Get the column from the specified family with the specified qualifier.<a name="line.334"></a>
-<span class="sourceLineNo">335</span>   * &lt;p&gt;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>   * Overrides previous calls to addFamily for this family.<a name="line.336"></a>
-<span class="sourceLineNo">337</span>   * @param family family name<a name="line.337"></a>
-<span class="sourceLineNo">338</span>   * @param qualifier column qualifier<a name="line.338"></a>
-<span class="sourceLineNo">339</span>   * @return this<a name="line.339"></a>
-<span class="sourceLineNo">340</span>   */<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  public Scan addColumn(byte [] family, byte [] qualifier) {<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    NavigableSet&lt;byte []&gt; set = familyMap.get(family);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    if(set == null) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      set = new TreeSet&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      familyMap.put(family, set);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    }<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    if (qualifier == null) {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      qualifier = HConstants.EMPTY_BYTE_ARRAY;<a name="line.348"></a>
+<span class="sourceLineNo">282</span>    readType = scan.getReadType();<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    super.setReplicaId(scan.getReplicaId());<a name="line.283"></a>
+<span class="sourceLineNo">284</span>  }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>  /**<a name="line.286"></a>
+<span class="sourceLineNo">287</span>   * Builds a scan object with the same specs as get.<a name="line.287"></a>
+<span class="sourceLineNo">288</span>   * @param get get to model scan after<a name="line.288"></a>
+<span class="sourceLineNo">289</span>   */<a name="line.289"></a>
+<span class="sourceLineNo">290</span>  public Scan(Get get) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    this.startRow = get.getRow();<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    this.includeStartRow = true;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    this.stopRow = get.getRow();<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    this.includeStopRow = true;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    this.filter = get.getFilter();<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    this.cacheBlocks = get.getCacheBlocks();<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    this.maxVersions = get.getMaxVersions();<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    this.storeLimit = get.getMaxResultsPerColumnFamily();<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    this.storeOffset = get.getRowOffsetPerColumnFamily();<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    this.tr = get.getTimeRange();<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    this.familyMap = get.getFamilyMap();<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    this.asyncPrefetch = false;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    this.consistency = get.getConsistency();<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    this.setIsolationLevel(get.getIsolationLevel());<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    this.loadColumnFamiliesOnDemand = get.getLoadColumnFamiliesOnDemandValue();<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    for (Map.Entry&lt;String, byte[]&gt; attr : get.getAttributesMap().entrySet()) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      setAttribute(attr.getKey(), attr.getValue());<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    }<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    for (Map.Entry&lt;byte[], TimeRange&gt; entry : get.getColumnFamilyTimeRange().entrySet()) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>      TimeRange tr = entry.getValue();<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      setColumnFamilyTimeRange(entry.getKey(), tr.getMin(), tr.getMax());<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    }<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    this.mvccReadPoint = -1L;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    setPriority(get.getPriority());<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    super.setReplicaId(get.getReplicaId());<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>  public boolean isGetScan() {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    return includeStartRow &amp;&amp; includeStopRow<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        &amp;&amp; ClientUtil.areScanStartRowAndStopRowEqual(this.startRow, this.stopRow);<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>   * Get all columns from the specified family.<a name="line.324"></a>
+<span class="sourceLineNo">325</span>   * &lt;p&gt;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>   * Overrides previous calls to addColumn for this family.<a name="line.326"></a>
+<span class="sourceLineNo">327</span>   * @param family family name<a name="line.327"></a>
+<span class="sourceLineNo">328</span>   * @return this<a name="line.328"></a>
+<span class="sourceLineNo">329</span>   */<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  public Scan addFamily(byte [] family) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    familyMap.remove(family);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    familyMap.put(family, null);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    return this;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>  }<a name="line.334"></a>
+<span class="sourceLineNo">335</span><a name="line.335"></a>
+<span class="sourceLineNo">336</span>  /**<a name="line.336"></a>
+<span class="sourceLineNo">337</span>   * Get the column from the specified family with the specified qualifier.<a name="line.337"></a>
+<span class="sourceLineNo">338</span>   * &lt;p&gt;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>   * Overrides previous calls to addFamily for this family.<a name="line.339"></a>
+<span class="sourceLineNo">340</span>   * @param family family name<a name="line.340"></a>
+<span class="sourceLineNo">341</span>   * @param qualifier column qualifier<a name="line.341"></a>
+<span class="sourceLineNo">342</span>   * @return this<a name="line.342"></a>
+<span class="sourceLineNo">343</span>   */<a name="line.343"></a>
+<span class="sourceLineNo">344</span>  public Scan addColumn(byte [] family, byte [] qualifier) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    NavigableSet&lt;byte []&gt; set = familyMap.get(family);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    if(set == null) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      set = new TreeSet&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      familyMap.put(family, set);<a name="line.348"></a>
 <span class="sourceLineNo">349</span>    }<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    set.add(qualifier);<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    return this;<a name="line.351"></a>
-<span class="sourceLineNo">352</span>  }<a name="line.352"></a>
-<span class="sourceLineNo">353</span><a name="line.353"></a>
-<span class="sourceLineNo">354</span>  /**<a name="line.354"></a>
-<span class="sourceLineNo">355</span>   * Get versions of columns only within the specified timestamp range,<a name="line.355"></a>
-<span class="sourceLineNo">356</span>   * [minStamp, maxStamp).  Note, default maximum versions to return is 1.  If<a name="line.356"></a>
-<span class="sourceLineNo">357</span>   * your time range spans more than one version and you want all versions<a name="line.357"></a>
-<span class="sourceLineNo">358</span>   * returned, up the number of versions beyond the default.<a name="line.358"></a>
-<span class="sourceLineNo">359</span>   * @param minStamp minimum timestamp value, inclusive<a name="line.359"></a>
-<span class="sourceLineNo">360</span>   * @param maxStamp maximum timestamp value, exclusive<a name="line.360"></a>
-<span class="sourceLineNo">361</span>   * @see #setMaxVersions()<a name="line.361"></a>
-<span class="sourceLineNo">362</span>   * @see #setMaxVersions(int)<a name="line.362"></a>
-<span class="sourceLineNo">363</span>   * @return this<a name="line.363"></a>
-<span class="sourceLineNo">364</span>   */<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  public Scan setTimeRange(long minStamp, long maxStamp) throws IOException {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    tr = new TimeRange(minStamp, maxStamp);<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    return this;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  }<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>  /**<a name="line.370"></a>
-<span class="sourceLineNo">371</span>   * Get versions of columns with the specified timestamp. Note, default maximum<a name="line.371"></a>
-<span class="sourceLineNo">372</span>   * versions to return is 1.  If your time range spans more than one version<a name="line.372"></a>
-<span class="sourceLineNo">373</span>   * and you want all versions returned, up the number of versions beyond the<a name="line.373"></a>
-<span class="sourceLineNo">374</span>   * defaut.<a name="line.374"></a>
-<span class="sourceLineNo">375</span>   * @param timestamp version timestamp<a name="line.375"></a>
-<span class="sourceLineNo">376</span>   * @see #setMaxVersions()<a name="line.376"></a>
-<span class="sourceLineNo">377</span>   * @see #setMaxVersions(int)<a name="line.377"></a>
-<span class="sourceLineNo">378</span>   * @return this<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   * @deprecated As of release 2.0.0, this will be removed in HBase 3.0.0.<a name="line.379"></a>
-<span class="sourceLineNo">380</span>   *             Use {@link #setTimestamp(long)} instead<a name="line.380"></a>
-<span class="sourceLineNo">381</span>   */<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  @Deprecated<a name="line.382"></a>
-<span class="sourceLineNo">383</span>  public Scan setTimeStamp(long timestamp)<a name="line.383"></a>
-<span class="sourceLineNo">384</span>  throws IOException {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    return this.setTimestamp(timestamp);<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  }<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>  /**<a name="line.388"></a>
-<span class="sourceLineNo">389</span>   * Get versions of columns with the specified timestamp. Note, default maximum<a name="line.389"></a>
-<span class="sourceLineNo">390</span>   * versions to return is 1.  If your time range spans more than one version<a name="line.390"></a>
-<span class="sourceLineNo">391</span>   * and you want all versions returned, up the number of versions beyond the<a name="line.391"></a>
-<span class="sourceLineNo">392</span>   * defaut.<a name="line.392"></a>
-<span class="sourceLineNo">393</span>   * @param timestamp version timestamp<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   * @see #setMaxVersions()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>   * @see #setMaxVersions(int)<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   * @return this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>   */<a name="line.397"></a>
-<span class="sourceLineNo">398</span>  public Scan setTimestamp(long timestamp) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    try {<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      tr = new TimeRange(timestamp, timestamp + 1);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    } catch(Exception e) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>      // This should never happen, unless integer overflow or something extremely wrong...<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      LOG.error("TimeRange failed, likely caused by integer overflow. ", e);<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      throw e;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    }<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>    return this;<a name="line.407"></a>
-<span class="sourceLineNo">408</span>  }<a name="line.408"></a>
+<span class="sourceLineNo">350</span>    if (qualifier == null) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      qualifier = HConstants.EMPTY_BYTE_ARRAY;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    set.add(qualifier);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    return this;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>  /**<a name="line.357"></a>
+<span class="sourceLineNo">358</span>   * Get versions of columns only within the specified timestamp range,<a name="line.358"></a>
+<span class="sourceLineNo">359</span>   * [minStamp, maxStamp).  Note, default maximum versions to return is 1.  If<a name="line.359"></a>
+<span class="sourceLineNo">360</span>   * your time range spans more than one version and you want all versions<a name="line.360"></a>
+<span class="sourceLineNo">361</span>   * returned, up the number of versions beyond the default.<a name="line.361"></a>
+<span class="sourceLineNo">362</span>   * @param minStamp minimum timestamp value, inclusive<a name="line.362"></a>
+<span class="sourceLineNo">363</span>   * @param maxStamp maximum timestamp value, exclusive<a name="line.363"></a>
+<span class="sourceLineNo">364</span>   * @see #setMaxVersions()<a name="line.364"></a>
+<span class="sourceLineNo">365</span>   * @see #setMaxVersions(int)<a name="line.365"></a>
+<span class="sourceLineNo">366</span>   * @return this<a name="line.366"></a>
+<span class="sourceLineNo">367</span>   */<a name="line.367"></a>
+<span class="sourceLineNo">368</span>  public Scan setTimeRange(long minStamp, long maxStamp) throws IOException {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    tr = new TimeRange(minStamp, maxStamp);<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    return this;<a name="line.370"></a>
+<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>  /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>   * Get versions of columns with the specified timestamp. Note, default maximum<a name="line.374"></a>
+<span class="sourceLineNo">375</span>   * versions to return is 1.  If your time range spans more than one version<a name="line.375"></a>
+<span class="sourceLineNo">376</span>   * and you want all versions returned, up the number of versions beyond the<a name="line.376"></a>
+<span class="sourceLineNo">377</span>   * defaut.<a name="line.377"></a>
+<span class="sourceLineNo">378</span>   * @param timestamp version timestamp<a name="line.378"></a>
+<span class="sourceLineNo">379</span>   * @see #setMaxVersions()<a name="line.379"></a>
+<span class="sourceLineNo">380</span>   * @see #setMaxVersions(int)<a name="line.380"></a>
+<span class="sourceLineNo">381</span>   * @return this<a name="line.381"></a>
+<span class="sourceLineNo">382</span>   * @deprecated As of release 2.0.0, this will be removed in HBase 3.0.0.<a name="line.382"></a>
+<span class="sourceLineNo">383</span>   *             Use {@link #setTimestamp(long)} instead<a name="line.383"></a>
+<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  @Deprecated<a name="line.385"></a>
+<span class="sourceLineNo">386</span>  public Scan setTimeStamp(long timestamp)<a name="line.386"></a>
+<span class="sourceLineNo">387</span>  throws IOException {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    return this.setTimestamp(timestamp);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>  /**<a name="line.391"></a>
+<span class="sourceLineNo">392</span>   * Get versions of columns with the specified timestamp. Note, default maximum<a name="line.392"></a>
+<span class="sourceLineNo">393</span>   * versions to return is 1.  If your time range spans more than one version<a name="line.393"></a>
+<span class="sourceLineNo">394</span>   * and you want all versions returned, up the number of versions beyond the<a name="line.394"></a>
+<span class="sourceLineNo">395</span>   * defaut.<a name="line.395"></a>
+<span class="sourceLineNo">396</span>   * @param timestamp version timestamp<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   * @see #setMaxVersions()<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   * @see #setMaxVersions(int)<a name="line.398"></a>
+<span class="sourceLineNo">399</span>   * @return this<a name="line.399"></a>
+<span class="sourceLineNo">400</span>   */<a name="line.400"></a>
+<span class="sourceLineNo">401</span>  public Scan setTimestamp(long timestamp) {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    try {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      tr = new TimeRange(timestamp, timestamp + 1);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    } catch(Exception e) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      // This should never happen, unless integer overflow or something extremely wrong...<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      LOG.error("TimeRange failed, likely caused by integer overflow. ", e);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      throw e;<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>  @Override public Scan setColumnFamilyTimeRange(byte[] cf, long minStamp, long maxStamp) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return (Scan) super.setColumnFamilyTimeRange(cf, minStamp, maxStamp);<a name="line.411"></a>
-<span class="sourceLineNo">412</span>  }<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span>  /**<a name="line.414"></a>
-<span class="sourceLineNo">415</span>   * Set the start row of the scan.<a name="line.415"></a>
-<span class="sourceLineNo">416</span>   * &lt;p&gt;<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * If the specified row does not exist, the Scanner will start from the next closest row after the<a name="line.417"></a>
-<span class="sourceLineNo">418</span>   * specified row.<a name="line.418"></a>
-<span class="sourceLineNo">419</span>   * @param startRow row to start scanner at or after<a name="line.419"></a>
-<span class="sourceLineNo">420</span>   * @return this<a name="line.420"></a>
-<span class="sourceLineNo">421</span>   * @throws IllegalArgumentException if startRow does not meet criteria for a row key (when length<a name="line.421"></a>
-<span class="sourceLineNo">422</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.422"></a>
-<span class="sourceLineNo">423</span>   * @deprecated use {@link #withStartRow(byte[])} instead. This method may change the inclusive of<a name="line.423"></a>
-<span class="sourceLineNo">424</span>   *             the stop row to keep compatible with the old behavior.<a name="line.424"></a>
-<span class="sourceLineNo">425</span>   */<a name="line.425"></a>
-<span class="sourceLineNo">426</span>  @Deprecated<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  public Scan setStartRow(byte[] startRow) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    withStartRow(startRow);<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    if (ClientUtil.areScanStartRowAndStopRowEqual(this.startRow, this.stopRow)) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      // for keeping the old behavior that a scan with the same start and stop row is a get scan.<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      this.includeStopRow = true;<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    return this;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>  /**<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   * Set the start row of the scan.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   * &lt;p&gt;<a name="line.438"></a>
-<span class="sourceLineNo">439</span>   * If the specified row does not exist, the Scanner will start from the next closest row after the<a name="line.439"></a>
-<span class="sourceLineNo">440</span>   * specified row.<a name="line.440"></a>
-<span class="sourceLineNo">441</span>   * @param startRow row to start scanner at or after<a name="line.441"></a>
-<span class="sourceLineNo">442</span>   * @return this<a name="line.442"></a>
-<span class="sourceLineNo">443</span>   * @throws IllegalArgumentException if startRow does not meet criteria for a row key (when length<a name="line.443"></a>
-<span class="sourceLineNo">444</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.444"></a>
-<span class="sourceLineNo">445</span>   */<a name="line.445"></a>
-<span class="sourceLineNo">446</span>  public Scan withStartRow(byte[] startRow) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    return withStartRow(startRow, true);<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  }<a name="line.448"></a>
-<span class="sourceLineNo">449</span><a name="line.449"></a>
-<span class="sourceLineNo">450</span>  /**<a name="line.450"></a>
-<span class="sourceLineNo">451</span>   * Set the start row of the scan.<a name="line.451"></a>
-<span class="sourceLineNo">452</span>   * &lt;p&gt;<a name="line.452"></a>
-<span class="sourceLineNo">453</span>   * If the specified row does not exist, or the {@code inclusive} is {@code false}, the Scanner<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * will start from the next closest row after the specified row.<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * @param startRow row to start scanner at or after<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * @param inclusive whether we should include the start row when scan<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * @return this<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   * @throws IllegalArgumentException if startRow does not meet criteria for a row key (when length<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   */<a name="line.460"></a>
-<span class="sourceLineNo">461</span>  public Scan withStartRow(byte[] startRow, boolean inclusive) {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    if (Bytes.len(startRow) &gt; HConstants.MAX_ROW_LENGTH) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      throw new IllegalArgumentException("startRow's length must be less than or equal to "<a name="line.463"></a>
-<span class="sourceLineNo">464</span>          + HConstants.MAX_ROW_LENGTH + " to meet the criteria" + " for a row key.");<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    }<a name="line.465"></a>
-<span class="sourceLineNo">466</span>    this.startRow = startRow;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    this.includeStartRow = inclusive;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    return this;<a name="line.468"></a>
-<span class="sourceLineNo">469</span>  }<a name="line.469"></a>
-<span class="sourceLineNo">470</span><a name="line.470"></a>
-<span class="sourceLineNo">471</span>  /**<a name="line.471"></a>
-<span class="sourceLineNo">472</span>   * Set the stop row of the scan.<a name="line.472"></a>
-<span class="sourceLineNo">473</span>   * &lt;p&gt;<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   * The scan will include rows that are lexicographically less than the provided stopRow.<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   * &lt;p&gt;<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * &lt;b&gt;Note:&lt;/b&gt; When doing a filter for a rowKey &lt;u&gt;Prefix&lt;/u&gt; use<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * {@link #setRowPrefixFilter(byte[])}. The 'trailing 0' will not yield the desired result.<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * &lt;/p&gt;<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   * @param stopRow row to end at (exclusive)<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * @return this<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * @throws IllegalArgumentException if stopRow does not meet criteria for a row key (when length<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   * @deprecated use {@link #withStartRow(byte[])} instead. This method may change the inclusive of<a name="line.483"></a>
-<span class="sourceLineNo">484</span>   *             the stop row to keep compatible with the old behavior.<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   */<a name="line.485"></a>
-<span class="sourceLineNo">486</span>  @Deprecated<a name="line.486"></a>
-<span class="sourceLineNo">487</span>  public Scan setStopRow(byte[] stopRow) {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    withStopRow(stopRow);<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    if (ClientUtil.areScanStartRowAndStopRowEqual(this.startRow, this.stopRow)) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      // for keeping the old behavior that a scan with the same start and stop row is a get scan.<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      this.includeStopRow = true;<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    }<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    return this;<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>  /**<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   * Set the stop row of the scan.<a name="line.497"></a>
-<span class="sourceLineNo">498</span>   * &lt;p&gt;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>   * The scan will include rows that are lexicographically less than the provided stopRow.<a name="line.499"></a>
-<span class="sourceLineNo">500</span>   * &lt;p&gt;<a name="line.500"></a>
-<span class="sourceLineNo">501</span>   * &lt;b&gt;Note:&lt;/b&gt; When doing a filter for a rowKey &lt;u&gt;Prefix&lt;/u&gt; use<a name="line.501"></a>
-<span class="sourceLineNo">502</span>   * {@link #setRowPrefixFilter(byte[])}. The 'trailing 0' will not yield the desired result.<a name="line.502"></a>
-<span class="sourceLineNo">503</span>   * &lt;/p&gt;<a name="line.503"></a>
-<span class="sourceLineNo">504</span>   * @param stopRow row to end at (exclusive)<a name="line.504"></a>
-<span class="sourceLineNo">505</span>   * @return this<a name="line.505"></a>
-<span class="sourceLineNo">506</span>   * @throws IllegalArgumentException if stopRow does not meet criteria for a row key (when length<a name="line.506"></a>
-<span class="sourceLineNo">507</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.507"></a>
-<span class="sourceLineNo">508</span>   */<a name="line.508"></a>
-<span class="sourceLineNo">509</span>  public Scan withStopRow(byte[] stopRow) {<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    return withStopRow(stopRow, false);<a name="line.510"></a>
-<span class="sourceLineNo">511</span>  }<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>   * Set the stop row of the scan.<a name="line.514"></a>
-<span class="sourceLineNo">515</span>   * &lt;p&gt;<a name="line.515"></a>
-<span class="sourceLineNo">516</span>   * The scan will include rows that are lexicographically less than (or equal to if<a name="line.516"></a>
-<span class="sourceLineNo">517</span>   * {@code inclusive} is {@code true}) the provided stopRow.<a name="line.517"></a>
-<span class="sourceLineNo">518</span>   * @param stopRow row to end at<a name="line.518"></a>
-<span class="sourceLineNo">519</span>   * @param inclusive whether we should include the stop row when scan<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   * @return this<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   * @throws IllegalArgumentException if stopRow does not meet criteria for a row key (when length<a name="line.521"></a>
-<span class="sourceLineNo">522</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.522"></a>
-<span class="sourceLineNo">523</span>   */<a name="line.523"></a>
-<span class="sourceLineNo">524</span>  public Scan withStopRow(byte[] stopRow, boolean inclusive) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>    if (Bytes.len(stopRow) &gt; HConstants.MAX_ROW_LENGTH) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      throw new IllegalArgumentException("stopRow's length must be less than or equal to "<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          + HConstants.MAX_ROW_LENGTH + " to meet the criteria" + " for a row key.");<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    }<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    this.stopRow = stopRow;<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    this.includeStopRow = inclusive;<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    return this;<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>  /**<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   * &lt;p&gt;Set a filter (using stopRow and startRow) so the result set only contains rows where the<a name="line.535"></a>
-<span class="sourceLineNo">536</span>   * rowKey starts with the specified prefix.&lt;/p&gt;<a name="line.536"></a>
-<span class="sourceLineNo">537</span>   * &lt;p&gt;This is a utility method that converts the desired rowPrefix into the appropriate values<a name="line.537"></a>
-<span class="sourceLineNo">538</span>   * for the startRow and stopRow to achieve the desired result.&lt;/p&gt;<a name="line.538"></a>
-<span class="sourceLineNo">539</span>   * &lt;p&gt;This can safely be used in combination with setFilter.&lt;/p&gt;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>   * &lt;p&gt;&lt;b&gt;NOTE: Doing a {@link #setStartRow(byte[])} and/or {@link #setStopRow(byte[])}<a name="line.540"></a>
-<span class="sourceLineNo">541</span>   * after this method will yield undefined results.&lt;/b&gt;&lt;/p&gt;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>   * @param rowPrefix the prefix all rows must start with. (Set &lt;i&gt;null&lt;/i&gt; to remove the filter.)<a name="line.542"></a>
-<span class="sourceLineNo">543</span>   * @return this<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   */<a name="line.544"></a>
-<span class="sourceLineNo">545</span>  public Scan setRowPrefixFilter(byte[] rowPrefix) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    if (rowPrefix == null) {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      setStartRow(HConstants.EMPTY_START_ROW);<a name="line.547"></a>
-<span class="sourceLineNo">548</span>      setStopRow(HConstants.EMPTY_END_ROW);<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    } else {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      this.setStartRow(rowPrefix);<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      this.setStopRow(calculateTheClosestNextRowKeyForPrefix(rowPrefix));<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    }<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    return this;<a name="line.553"></a>
-<span class="sourceLineNo">554</span>  }<a name="line.554"></a>
-<span class="sourceLineNo">555</span><a name="line.555"></a>
-<span class="sourceLineNo">556</span>  /**<a name="line.556"></a>
-<span class="sourceLineNo">557</span>   * &lt;p&gt;When scanning for a prefix the scan should stop immediately after the the last row that<a name="line.557"></a>
-<span class="sourceLineNo">558</span>   * has the specified prefix. This method calculates the closest next rowKey immediately following<a name="line.558"></a>
-<span class="sourceLineNo">559</span>   * the given rowKeyPrefix.&lt;/p&gt;<a name="line.559"></a>
-<span class="sourceLineNo">560</span>   * &lt;p&gt;&lt;b&gt;IMPORTANT: This converts a rowKey&lt;u&gt;Prefix&lt;/u&gt; into a rowKey&lt;/b&gt;.&lt;/p&gt;<a name="line.560"></a>
-<span class="sourceLineNo">561</span>   * &lt;p&gt;If the prefix is an 'ASCII' string put into a byte[] then this is easy because you can<a name="line.561"></a>
-<span class="sourceLineNo">562</span>   * simply increment the last byte of the array.<a name="line.562"></a>
-<span class="sourceLineNo">563</span>   * But if your application uses real binary rowids you may run into the scenario that your<a name="line.563"></a>
-<span class="sourceLineNo">564</span>   * prefix is something like:&lt;/p&gt;<a name="line.564"></a>
-<span class="sourceLineNo">565</span>   * &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;{ 0x12, 0x23, 0xFF, 0xFF }&lt;/b&gt;&lt;br/&gt;<a name="line.565"></a>
-<span class="sourceLineNo">566</span>   * Then this stopRow needs to be fed into the actual scan&lt;br/&gt;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>   * &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;{ 0x12, 0x24 }&lt;/b&gt; (Notice that it is shorter now)&lt;br/&gt;<a name="line.567"></a>
-<span class="sourceLineNo">568</span>   * This method calculates the correct stop row value for this usecase.<a name="line.568"></a>
-<span class="sourceLineNo">569</span>   *<a name="line.569"></a>
-<span class="sourceLineNo">570</span>   * @param rowKeyPrefix the rowKey&lt;u&gt;Prefix&lt;/u&gt;.<a name="line.570"></a>
-<span class="sourceLineNo">571</span>   * @return the closest next rowKey immediately following the given rowKeyPrefix.<a name="line.571"></a>
-<span class="sourceLineNo">572</span>   */<a name="line.572"></a>
-<span class="sourceLineNo">573</span>  private byte[] calculateTheClosestNextRowKeyForPrefix(byte[] rowKeyPrefix) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    // Essentially we are treating it like an 'unsigned very very long' and doing +1 manually.<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    // Search for the place where the trailing 0xFFs start<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    int offset = rowKeyPrefix.length;<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    while (offset &gt; 0) {<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      if (rowKeyPrefix[offset - 1] != (byte) 0xFF) {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>        break;<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      }<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      offset--;<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    }<a name="line.582"></a>
-<span class="sourceLineNo">583</span><a name="line.583"></a>
-<span class="sourceLineNo">584</span>    if (offset == 0) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      // We got an 0xFFFF... (only FFs) stopRow value which is<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      // the last possible prefix before the end of the table.<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      // So set it to stop at the 'end of the table'<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      return HConstants.EMPTY_END_ROW;<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>    // Copy the right length of the original<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    byte[] newStopRow = Arrays.copyOfRange(rowKeyPrefix, 0, offset);<a name="line.592"></a>
-<span class="sourceLineNo">593</span>    // And increment the last one<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    newStopRow[newStopRow.length - 1]++;<a name="line.594"></a>
-<span class="sourceLineNo">595</span>    return newStopRow;<a name="line.595"></a>
-<span class="sourceLineNo">596</span>  }<a name="line.596"></a>
-<span class="sourceLineNo">597</span><a name="line.597"></a>
-<span class="sourceLineNo">598</span>  /**<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * Get all available versions.<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * @return this<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   * @deprecated It is easy to misunderstand with column family's max versions, so use<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   *             {@link #readAllVersions()} instead.<a name="line.602"></a>
-<span class="sourceLineNo">603</span>   */<a name="line.603"></a>
-<span class="sourceLineNo">604</span>  @Deprecated<a name="line.604"></a>
-<span class="sourceLineNo">605</span>  public Scan setMaxVersions() {<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    return readAllVersions();<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>   * Get up to the specified number of versions of each column.<a name="line.610"></a>
-<span class="sourceLineNo">611</span>   * @param maxVersions maximum versions for each column<a name="line.611"></a>
-<span class="sourceLineNo">612</span>   * @return this<a name="line.612"></a>
-<span class="sourceLineNo">613</span>   * @deprecated It is easy to misunderstand with column family's max versions, so use<a name="line.613"></a>
-<span class="sourceLineNo">614</span>   *             {@link #readVersions(int)} instead.<a name="line.614"></a>
-<span class="sourceLineNo">615</span>   */<a name="line.615"></a>
-<span class="sourceLineNo">616</span>  @Deprecated<a name="line.616"></a>
-<span class="sourceLineNo">617</span>  public Scan setMaxVersions(int maxVersions) {<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    return readVersions(maxVersions);<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>  /**<a name="line.621"></a>
-<span class="sourceLineNo">622</span>   * Get all available versions.<a name="line.622"></a>
-<span class="sourceLineNo">623</span>   * @return this<a name="line.623"></a>
-<span class="sourceLineNo">624</span>   */<a name="line.624"></a>
-<span class="sourceLineNo">625</span>  public Scan readAllVersions() {<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    this.maxVersions = Integer.MAX_VALUE;<a name="line.626"></a>
-<span class="sourceLineNo">627</span>    return this;<a name="line.627"></a>
-<span class="sourceLineNo">628</span>  }<a name="line.628"></a>
-<span class="sourceLineNo">629</span><a name="line.629"></a>
-<span class="sourceLineNo">630</span>  /**<a name="line.630"></a>
-<span class="sourceLineNo">631</span>   * Get up to the specified number of versions of each column.<a name="line.631"></a>
-<span class="sourceLineNo">632</span>   * @param versions specified number of versions for each column<a name="line.632"></a>
-<span class="sourceLineNo">633</span>   * @return this<a name="line.633"></a>
-<span class="sourceLineNo">634</span>   */<a name="line.634"></a>
-<span class="sourceLineNo">635</span>  public Scan readVersions(int versions) {<a name="line.635"></a>
-<span class="sourceLineNo">636</span>    this.maxVersions = versions;<a name="line.636"></a>
-<span class="sourceLineNo">637</span>    return this;<a name="line.637"></a>
-<span class="sourceLineNo">638</span>  }<a name="line.638"></a>
-<span class="sourceLineNo">639</span><a name="line.639"></a>
-<span class="sourceLineNo">640</span>  /**<a name="line.640"></a>
-<span class="sourceLineNo">641</span>   * Set the maximum number of cells to return for each call to next(). Callers should be aware<a name="line.641"></a>
-<span class="sourceLineNo">642</span>   * that this is not equivalent to calling {@link #setAllowPartialResults(boolean)}.<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * If you don't allow partial results, the number of cells in each Result must equal to your<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   * batch setting unless it is the last Result for current row. So this method is helpful in paging<a name="line.644"></a>
-<span class="sourceLineNo">645</span>   * queries. If you just want to prevent OOM at client, use setAllowPartialResults(true) is better.<a name="line.645"></a>
-<span class="sourceLineNo">646</span>   * @param batch the maximum number of values<a name="line.646"></a>
-<span class="sourceLineNo">647</span>   * @see Result#mayHaveMoreCellsInRow()<a name="line.647"></a>
-<span class="sourceLineNo">648</span>   */<a name="line.648"></a>
-<span class="sourceLineNo">649</span>  public Scan setBatch(int batch) {<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    if (this.hasFilter() &amp;&amp; this.filter.hasFilterRow()) {<a name="line.650"></a>
-<span class="sourceLineNo">651</span>      throw new IncompatibleFilterException(<a name="line.651"></a>
-<span class="sourceLineNo">652</span>        "Cannot set batch on a scan using a filter" +<a name="line.652"></a>
-<span class="sourceLineNo">653</span>        " that returns true for filter.hasFilterRow");<a name="line.653"></a>
-<span class="sourceLineNo">654</span>    }<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    this.batch = batch;<a name="line.655"></a>
-<span class="sourceLineNo">656</span>    return this;<a name="line.656"></a>
-<span class="sourceLineNo">657</span>  }<a name="line.657"></a>
-<span class="sourceLineNo">658</span><a name="line.658"></a>
-<span class="sourceLineNo">659</span>  /**<a name="line.659"></a>
-<span class="sourceLineNo">660</span>   * Set the maximum number of values to return per row per Column Family<a name="line.660"></a>
-<span class="sourceLineNo">661</span>   * @param limit the maximum number of values returned / row / CF<a name="line.661"></a>
-<span class="sourceLineNo">662</span>   */<a name="line.662"></a>
-<span class="sourceLineNo">663</span>  public Scan setMaxResultsPerColumnFamily(int limit) {<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    this.storeLimit = limit;<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    return this;<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span>  /**<a name="line.668"></a>
-<span class="sourceLineNo">669</span>   * Set offset for the row per Column Family.<a name="line.669"></a>
-<span class="sourceLineNo">670</span>   * @param offset is the number of kvs that will be skipped.<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   */<a name="line.671"></a>
-<span class="sourceLineNo">672</span>  public Scan setRowOffsetPerColumnFamily(int offset) {<a name="line.672"></a>
-<span class="sourceLineNo">673</span>    this.storeOffset = offset;<a name="line.673"></a>
-<span class="sourceLineNo">674</span>    return this;<a name="line.674"></a>
-<span class="sourceLineNo">675</span>  }<a name="line.675"></a>
-<span class="sourceLineNo">676</span><a name="line.676"></a>
-<span class="sourceLineNo">677</span>  /**<a name="line.677"></a>
-<span class="sourceLineNo">678</span>   * Set the number of rows for caching that will be passed to scanners.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>   * If not set, the Configuration setting {@link HConstants#HBASE_CLIENT_SCANNER_CACHING} will<a name="line.679"></a>
-<span class="sourceLineNo">680</span>   * apply.<a name="line.680"></a>
-<span class="sourceLineNo">681</span>   * Higher caching values will enable faster scanners but will use more memory.<a name="line.681"></a>
-<span class="sourceLineNo">682</span>   * @param caching the number of rows for caching<a name="line.682"></a>
-<span class="sourceLineNo">683</span>   */<a name="line.683"></a>
-<span class="sourceLineNo">684</span>  public Scan setCaching(int caching) {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    this.caching = caching;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    return this;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>  }<a name="line.687"></a>
-<span class="sourceLineNo">688</span><a name="line.688"></a>
-<span class="sourceLineNo">689</span>  /**<a name="line.689"></a>
-<span class="sourceLineNo">690</span>   * @return the maximum result size in bytes. See {@link #setMaxResultSize(long)}<a name="line.690"></a>
-<span class="sourceLineNo">691</span>   */<a name="line.691"></a>
-<span class="sourceLineNo">692</span>  public long getMaxResultSize() {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    return maxResultSize;<a name="line.693"></a>
-<span class="sourceLineNo">694</span>  }<a name="line.694"></a>
-<span class="sourceLineNo">695</span><a name="line.695"></a>
-<span class="sourceLineNo">696</span>  /**<a name="line.696"></a>
-<span class="sourceLineNo">697</span>   * Set the maximum result size. The default is -1; this means that no specific<a name="line.697"></a>
-<span class="sourceLineNo">698</span>   * maximum result size will be set for this scan, and the global configured<a name="line.698"></a>
-<span class="sourceLineNo">699</span>   * value will be used instead. (Defaults to unlimited).<a name="line.699"></a>
-<span class="sourceLineNo">700</span>   *<a name="line.700"></a>
-<span class="sourceLineNo">701</span>   * @param maxResultSize The maximum result size in bytes.<a name="line.701"></a>
-<span class="sourceLineNo">702</span>   */<a name="line.702"></a>
-<span class="sourceLineNo">703</span>  public Scan setMaxResultSize(long maxResultSize) {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    this.maxResultSize = maxResultSize;<a name="line.704"></a>
-<span class="sourceLineNo">705</span>    return this;<a name="line.705"></a>
-<span class="sourceLineNo">706</span>  }<a name="line.706"></a>
-<span class="sourceLineNo">707</span><a name="line.707"></a>
-<span class="sourceLineNo">708</span>  @Override<a name="line.708"></a>
-<span class="sourceLineNo">709</span>  public Scan setFilter(Filter filter) {<a name="line.709"></a>
-<span class="sourceLineNo">710</span>    super.setFilter(filter);<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    return this;<a name="line.711"></a>
-<span class="sourceLineNo">712</span>  }<a name="line.712"></a>
-<span class="sourceLineNo">713</span><a name="line.713"></a>
-<span class="sourceLineNo">714</span>  /**<a name="line.714"></a>
-<span class="sourceLineNo">715</span>   * Setting the familyMap<a name="line.715"></a>
-<span class="sourceLineNo">716</span>   * @param familyMap map of family to qualifier<a name="line.716"></a>
-<span class="sourceLineNo">717</span>   * @return this<a name="line.717"></a>
-<span class="sourceLineNo">718</span>   */<a name="line.718"></a>
-<span class="sourceLineNo">719</span>  public Scan setFamilyMap(Map&lt;byte [], NavigableSet&lt;byte []&gt;&gt; familyMap) {<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    this.familyMap = familyMap;<a name="line.720"></a>
-<span class="sourceLineNo">721</span>    return this;<a name="line.721"></a>
-<span class="sourceLineNo">722</span>  }<a name="line.722"></a>
-<span class="sourceLineNo">723</span><a name="line.723"></a>
-<span class="sourceLineNo">724</span>  /**<a name="line.724"></a>
-<span class="sourceLineNo">725</span>   * Getting the familyMap<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   * @return familyMap<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   */<a name="line.727"></a>
-<span class="sourceLineNo">728</span>  public Map&lt;byte [], NavigableSet&lt;byte []&gt;&gt; getFamilyMap() {<a name="line.728"></a>
-<span class="sourceLineNo">729</span>    return this.familyMap;<a name="line.729"></a>
-<span class="sourceLineNo">730</span>  }<a name="line.730"></a>
-<span class="sourceLineNo">731</span><a name="line.731"></a>
-<span class="sourceLineNo">732</span>  /**<a name="line.732"></a>
-<span class="sourceLineNo">733</span>   * @return the number of families in familyMap<a name="line.733"></a>
-<span class="sourceLineNo">734</span>   */<a name="line.734"></a>
-<span class="sourceLineNo">735</span>  public int numFamilies() {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>    if(hasFamilies()) {<a name="line.736"></a>
-<span class="sourceLineNo">737</span>      return this.familyMap.size();<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    }<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    return 0;<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  }<a name="line.740"></a>
-<span class="sourceLineNo">741</span><a name="line.741"></a>
-<span class="sourceLineNo">742</span>  /**<a name="line.742"></a>
-<span class="sourceLineNo">743</span>   * @return true if familyMap is non empty, false otherwise<a name="line.743"></a>
-<span class="sourceLineNo">744</span>   */<a name="line.744"></a>
-<span class="sourceLineNo">745</span>  public boolean hasFamilies() {<a name="line.745"></a>
-<span class="sourceLineNo">746</span>    return !this.familyMap.isEmpty();<a name="line.746"></a>
-<span class="sourceLineNo">747</span>  }<a name="line.747"></a>
-<span class="sourceLineNo">748</span><a name="line.748"></a>
-<span class="sourceLineNo">749</span>  /**<a name="line.749"></a>
-<span class="sourceLineNo">750</span>   * @return the keys of the familyMap<a name="line.750"></a>
-<span class="sourceLineNo">751</span>   */<a name="line.751"></a>
-<span class="sourceLineNo">752</span>  public byte[][] getFamilies() {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    if(hasFamilies()) {<a name="line.753"></a>
-<span class="sourceLineNo">754</span>      return this.familyMap.keySet().toArray(new byte[0][0]);<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    }<a name="line.755"></a>
-<span class="sourceLineNo">756</span>    return null;<a name="line.756"></a>
-<span class="sourceLineNo">757</span>  }<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>  /**<a name="line.759"></a>
-<span class="sourceLineNo">760</span>   * @return the startrow<a name="line.760"></a>
-<span class="sourceLineNo">761</span>   */<a name="line.761"></a>
-<span class="sourceLineNo">762</span>  public byte [] getStartRow() {<a name="line.762"></a>
-<span class="sourceLineNo">763</span>    return this.startRow;<a name="line.763"></a>
-<span class="sourceLineNo">764</span>  }<a name="line.764"></a>
-<span class="sourceLineNo">765</span><a name="line.765"></a>
-<span class="sourceLineNo">766</span>  /**<a name="line.766"></a>
-<span class="sourceLineNo">767</span>   * @return if we should include start row when scan<a name="line.767"></a>
-<span class="sourceLineNo">768</span>   */<a name="line.768"></a>
-<span class="sourceLineNo">769</span>  public boolean includeStartRow() {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    return includeStartRow;<a name="line.770"></a>
-<span class="sourceLineNo">771</span>  }<a name="line.771"></a>
-<span class="sourceLineNo">772</span><a name="line.772"></a>
-<span class="sourceLineNo">773</span>  /**<a name="line.773"></a>
-<span class="sourceLineNo">774</span>   * @return the stoprow<a name="line.774"></a>
-<span class="sourceLineNo">775</span>   */<a name="line.775"></a>
-<span class="sourceLineNo">776</span>  public byte[] getStopRow() {<a name="line.776"></a>
-<span class="sourceLineNo">777</span>    return this.stopRow;<a name="line.777"></a>
-<span class="sourceLineNo">778</span>  }<a name="line.778"></a>
-<span class="sourceLineNo">779</span><a name="line.779"></a>
-<span class="sourceLineNo">780</span>  /**<a name="line.780"></a>
-<span class="sourceLineNo">781</span>   * @return if we should include stop row when scan<a name="line.781"></a>
-<span class="sourceLineNo">782</span>   */<a name="line.782"></a>
-<span class="sourceLineNo">783</span>  public boolean includeStopRow() {<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    return includeStopRow;<a name="line.784"></a>
-<span class="sourceLineNo">785</span>  }<a name="line.785"></a>
-<span class="sourceLineNo">786</span><a name="line.786"></a>
-<span class="sourceLineNo">787</span>  /**<a name="line.787"></a>
-<span class="sourceLineNo">788</span>   * @return the max number of versions to fetch<a name="line.788"></a>
-<span class="sourceLineNo">789</span>   */<a name="line.789"></a>
-<span class="sourceLineNo">790</span>  public int getMaxVersions() {<a name="line.790"></a>
-<span class="sourceLineNo">791</span>    return this.maxVersions;<a name="line.791"></a>
-<span class="sourceLineNo">792</span>  }<a name="line.792"></a>
-<span class="sourceLineNo">793</span><a name="line.793"></a>
-<span class="sourceLineNo">794</span>  /**<a name="line.794"></a>
-<span class="sourceLineNo">795</span>   * @return maximum number of values to return for a single call to next()<a name="line.795"></a>
-<span class="sourceLineNo">796</span>   */<a name="line.796"></a>
-<span class="sourceLineNo">797</span>  public int getBatch() {<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    return this.batch;<a name="line.798"></a>
-<span class="sourceLineNo">799</span>  }<a name="line.799"></a>
-<span class="sourceLineNo">800</span><a name="line.800"></a>
-<span class="sourceLineNo">801</span>  /**<a name="line.801"></a>
-<span class="sourceLineNo">802</span>   * @return maximum number of values to return per row per CF<a name="line.802"></a>
-<span class="sourceLineNo">803</span>   */<a name="line.803"></a>
-<span class="sourceLineNo">804</span>  public int getMaxResultsPerColumnFamily() {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>    return this.storeLimit;<a name="line.805"></a>
-<span class="sourceLineNo">806</span>  }<a name="line.806"></a>
-<span class="sourceLineNo">807</span><a name="line.807"></a>
-<span class="sourceLineNo">808</span>  /**<a name="line.808"></a>
-<span class="sourceLineNo">809</span>   * Method for retrieving the scan's offset per row per column<a name="line.809"></a>
-<span class="sourceLineNo">810</span>   * family (#kvs to be skipped)<a name="line.810"></a>
-<span class="sourceLineNo">811</span>   * @return row offset<a name="line.811"></a>
-<span class="sourceLineNo">812</span>   */<a name="line.812"></a>
-<span class="sourceLineNo">813</span>  public int getRowOffsetPerColumnFamily() {<a name="line.813"></a>
-<span class="sourceLineNo">814</span>    return this.storeOffset;<a name="line.814"></a>
-<span class="sourceLineNo">815</span>  }<a name="line.815"></a>
-<span class="sourceLineNo">816</span><a name="line.816"></a>
-<span class="sourceLineNo">817</span>  /**<a name="line.817"></a>
-<span class="sourceLineNo">818</span>   * @return caching the number of rows fetched when calling next on a scanner<a name="line.818"></a>
-<span class="sourceLineNo">819</span>   */<a name="line.819"></a>
-<span class="sourceLineNo">820</span>  public int getCaching() {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>    return this.caching;<a name="line.821"></a>
-<span class="sourceLineNo">822</span>  }<a name="line.822"></a>
-<span class="sourceLineNo">823</span><a name="line.823"></a>
-<span class="sourceLineNo">824</span>  /**<a name="line.824"></a>
-<span class="sourceLineNo">825</span>   * @return TimeRange<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   */<a name="line.826"></a>
-<span class="sourceLineNo">827</span>  public TimeRange getTimeRange() {<a name="line.827"></a>
-<span class="sourceLineNo">828</span>    return this.tr;<a name="line.828"></a>
-<span class="sourceLineNo">829</span>  }<a name="line.829"></a>
-<span class="sourceLineNo">830</span><a name="line.830"></a>
-<span class="sourceLineNo">831</span>  /**<a name="line.831"></a>
-<span class="sourceLineNo">832</span>   * @return RowFilter<a name="line.832"></a>
-<span class="sourceLineNo">833</span>   */<a name="line.833"></a>
-<span class="sourceLineNo">834</span>  @Override<a name="line.834"></a>
-<span class="sourceLineNo">835</span>  public Filter getFilter() {<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    return filter;<a name="line.836"></a>
-<span class="sourceLineNo">837</span>  }<a name="line.837"></a>
-<span class="sourceLineNo">838</span><a name="line.838"></a>
-<span class="sourceLineNo">839</span>  /**<a name="line.839"></a>
-<span class="sourceLineNo">840</span>   * @return true is a filter has been specified, false if not<a name="line.840"></a>
-<span class="sourceLineNo">841</span>   */<a name="line.841"></a>
-<span class="sourceLineNo">842</span>  public boolean hasFilter() {<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    return filter != null;<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  }<a name="line.844"></a>
-<span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  /**<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   * Set whether blocks should be cached for this Scan.<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * &lt;p&gt;<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * This is true by default.  When true, default settings of the table and<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * family are used (this will never override caching blocks if the block<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   * cache is disabled for that family or entirely).<a name="line.851"></a>
-<span class="sourceLineNo">852</span>   *<a name="line.852"></a>
-<span class="sourceLineNo">853</span>   * @param cacheBlocks if false, default settings are overridden and blocks<a name="line.853"></a>
-<span class="sourceLineNo">854</span>   * will not be cached<a name="line.854"></a>
-<span class="sourceLineNo">855</span>   */<a name="line.855"></a>
-<span class="sourceLineNo">856</span>  public Scan setCacheBlocks(boolean cacheBlocks) {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    this.cacheBlocks = cacheBlocks;<a name="line.857"></a>
-<span class="sourceLineNo">858</span>    return this;<a name="line.858"></a>
-<span class="sourceLineNo">859</span>  }<a name="line.859"></a>
-<span class="sourceLineNo">860</span><a name="line.860"></a>
-<span class="sourceLineNo">861</span>  /**<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   * Get whether blocks should be cached for this Scan.<a name="line.862"></a>
-<span class="sourceLineNo">863</span>   * @return true if default caching should be used, false if blocks should not<a name="line.863"></a>
-<span class="sourceLineNo">864</span>   * be cached<a name="line.864"></a>
-<span class="sourceLineNo">865</span>   */<a name="line.865"></a>
-<span class="sourceLineNo">866</span>  public boolean getCacheBlocks() {<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    return cacheBlocks;<a name="line.867"></a>
-<span class="sourceLineNo">868</span>  }<a name="line.868"></a>
-<span class="sourceLineNo">869</span><a name="line.869"></a>
-<span class="sourceLineNo">870</span>  /**<a name="line.870"></a>
-<span class="sourceLineNo">871</span>   * Set whether this scan is a reversed one<a name="line.871"></a>
-<span class="sourceLineNo">872</span>   * &lt;p&gt;<a name="line.872"></a>
-<span class="sourceLineNo">873</span>   * This is false by default which means forward(normal) scan.<a name="line.873"></a>
-<span class="sourceLineNo">874</span>   *<a name="line.874"></a>
-<span class="sourceLineNo">875</span>   * @param reversed if true, scan will be backward order<a name="line.875"></a>
-<span class="sourceLineNo">876</span>   * @return this<a name="line.876"></a>
-<span class="sourceLineNo">877</span>   */<a name="line.877"></a>
-<span class="sourceLineNo">878</span>  public Scan setReversed(boolean reversed) {<a name="line.878"></a>
-<span class="sourceLineNo">879</span>    this.reversed = reversed;<a name="line.879"></a>
-<span class="sourceLineNo">880</span>    return this;<a name="line.880"></a>
-<span class="sourceLineNo">881</span>  }<a name="line.881"></a>
-<span class="sourceLineNo">882</span><a name="line.882"></a>
-<span class="sourceLineNo">883</span>  /**<a name="line.883"></a>
-<span class="sourceLineNo">884</span>   * Get whether this scan is a reversed one.<a name="line.884"></a>
-<span class="sourceLineNo">885</span>   * @return true if backward scan, false if forward(default) scan<a name="line.885"></a>
-<span class="sourceLineNo">886</span>   */<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  public boolean isReversed() {<a name="line.887"></a>
-<span class="sourceLineNo">888</span>    return reversed;<a name="line.888"></a>
-<span class="sourceLineNo">889</span>  }<a name="line.889"></a>
-<span class="sourceLineNo">890</span><a name="line.890"></a>
-<span class="sourceLineNo">891</span>  /**<a name="line.891"></a>
-<span class="sourceLineNo">892</span>   * Setting whether the caller wants to see the partial results when server returns<a name="line.892"></a>
-<span class="sourceLineNo">893</span>   * less-than-expected cells. It is helpful while scanning a huge row to prevent OOM at client.<a name="line.893"></a>
-<span class="sourceLineNo">894</span>   * By default this value is false and the complete results will be assembled client side<a name="line.894"></a>
-<span class="sourceLineNo">895</span>   * before being delivered to the caller.<a name="line.895"></a>
-<span class="sourceLineNo">896</span>   * @param allowPartialResults<a name="line.896"></a>
-<span class="sourceLineNo">897</span>   * @return this<a name="line.897"></a>
-<span class="sourceLineNo">898</span>   * @see Result#mayHaveMoreCellsInRow()<a name="line.898"></a>
-<span class="sourceLineNo">899</span>   * @see #setBatch(int)<a name="line.899"></a>
-<span class="sourceLineNo">900</span>   */<a name="line.900"></a>
-<span class="sourceLineNo">901</span>  public Scan setAllowPartialResults(final boolean allowPartialResults) {<a name="line.901"></a>
-<span class="sourceLineNo">902</span>    this.allowPartialResults = allowPartialResults;<a name="line.902"></a>
-<span class="sourceLineNo">903</span>    return this;<a name="line.903"></a>
-<span class="sourceLineNo">904</span>  }<a name="line.904"></a>
-<span class="sourceLineNo">905</span><a name="line.905"></a>
-<span class="sourceLineNo">906</span>  /**<a name="line.906"></a>
-<span class="sourceLineNo">907</span>   * @return true when the constructor of this scan understands that the results they will see may<a name="line.907"></a>
-<span class="sourceLineNo">908</span>   *         only represent a partial portion of a row. The entire row would be retrieved by<a name="line.908"></a>
-<span class="sourceLineNo">909</span>   *         subsequent calls to {@link ResultScanner#next()}<a name="line.909"></a>
-<span class="sourceLineNo">910</span>   */<a name="line.910"></a>
-<span class="sourceLineNo">911</span>  public boolean getAllowPartialResults() {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>    return allowPartialResults;<a name="line.912"></a>
-<span class="sourceLineNo">913</span>  }<a name="line.913"></a>
-<span class="sourceLineNo">914</span><a name="line.914"></a>
-<span class="sourceLineNo">915</span>  @Override<a name="line.915"></a>
-<span class="sourceLineNo">916</span>  public Scan setLoadColumnFamiliesOnDemand(boolean value) {<a name="line.916"></a>
-<span class="sourceLineNo">917</span>    return (Scan) super.setLoadColumnFamiliesOnDemand(value);<a name="line.917"></a>
-<span class="sourceLineNo">918</span>  }<a name="line.918"></a>
-<span class="sourceLineNo">919</span><a name="line.919"></a>
-<span class="sourceLineNo">920</span>  /**<a name="line.920"></a>
-<span class="sourceLineNo">921</span>   * Compile the table and column family (i.e. schema) information<a name="line.921"></a>
-<span class="sourceLineNo">922</span>   * into a String. Useful for parsing and aggregation by debugging,<a name="line.922"></a>
-<span class="sourceLineNo">923</span>   * logging, and administration tools.<a name="line.923"></a>
-<span class="sourceLineNo">924</span>   * @return Map<a name="line.924"></a>
-<span class="sourceLineNo">925</span>   */<a name="line.925"></a>
-<span class="sourceLineNo">926</span>  @Override<a name="line.926"></a>
-<span class="sourceLineNo">927</span>  public Map&lt;String, Object&gt; getFingerprint() {<a name="line.927"></a>
-<span class="sourceLineNo">928</span>    Map&lt;String, Object&gt; map = new HashMap&lt;&gt;();<a name="line.928"></a>
-<span class="sourceLineNo">929</span>    List&lt;String&gt; families = new ArrayList&lt;&gt;();<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    if(this.familyMap.isEmpty()) {<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      map.put("families", "ALL");<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      return map;<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    } else {<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      map.put("families", families);<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    for (Map.Entry&lt;byte [], NavigableSet&lt;byte[]&gt;&gt; entry :<a name="line.936"></a>
-<span class="sourceLineNo">937</span>        this.familyMap.entrySet()) {<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      families.add(Bytes.toStringBinary(entry.getKey()));<a name="line.938"></a>
-<span class="sourceLineNo">939</span>    }<a name="line.939"></a>
-<span class="sourceLineNo">940</span>    return map;<a name="line.940"></a>
-<span class="sourceLineNo">941</span>  }<a name="line.941"></a>
-<span class="sourceLineNo">942</span><a name="line.942"></a>
-<span class="sourceLineNo">943</span>  /**<a name="line.943"></a>
-<span class="sourceLineNo">944</span>   * Compile the details beyond the scope of getFingerprint (row, columns,<a name="line.944"></a>
-<span class="sourceLineNo">945</span>   * timestamps, etc.) into a Map along with the fingerprinted information.<a name="line.945"></a>
-<span class="sourceLineNo">946</span>   * Useful for debugging, logging, and administration tools.<a name="line.946"></a>
-<span class="sourceLineNo">947</span>   * @param maxCols a limit on the number of columns output prior to truncation<a name="line.947"></a>
-<span class="sourceLineNo">948</span>   * @return Map<a name="line.948"></a>
-<span class="sourceLineNo">949</span>   */<a name="line.949"></a>
-<span class="sourceLineNo">950</span>  @Override<a name="line.950"></a>
-<span class="sourceLineNo">951</span>  public Map&lt;String, Object&gt; toMap(int maxCols) {<a name="line.951"></a>
-<span class="sourceLineNo">952</span>    // start with the fingerpring map and build on top of it<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    Map&lt;String, Object&gt; map = getFingerprint();<a name="line.953"></a>
-<span class="sourceLineNo">954</span>    // map from families to column list replaces fingerprint's list of families<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    Map&lt;String, List&lt;String&gt;&gt; familyColumns = new HashMap&lt;&gt;();<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    map.put("families", familyColumns);<a name="line.956"></a>
-<span class="sourceLineNo">957</span>    // add scalar information first<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    map.put("startRow", Bytes.toStringBinary(this.startRow));<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    map.put("stopRow", Bytes.toStringBinary(this.stopRow));<a name="line.959"></a>
-<span class="sourceLineNo">960</span>    map.put("maxVersions", this.maxVersions);<a name="line.960"></a>
-<span class="sourceLineNo">961</span>    map.put("batch", this.batch);<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    map.put("caching", this.caching);<a name="line.962"></a>
-<span class="sourceLineNo">963</span>    map.put("maxResultSize", this.maxResultSize);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    map.put("cacheBlocks", this.cacheBlocks);<a name="line.964"></a>
-<span class="sourceLineNo">965</span>    map.put("loadColumnFamiliesOnDemand", this.loadColumnFamiliesOnDemand);<a name="line.965"></a>
-<span class="sourceLineNo">966</span>    List&lt;Long&gt; timeRange = new ArrayList&lt;&gt;(2);<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    timeRange.add(this.tr.getMin());<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    timeRange.add(this.tr.getMax());<a name="line.968"></a>
-<span class="sourceLineNo">969</span>    map.put("timeRange", timeRange);<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    int colCount = 0;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    // iterate through affected families and list out up to maxCols columns<a name="line.971"></a>
-<span class="sourceLineNo">972</span>    for (Map.Entry&lt;byte [], NavigableSet&lt;byte[]&gt;&gt; entry :<a name="line.972"></a>
-<span class="sourceLineNo">973</span>      this.familyMap.entrySet()) {<a name="line.973"></a>
-<span class="sourceLineNo">974</span>      List&lt;String&gt; columns = new ArrayList&lt;&gt;();<a name="line.974"></a>
-<span class="sourceLineNo">975</span>      familyColumns.put(Bytes.toStringBinary(entry.getKey()), columns);<a name="line.975"></a>
-<span class="sourceLineNo">976</span>      if(entry.getValue() == null) {<a name="line.976"></a>
-<span class="sourceLineNo">977</span>        colCount++;<a name="line.977"></a>
-<span class="sourceLineNo">978</span>        --maxCols;<a name="line.978"></a>
-<span class="sourceLineNo">979</span>        columns.add("ALL");<a name="line.979"></a>
-<span class="sourceLineNo">980</span>      } else {<a name="line.980"></a>
-<span class="sourceLineNo">981</span>        colCount += entry.getValue().size();<a name="line.981"></a>
-<span class="sourceLineNo">982</span>        if (maxCols &lt;= 0) {<a name="line.982"></a>
-<span class="sourceLineNo">983</span>          continue;<a name="line.983"></a>
-<span class="sourceLineNo">984</span>        }<a name="line.984"></a>
-<span class="sourceLineNo">985</span>        for (byte [] column : entry.getValue()) {<a name="line.985"></a>
-<span class="sourceLineNo">986</span>          if (--maxCols &lt;= 0) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>            continue;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>          }<a name="line.988"></a>
-<span class="sourceLineNo">989</span>          columns.add(Bytes.toStringBinary(column));<a name="line.989"></a>
-<span class="sourceLineNo">990</span>        }<a name="line.990"></a>
-<span class="sourceLineNo">991</span>      }<a name="line.991"></a>
-<span class="sourceLineNo">992</span>    }<a name="line.992"></a>
-<span class="sourceLineNo">993</span>    map.put("totalColumns", colCount);<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    if (this.filter != null) {<a name="line.994"></a>
-<span class="sourceLineNo">995</span>      map.put("filter", this.filter.toString());<a name="line.995"></a>
-<span class="sourceLineNo">996</span>    }<a name="line.996"></a>
-<span class="sourceLineNo">997</span>    // add the id if set<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    if (getId() != null) {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>      map.put("id", getId());<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    }<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    return map;<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>  }<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>  /**<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>   * Enable/disable "raw" mode for this scan.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>   * If "raw" is enabled the scan will return all<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>   * delete marker and deleted rows that have not<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>   * been collected, yet.<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>   * This is mostly useful for Scan on column families<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>   * that have KEEP_DELETED_ROWS enabled.<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>   * It is an error to specify any column when "raw" is set.<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>   * @param raw True/False to enable/disable "raw" mode.<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>   */<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  public Scan setRaw(boolean raw) {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>    setAttribute(RAW_ATTR, Bytes.toBytes(raw));<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    return this;<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>  }<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span><a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>  /**<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>   * @return True if this Scan is in "raw" mode.<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>   */<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>  public boolean isRaw() {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>    byte[] attr = getAttribute(RAW_ATTR);<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    return attr == null ? false : Bytes.toBoolean(attr);<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>  }<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span><a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>  /**<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>   * Set whether this scan is a small scan<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>   * &lt;p&gt;<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>   * Small scan should use pread and big scan can use seek + read seek + read is fast but can cause<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>   * two problem (1) resource contention (2) cause too much network io [89-fb] Using pread for<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>   * non-compaction read request https://issues.apache.org/jira/browse/HBASE-7266 On the other hand,<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>   * if setting it true, we would do openScanner,next,closeScanner in one RPC call. It means the<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>   * better performance for small scan. [HBASE-9488]. Generally, if the scan range is within one<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>   * data block(64KB), it could be considered as a small scan.<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>   * @param small<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>   * @deprecated since 2.0.0. Use {@link #setLimit(int)} and {@link #setReadType(ReadType)} instead.<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>   *             And for the one rpc optimization, now we will also fetch data when openScanner, and<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>   *             if the number of rows reaches the limit then we will close the scanner<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>   *             automatically which means we will fall back to one rpc.<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>   * @see #setLimit(int)<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>   * @see #setReadType(ReadType)<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>   */<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>  @Deprecated<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>  public Scan setSmall(boolean small) {<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>    this.small = small;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>    this.readType = ReadType.PREAD;<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>    return this;<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>  }<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span><a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>  /**<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>   * Get whether this scan is a small scan<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>   * @return true if small scan<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>   * @deprecated since 2.0.0. See the comment of {@link #setSmall(boolean)}<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>   */<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>  @Deprecated<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>  public boolean isSmall() {<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    return small;<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>  }<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span><a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>  @Override<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>  public Scan setAttribute(String name, byte[] value) {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>    return (Scan) super.setAttribute(name, value);<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>  }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span><a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>  @Override<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>  public Scan setId(String id) {<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    return (Scan) super.setId(id);<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>  }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span><a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  @Override<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>  public Scan setAuthorizations(Authorizations authorizations) {<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    return (Scan) super.setAuthorizations(authorizations);<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>  }<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span><a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>  @Override<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>  public Scan setACL(Map&lt;String, Permission&gt; perms) {<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>    return (Scan) super.setACL(perms);<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>  }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span><a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>  @Override<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  public Scan setACL(String user, Permission perms) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>    return (Scan) super.setACL(user, perms);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>  }<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span><a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>  @Override<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>  public Scan setConsistency(Consistency consistency) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>    return (Scan) super.setConsistency(consistency);<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>  }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span><a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>  @Override<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>  public Scan

<TRUNCATED>

[03/16] hbase-site git commit: Published site at 4f2dfd387779968d3b76a22f1f4189d3278b202d.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestScan.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestScan.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestScan.html
index 6477ba9..8601051 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestScan.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestScan.html
@@ -32,185 +32,273 @@
 <span class="sourceLineNo">024</span>import java.io.IOException;<a name="line.24"></a>
 <span class="sourceLineNo">025</span>import java.util.Arrays;<a name="line.25"></a>
 <span class="sourceLineNo">026</span>import java.util.Set;<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.HConstants;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.filter.FilterList;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.security.visibility.Authorizations;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.junit.Assert;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.junit.ClassRule;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.junit.Test;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.junit.experimental.categories.Category;<a name="line.37"></a>
-<span class="sourceLineNo">038</span><a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos;<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>// TODO: cover more test cases<a name="line.42"></a>
-<span class="sourceLineNo">043</span>@Category({ClientTests.class, SmallTests.class})<a name="line.43"></a>
-<span class="sourceLineNo">044</span>public class TestScan {<a name="line.44"></a>
-<span class="sourceLineNo">045</span><a name="line.45"></a>
-<span class="sourceLineNo">046</span>  @ClassRule<a name="line.46"></a>
-<span class="sourceLineNo">047</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.47"></a>
-<span class="sourceLineNo">048</span>      HBaseClassTestRule.forClass(TestScan.class);<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>  @Test<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  public void testAttributesSerialization() throws IOException {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    Scan scan = new Scan();<a name="line.52"></a>
-<span class="sourceLineNo">053</span>    scan.setAttribute("attribute1", Bytes.toBytes("value1"));<a name="line.53"></a>
-<span class="sourceLineNo">054</span>    scan.setAttribute("attribute2", Bytes.toBytes("value2"));<a name="line.54"></a>
-<span class="sourceLineNo">055</span>    scan.setAttribute("attribute3", Bytes.toBytes("value3"));<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>    ClientProtos.Scan scanProto = ProtobufUtil.toScan(scan);<a name="line.57"></a>
-<span class="sourceLineNo">058</span><a name="line.58"></a>
-<span class="sourceLineNo">059</span>    Scan scan2 = ProtobufUtil.toScan(scanProto);<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>    Assert.assertNull(scan2.getAttribute("absent"));<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"), scan2.getAttribute("attribute1")));<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"), scan2.getAttribute("attribute2")));<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    Assert.assertTrue(Arrays.equals(Bytes.toBytes("value3"), scan2.getAttribute("attribute3")));<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    Assert.assertEquals(3, scan2.getAttributesMap().size());<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  }<a name="line.66"></a>
-<span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span>  @Test<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  public void testGetToScan() throws IOException {<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    Get get = new Get(Bytes.toBytes(1));<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    get.setCacheBlocks(true)<a name="line.71"></a>
-<span class="sourceLineNo">072</span>            .setConsistency(Consistency.TIMELINE)<a name="line.72"></a>
-<span class="sourceLineNo">073</span>            .setFilter(new FilterList())<a name="line.73"></a>
-<span class="sourceLineNo">074</span>            .setId("get")<a name="line.74"></a>
-<span class="sourceLineNo">075</span>            .setIsolationLevel(IsolationLevel.READ_COMMITTED)<a name="line.75"></a>
-<span class="sourceLineNo">076</span>            .setLoadColumnFamiliesOnDemand(false)<a name="line.76"></a>
-<span class="sourceLineNo">077</span>            .setMaxResultsPerColumnFamily(1000)<a name="line.77"></a>
-<span class="sourceLineNo">078</span>            .setMaxVersions(9999)<a name="line.78"></a>
-<span class="sourceLineNo">079</span>            .setRowOffsetPerColumnFamily(5)<a name="line.79"></a>
-<span class="sourceLineNo">080</span>            .setTimeRange(0, 13)<a name="line.80"></a>
-<span class="sourceLineNo">081</span>            .setAttribute("att_v0", Bytes.toBytes("att_v0"))<a name="line.81"></a>
-<span class="sourceLineNo">082</span>            .setColumnFamilyTimeRange(Bytes.toBytes("cf"), 0, 123);<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    Scan scan = new Scan(get);<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    assertEquals(get.getCacheBlocks(), scan.getCacheBlocks());<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    assertEquals(get.getConsistency(), scan.getConsistency());<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    assertEquals(get.getFilter(), scan.getFilter());<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    assertEquals(get.getId(), scan.getId());<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    assertEquals(get.getIsolationLevel(), scan.getIsolationLevel());<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    assertEquals(get.getLoadColumnFamiliesOnDemandValue(), scan.getLoadColumnFamiliesOnDemandValue());<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    assertEquals(get.getMaxResultsPerColumnFamily(), scan.getMaxResultsPerColumnFamily());<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    assertEquals(get.getMaxVersions(), scan.getMaxVersions());<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    assertEquals(get.getRowOffsetPerColumnFamily(), scan.getRowOffsetPerColumnFamily());<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    assertEquals(get.getTimeRange().getMin(), scan.getTimeRange().getMin());<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    assertEquals(get.getTimeRange().getMax(), scan.getTimeRange().getMax());<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    assertTrue(Bytes.equals(get.getAttribute("att_v0"), scan.getAttribute("att_v0")));<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    assertEquals(get.getColumnFamilyTimeRange().get(Bytes.toBytes("cf")).getMin(),<a name="line.96"></a>
-<span class="sourceLineNo">097</span>            scan.getColumnFamilyTimeRange().get(Bytes.toBytes("cf")).getMin());<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    assertEquals(get.getColumnFamilyTimeRange().get(Bytes.toBytes("cf")).getMax(),<a name="line.98"></a>
-<span class="sourceLineNo">099</span>            scan.getColumnFamilyTimeRange().get(Bytes.toBytes("cf")).getMax());<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>  @Test<a name="line.102"></a>
-<span class="sourceLineNo">103</span>  public void testScanAttributes() {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    Scan scan = new Scan();<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    Assert.assertTrue(scan.getAttributesMap().isEmpty());<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    Assert.assertNull(scan.getAttribute("absent"));<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>    scan.setAttribute("absent", null);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    Assert.assertTrue(scan.getAttributesMap().isEmpty());<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    Assert.assertNull(scan.getAttribute("absent"));<a name="line.110"></a>
-<span class="sourceLineNo">111</span><a name="line.111"></a>
-<span class="sourceLineNo">112</span>    // adding attribute<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    scan.setAttribute("attribute1", Bytes.toBytes("value1"));<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"), scan.getAttribute("attribute1")));<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    Assert.assertEquals(1, scan.getAttributesMap().size());<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"), scan.getAttributesMap().get("attribute1")));<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>    // overriding attribute value<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    scan.setAttribute("attribute1", Bytes.toBytes("value12"));<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    Assert.assertTrue(Arrays.equals(Bytes.toBytes("value12"), scan.getAttribute("attribute1")));<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    Assert.assertEquals(1, scan.getAttributesMap().size());<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    Assert.assertTrue(Arrays.equals(Bytes.toBytes("value12"), scan.getAttributesMap().get("attribute1")));<a name="line.122"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.commons.lang3.builder.EqualsBuilder;<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.HConstants;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.filter.FilterList;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.security.access.Permission;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.security.visibility.Authorizations;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.junit.Assert;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.junit.ClassRule;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.junit.Test;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.junit.experimental.categories.Category;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos;<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>// TODO: cover more test cases<a name="line.45"></a>
+<span class="sourceLineNo">046</span>@Category({ClientTests.class, SmallTests.class})<a name="line.46"></a>
+<span class="sourceLineNo">047</span>public class TestScan {<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>  @ClassRule<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.50"></a>
+<span class="sourceLineNo">051</span>      HBaseClassTestRule.forClass(TestScan.class);<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>  @Test<a name="line.53"></a>
+<span class="sourceLineNo">054</span>  public void testAttributesSerialization() throws IOException {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>    Scan scan = new Scan();<a name="line.55"></a>
+<span class="sourceLineNo">056</span>    scan.setAttribute("attribute1", Bytes.toBytes("value1"));<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    scan.setAttribute("attribute2", Bytes.toBytes("value2"));<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    scan.setAttribute("attribute3", Bytes.toBytes("value3"));<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>    ClientProtos.Scan scanProto = ProtobufUtil.toScan(scan);<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>    Scan scan2 = ProtobufUtil.toScan(scanProto);<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>    Assert.assertNull(scan2.getAttribute("absent"));<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"), scan2.getAttribute("attribute1")));<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"), scan2.getAttribute("attribute2")));<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    Assert.assertTrue(Arrays.equals(Bytes.toBytes("value3"), scan2.getAttribute("attribute3")));<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    Assert.assertEquals(3, scan2.getAttributesMap().size());<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  @Test<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  public void testGetToScan() throws Exception {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    Get get = new Get(Bytes.toBytes(1));<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    get.setCacheBlocks(true)<a name="line.74"></a>
+<span class="sourceLineNo">075</span>            .setConsistency(Consistency.TIMELINE)<a name="line.75"></a>
+<span class="sourceLineNo">076</span>            .setFilter(new FilterList())<a name="line.76"></a>
+<span class="sourceLineNo">077</span>            .setId("get")<a name="line.77"></a>
+<span class="sourceLineNo">078</span>            .setIsolationLevel(IsolationLevel.READ_COMMITTED)<a name="line.78"></a>
+<span class="sourceLineNo">079</span>            .setLoadColumnFamiliesOnDemand(false)<a name="line.79"></a>
+<span class="sourceLineNo">080</span>            .setMaxResultsPerColumnFamily(1000)<a name="line.80"></a>
+<span class="sourceLineNo">081</span>            .setMaxVersions(9999)<a name="line.81"></a>
+<span class="sourceLineNo">082</span>            .setRowOffsetPerColumnFamily(5)<a name="line.82"></a>
+<span class="sourceLineNo">083</span>            .setTimeRange(0, 13)<a name="line.83"></a>
+<span class="sourceLineNo">084</span>            .setAttribute("att_v0", Bytes.toBytes("att_v0"))<a name="line.84"></a>
+<span class="sourceLineNo">085</span>            .setColumnFamilyTimeRange(Bytes.toBytes("cf"), 0, 123)<a name="line.85"></a>
+<span class="sourceLineNo">086</span>            .setReplicaId(3)<a name="line.86"></a>
+<span class="sourceLineNo">087</span>            .setACL("test_user", new Permission(Permission.Action.READ))<a name="line.87"></a>
+<span class="sourceLineNo">088</span>            .setAuthorizations(new Authorizations("test_label"))<a name="line.88"></a>
+<span class="sourceLineNo">089</span>            .setPriority(3);<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>    Scan scan = new Scan(get);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    assertEquals(get.getCacheBlocks(), scan.getCacheBlocks());<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    assertEquals(get.getConsistency(), scan.getConsistency());<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    assertEquals(get.getFilter(), scan.getFilter());<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    assertEquals(get.getId(), scan.getId());<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    assertEquals(get.getIsolationLevel(), scan.getIsolationLevel());<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    assertEquals(get.getLoadColumnFamiliesOnDemandValue(), scan.getLoadColumnFamiliesOnDemandValue());<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    assertEquals(get.getMaxResultsPerColumnFamily(), scan.getMaxResultsPerColumnFamily());<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    assertEquals(get.getMaxVersions(), scan.getMaxVersions());<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    assertEquals(get.getRowOffsetPerColumnFamily(), scan.getRowOffsetPerColumnFamily());<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    assertEquals(get.getTimeRange().getMin(), scan.getTimeRange().getMin());<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    assertEquals(get.getTimeRange().getMax(), scan.getTimeRange().getMax());<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    assertTrue(Bytes.equals(get.getAttribute("att_v0"), scan.getAttribute("att_v0")));<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    assertEquals(get.getColumnFamilyTimeRange().get(Bytes.toBytes("cf")).getMin(),<a name="line.104"></a>
+<span class="sourceLineNo">105</span>            scan.getColumnFamilyTimeRange().get(Bytes.toBytes("cf")).getMin());<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    assertEquals(get.getColumnFamilyTimeRange().get(Bytes.toBytes("cf")).getMax(),<a name="line.106"></a>
+<span class="sourceLineNo">107</span>            scan.getColumnFamilyTimeRange().get(Bytes.toBytes("cf")).getMax());<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    assertEquals(get.getReplicaId(), scan.getReplicaId());<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    assertEquals(get.getACL(), scan.getACL());<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    assertEquals(get.getAuthorizations().getLabels(), scan.getAuthorizations().getLabels());<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    assertEquals(get.getPriority(), scan.getPriority());<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>  @Test<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  public void testScanAttributes() {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    Scan scan = new Scan();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    Assert.assertTrue(scan.getAttributesMap().isEmpty());<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    Assert.assertNull(scan.getAttribute("absent"));<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>    scan.setAttribute("absent", null);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    Assert.assertTrue(scan.getAttributesMap().isEmpty());<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    Assert.assertNull(scan.getAttribute("absent"));<a name="line.122"></a>
 <span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>    // adding another attribute<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    scan.setAttribute("attribute2", Bytes.toBytes("value2"));<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"), scan.getAttribute("attribute2")));<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    Assert.assertEquals(2, scan.getAttributesMap().size());<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"), scan.getAttributesMap().get("attribute2")));<a name="line.128"></a>
+<span class="sourceLineNo">124</span>    // adding attribute<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    scan.setAttribute("attribute1", Bytes.toBytes("value1"));<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"), scan.getAttribute("attribute1")));<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    Assert.assertEquals(1, scan.getAttributesMap().size());<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    Assert.assertTrue(Arrays.equals(Bytes.toBytes("value1"), scan.getAttributesMap().get("attribute1")));<a name="line.128"></a>
 <span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span>    // removing attribute<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    scan.setAttribute("attribute2", null);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    Assert.assertNull(scan.getAttribute("attribute2"));<a name="line.132"></a>
+<span class="sourceLineNo">130</span>    // overriding attribute value<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    scan.setAttribute("attribute1", Bytes.toBytes("value12"));<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    Assert.assertTrue(Arrays.equals(Bytes.toBytes("value12"), scan.getAttribute("attribute1")));<a name="line.132"></a>
 <span class="sourceLineNo">133</span>    Assert.assertEquals(1, scan.getAttributesMap().size());<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    Assert.assertNull(scan.getAttributesMap().get("attribute2"));<a name="line.134"></a>
+<span class="sourceLineNo">134</span>    Assert.assertTrue(Arrays.equals(Bytes.toBytes("value12"), scan.getAttributesMap().get("attribute1")));<a name="line.134"></a>
 <span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    // removing non-existed attribute<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    scan.setAttribute("attribute2", null);<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    Assert.assertNull(scan.getAttribute("attribute2"));<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    Assert.assertEquals(1, scan.getAttributesMap().size());<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    Assert.assertNull(scan.getAttributesMap().get("attribute2"));<a name="line.140"></a>
+<span class="sourceLineNo">136</span>    // adding another attribute<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    scan.setAttribute("attribute2", Bytes.toBytes("value2"));<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"), scan.getAttribute("attribute2")));<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    Assert.assertEquals(2, scan.getAttributesMap().size());<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    Assert.assertTrue(Arrays.equals(Bytes.toBytes("value2"), scan.getAttributesMap().get("attribute2")));<a name="line.140"></a>
 <span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span>    // removing another attribute<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    scan.setAttribute("attribute1", null);<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    Assert.assertNull(scan.getAttribute("attribute1"));<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    Assert.assertTrue(scan.getAttributesMap().isEmpty());<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    Assert.assertNull(scan.getAttributesMap().get("attribute1"));<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<a name="line.149"></a>
-<span class="sourceLineNo">150</span>  public void testNullQualifier() {<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    Scan scan = new Scan();<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    byte[] family = Bytes.toBytes("family");<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    scan.addColumn(family, null);<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    Set&lt;byte[]&gt; qualifiers = scan.getFamilyMap().get(family);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    Assert.assertEquals(1, qualifiers.size());<a name="line.155"></a>
-<span class="sourceLineNo">156</span>  }<a name="line.156"></a>
-<span class="sourceLineNo">157</span><a name="line.157"></a>
-<span class="sourceLineNo">158</span>  @Test<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  public void testSetAuthorizations() {<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    Scan scan = new Scan();<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    try {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      scan.setAuthorizations(new Authorizations("\u002b|\u0029"));<a name="line.162"></a>
-<span class="sourceLineNo">163</span>      scan.setAuthorizations(new Authorizations("A", "B", "0123", "A0", "1A1", "_a"));<a name="line.163"></a>
-<span class="sourceLineNo">164</span>      scan.setAuthorizations(new Authorizations("A|B"));<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      scan.setAuthorizations(new Authorizations("A&amp;B"));<a name="line.165"></a>
-<span class="sourceLineNo">166</span>      scan.setAuthorizations(new Authorizations("!B"));<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      scan.setAuthorizations(new Authorizations("A", "(A)"));<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      scan.setAuthorizations(new Authorizations("A", "{A"));<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      scan.setAuthorizations(new Authorizations(" "));<a name="line.169"></a>
-<span class="sourceLineNo">170</span>      scan.setAuthorizations(new Authorizations(":B"));<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      scan.setAuthorizations(new Authorizations("-B"));<a name="line.171"></a>
-<span class="sourceLineNo">172</span>      scan.setAuthorizations(new Authorizations(".B"));<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      scan.setAuthorizations(new Authorizations("/B"));<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    } catch (IllegalArgumentException e) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      fail("should not throw exception");<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    }<a name="line.176"></a>
-<span class="sourceLineNo">177</span>  }<a name="line.177"></a>
-<span class="sourceLineNo">178</span><a name="line.178"></a>
-<span class="sourceLineNo">179</span>  @Test<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  public void testSetStartRowAndSetStopRow() {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    Scan scan = new Scan();<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    scan.setStartRow(null);<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    scan.setStartRow(new byte[1]);<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    scan.setStartRow(new byte[HConstants.MAX_ROW_LENGTH]);<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    try {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      scan.setStartRow(new byte[HConstants.MAX_ROW_LENGTH+1]);<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      fail("should've thrown exception");<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    } catch (IllegalArgumentException iae) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    } catch (Exception e) {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      fail("expected IllegalArgumentException to be thrown");<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>    scan.setStopRow(null);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    scan.setStopRow(new byte[1]);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    scan.setStopRow(new byte[HConstants.MAX_ROW_LENGTH]);<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    try {<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      scan.setStopRow(new byte[HConstants.MAX_ROW_LENGTH+1]);<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      fail("should've thrown exception");<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    } catch (IllegalArgumentException iae) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    } catch (Exception e) {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      fail("expected IllegalArgumentException to be thrown");<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>}<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">142</span>    // removing attribute<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    scan.setAttribute("attribute2", null);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    Assert.assertNull(scan.getAttribute("attribute2"));<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    Assert.assertEquals(1, scan.getAttributesMap().size());<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    Assert.assertNull(scan.getAttributesMap().get("attribute2"));<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>    // removing non-existed attribute<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    scan.setAttribute("attribute2", null);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    Assert.assertNull(scan.getAttribute("attribute2"));<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    Assert.assertEquals(1, scan.getAttributesMap().size());<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    Assert.assertNull(scan.getAttributesMap().get("attribute2"));<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>    // removing another attribute<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    scan.setAttribute("attribute1", null);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    Assert.assertNull(scan.getAttribute("attribute1"));<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    Assert.assertTrue(scan.getAttributesMap().isEmpty());<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    Assert.assertNull(scan.getAttributesMap().get("attribute1"));<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>  @Test<a name="line.161"></a>
+<span class="sourceLineNo">162</span>  public void testNullQualifier() {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    Scan scan = new Scan();<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    byte[] family = Bytes.toBytes("family");<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    scan.addColumn(family, null);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    Set&lt;byte[]&gt; qualifiers = scan.getFamilyMap().get(family);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    Assert.assertEquals(1, qualifiers.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>  @Test<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  public void testSetAuthorizations() {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    Scan scan = new Scan();<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    try {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      scan.setAuthorizations(new Authorizations("\u002b|\u0029"));<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      scan.setAuthorizations(new Authorizations("A", "B", "0123", "A0", "1A1", "_a"));<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      scan.setAuthorizations(new Authorizations("A|B"));<a name="line.176"></a>
+<span class="sourceLineNo">177</span>      scan.setAuthorizations(new Authorizations("A&amp;B"));<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      scan.setAuthorizations(new Authorizations("!B"));<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      scan.setAuthorizations(new Authorizations("A", "(A)"));<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      scan.setAuthorizations(new Authorizations("A", "{A"));<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      scan.setAuthorizations(new Authorizations(" "));<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      scan.setAuthorizations(new Authorizations(":B"));<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      scan.setAuthorizations(new Authorizations("-B"));<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      scan.setAuthorizations(new Authorizations(".B"));<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      scan.setAuthorizations(new Authorizations("/B"));<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    } catch (IllegalArgumentException e) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      fail("should not throw exception");<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>  @Test<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  public void testSetStartRowAndSetStopRow() {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    Scan scan = new Scan();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    scan.setStartRow(null);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    scan.setStartRow(new byte[1]);<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    scan.setStartRow(new byte[HConstants.MAX_ROW_LENGTH]);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    try {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      scan.setStartRow(new byte[HConstants.MAX_ROW_LENGTH+1]);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      fail("should've thrown exception");<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    } catch (IllegalArgumentException iae) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    } catch (Exception e) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      fail("expected IllegalArgumentException to be thrown");<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>    scan.setStopRow(null);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    scan.setStopRow(new byte[1]);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    scan.setStopRow(new byte[HConstants.MAX_ROW_LENGTH]);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    try {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      scan.setStopRow(new byte[HConstants.MAX_ROW_LENGTH+1]);<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      fail("should've thrown exception");<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    } catch (IllegalArgumentException iae) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    } catch (Exception e) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      fail("expected IllegalArgumentException to be thrown");<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><a name="line.216"></a>
+<span class="sourceLineNo">217</span>  @Test<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  public void testScanCopyConstructor() throws Exception {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    Scan scan = new Scan();<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>    scan.addColumn(Bytes.toBytes("cf"), Bytes.toBytes("q"))<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        .setACL("test_user", new Permission(Permission.Action.READ))<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        .setAllowPartialResults(true)<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        .setAsyncPrefetch(false)<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        .setAttribute("test_key", Bytes.toBytes("test_value"))<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        .setAuthorizations(new Authorizations("test_label"))<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        .setBatch(10)<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        .setCacheBlocks(false)<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        .setCaching(10)<a name="line.229"></a>
+<span class="sourceLineNo">230</span>        .setConsistency(Consistency.TIMELINE)<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        .setFilter(new FilterList())<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        .setId("scan_copy_constructor")<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        .setIsolationLevel(IsolationLevel.READ_COMMITTED)<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        .setLimit(100)<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        .setLoadColumnFamiliesOnDemand(false)<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .setMaxResultSize(100)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .setMaxResultsPerColumnFamily(1000)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .readVersions(9999)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .setMvccReadPoint(5)<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        .setNeedCursorResult(true)<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        .setPriority(1)<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        .setRaw(true)<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        .setReplicaId(3)<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        .setReversed(true)<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        .setRowOffsetPerColumnFamily(5)<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        .setRowPrefixFilter(Bytes.toBytes("row_"))<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        .setScanMetricsEnabled(true)<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        .setSmall(true)<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        .setReadType(ReadType.STREAM)<a name="line.249"></a>
+<span class="sourceLineNo">250</span>        .withStartRow(Bytes.toBytes("row_1"))<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        .withStopRow(Bytes.toBytes("row_2"))<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        .setTimeRange(0, 13);<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>    // create a copy of existing scan object<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    Scan scanCopy = new Scan(scan);<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>    // validate fields of copied scan object match with the original scan object<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    assertEquals(scan.getACL(), scanCopy.getACL());<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    assertEquals(scan.getAllowPartialResults(), scanCopy.getAllowPartialResults());<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    assertEquals(scan.getAttribute("test_key"), scanCopy.getAttribute("test_key"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    assertEquals(scan.getAttributeSize(), scanCopy.getAttributeSize());<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    assertEquals(scan.getAttributesMap(), scanCopy.getAttributesMap());<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    assertEquals(scan.getAuthorizations().getLabels(), scanCopy.getAuthorizations().getLabels());<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    assertEquals(scan.getBatch(), scanCopy.getBatch());<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    assertEquals(scan.getCacheBlocks(), scanCopy.getCacheBlocks());<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    assertEquals(scan.getCaching(), scanCopy.getCaching());<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    assertEquals(scan.getConsistency(), scanCopy.getConsistency());<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    assertEquals(scan.getFamilies().length, scanCopy.getFamilies().length);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    assertEquals(scan.getFamilies()[0], scanCopy.getFamilies()[0]);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    assertEquals(scan.getFamilyMap(), scanCopy.getFamilyMap());<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    assertEquals(scan.getFilter(), scanCopy.getFilter());<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    assertEquals(scan.getId(), scanCopy.getId());<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    assertEquals(scan.getIsolationLevel(), scanCopy.getIsolationLevel());<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    assertEquals(scan.getLimit(), scanCopy.getLimit());<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    assertEquals(scan.getLoadColumnFamiliesOnDemandValue(),<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      scanCopy.getLoadColumnFamiliesOnDemandValue());<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    assertEquals(scan.getMaxResultSize(), scanCopy.getMaxResultSize());<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    assertEquals(scan.getMaxResultsPerColumnFamily(), scanCopy.getMaxResultsPerColumnFamily());<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    assertEquals(scan.getMaxVersions(), scanCopy.getMaxVersions());<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    assertEquals(scan.getMvccReadPoint(), scanCopy.getMvccReadPoint());<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    assertEquals(scan.getPriority(), scanCopy.getPriority());<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    assertEquals(scan.getReadType(), scanCopy.getReadType());<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    assertEquals(scan.getReplicaId(), scanCopy.getReplicaId());<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    assertEquals(scan.getRowOffsetPerColumnFamily(), scanCopy.getRowOffsetPerColumnFamily());<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    assertEquals(scan.getStartRow(), scanCopy.getStartRow());<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    assertEquals(scan.getStopRow(), scanCopy.getStopRow());<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    assertEquals(scan.getTimeRange(), scanCopy.getTimeRange());<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>    assertTrue("Make sure copy constructor adds all the fields in the copied object",<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      EqualsBuilder.reflectionEquals(scan, scanCopy));<a name="line.290"></a>
+<span class="sourceLineNo">291</span>  }<a name="line.291"></a>
+<span class="sourceLineNo">292</span>}<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
 
 
 


[15/16] hbase-site git commit: Published site at 4f2dfd387779968d3b76a22f1f4189d3278b202d.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/apidocs/src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html b/apidocs/src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html
index 64dfea4..070e349 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html
@@ -287,984 +287,987 @@
 <span class="sourceLineNo">279</span>    this.limit = scan.getLimit();<a name="line.279"></a>
 <span class="sourceLineNo">280</span>    this.needCursorResult = scan.isNeedCursorResult();<a name="line.280"></a>
 <span class="sourceLineNo">281</span>    setPriority(scan.getPriority());<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>  /**<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   * Builds a scan object with the same specs as get.<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * @param get get to model scan after<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   */<a name="line.287"></a>
-<span class="sourceLineNo">288</span>  public Scan(Get get) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    this.startRow = get.getRow();<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    this.includeStartRow = true;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    this.stopRow = get.getRow();<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    this.includeStopRow = true;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    this.filter = get.getFilter();<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    this.cacheBlocks = get.getCacheBlocks();<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    this.maxVersions = get.getMaxVersions();<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    this.storeLimit = get.getMaxResultsPerColumnFamily();<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    this.storeOffset = get.getRowOffsetPerColumnFamily();<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    this.tr = get.getTimeRange();<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    this.familyMap = get.getFamilyMap();<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    this.asyncPrefetch = false;<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    this.consistency = get.getConsistency();<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    this.setIsolationLevel(get.getIsolationLevel());<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    this.loadColumnFamiliesOnDemand = get.getLoadColumnFamiliesOnDemandValue();<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    for (Map.Entry&lt;String, byte[]&gt; attr : get.getAttributesMap().entrySet()) {<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      setAttribute(attr.getKey(), attr.getValue());<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    }<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    for (Map.Entry&lt;byte[], TimeRange&gt; entry : get.getColumnFamilyTimeRange().entrySet()) {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      TimeRange tr = entry.getValue();<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      setColumnFamilyTimeRange(entry.getKey(), tr.getMin(), tr.getMax());<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    }<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    this.mvccReadPoint = -1L;<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    setPriority(get.getPriority());<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>  public boolean isGetScan() {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    return includeStartRow &amp;&amp; includeStopRow<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        &amp;&amp; ClientUtil.areScanStartRowAndStopRowEqual(this.startRow, this.stopRow);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>  }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>  /**<a name="line.320"></a>
-<span class="sourceLineNo">321</span>   * Get all columns from the specified family.<a name="line.321"></a>
-<span class="sourceLineNo">322</span>   * &lt;p&gt;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>   * Overrides previous calls to addColumn for this family.<a name="line.323"></a>
-<span class="sourceLineNo">324</span>   * @param family family name<a name="line.324"></a>
-<span class="sourceLineNo">325</span>   * @return this<a name="line.325"></a>
-<span class="sourceLineNo">326</span>   */<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public Scan addFamily(byte [] family) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    familyMap.remove(family);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    familyMap.put(family, null);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    return this;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>  }<a name="line.331"></a>
-<span class="sourceLineNo">332</span><a name="line.332"></a>
-<span class="sourceLineNo">333</span>  /**<a name="line.333"></a>
-<span class="sourceLineNo">334</span>   * Get the column from the specified family with the specified qualifier.<a name="line.334"></a>
-<span class="sourceLineNo">335</span>   * &lt;p&gt;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>   * Overrides previous calls to addFamily for this family.<a name="line.336"></a>
-<span class="sourceLineNo">337</span>   * @param family family name<a name="line.337"></a>
-<span class="sourceLineNo">338</span>   * @param qualifier column qualifier<a name="line.338"></a>
-<span class="sourceLineNo">339</span>   * @return this<a name="line.339"></a>
-<span class="sourceLineNo">340</span>   */<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  public Scan addColumn(byte [] family, byte [] qualifier) {<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    NavigableSet&lt;byte []&gt; set = familyMap.get(family);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    if(set == null) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      set = new TreeSet&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      familyMap.put(family, set);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    }<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    if (qualifier == null) {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      qualifier = HConstants.EMPTY_BYTE_ARRAY;<a name="line.348"></a>
+<span class="sourceLineNo">282</span>    readType = scan.getReadType();<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    super.setReplicaId(scan.getReplicaId());<a name="line.283"></a>
+<span class="sourceLineNo">284</span>  }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>  /**<a name="line.286"></a>
+<span class="sourceLineNo">287</span>   * Builds a scan object with the same specs as get.<a name="line.287"></a>
+<span class="sourceLineNo">288</span>   * @param get get to model scan after<a name="line.288"></a>
+<span class="sourceLineNo">289</span>   */<a name="line.289"></a>
+<span class="sourceLineNo">290</span>  public Scan(Get get) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    this.startRow = get.getRow();<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    this.includeStartRow = true;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    this.stopRow = get.getRow();<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    this.includeStopRow = true;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    this.filter = get.getFilter();<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    this.cacheBlocks = get.getCacheBlocks();<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    this.maxVersions = get.getMaxVersions();<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    this.storeLimit = get.getMaxResultsPerColumnFamily();<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    this.storeOffset = get.getRowOffsetPerColumnFamily();<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    this.tr = get.getTimeRange();<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    this.familyMap = get.getFamilyMap();<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    this.asyncPrefetch = false;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    this.consistency = get.getConsistency();<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    this.setIsolationLevel(get.getIsolationLevel());<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    this.loadColumnFamiliesOnDemand = get.getLoadColumnFamiliesOnDemandValue();<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    for (Map.Entry&lt;String, byte[]&gt; attr : get.getAttributesMap().entrySet()) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      setAttribute(attr.getKey(), attr.getValue());<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    }<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    for (Map.Entry&lt;byte[], TimeRange&gt; entry : get.getColumnFamilyTimeRange().entrySet()) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>      TimeRange tr = entry.getValue();<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      setColumnFamilyTimeRange(entry.getKey(), tr.getMin(), tr.getMax());<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    }<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    this.mvccReadPoint = -1L;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    setPriority(get.getPriority());<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    super.setReplicaId(get.getReplicaId());<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>  public boolean isGetScan() {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    return includeStartRow &amp;&amp; includeStopRow<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        &amp;&amp; ClientUtil.areScanStartRowAndStopRowEqual(this.startRow, this.stopRow);<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>   * Get all columns from the specified family.<a name="line.324"></a>
+<span class="sourceLineNo">325</span>   * &lt;p&gt;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>   * Overrides previous calls to addColumn for this family.<a name="line.326"></a>
+<span class="sourceLineNo">327</span>   * @param family family name<a name="line.327"></a>
+<span class="sourceLineNo">328</span>   * @return this<a name="line.328"></a>
+<span class="sourceLineNo">329</span>   */<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  public Scan addFamily(byte [] family) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    familyMap.remove(family);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    familyMap.put(family, null);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    return this;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>  }<a name="line.334"></a>
+<span class="sourceLineNo">335</span><a name="line.335"></a>
+<span class="sourceLineNo">336</span>  /**<a name="line.336"></a>
+<span class="sourceLineNo">337</span>   * Get the column from the specified family with the specified qualifier.<a name="line.337"></a>
+<span class="sourceLineNo">338</span>   * &lt;p&gt;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>   * Overrides previous calls to addFamily for this family.<a name="line.339"></a>
+<span class="sourceLineNo">340</span>   * @param family family name<a name="line.340"></a>
+<span class="sourceLineNo">341</span>   * @param qualifier column qualifier<a name="line.341"></a>
+<span class="sourceLineNo">342</span>   * @return this<a name="line.342"></a>
+<span class="sourceLineNo">343</span>   */<a name="line.343"></a>
+<span class="sourceLineNo">344</span>  public Scan addColumn(byte [] family, byte [] qualifier) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    NavigableSet&lt;byte []&gt; set = familyMap.get(family);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    if(set == null) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      set = new TreeSet&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      familyMap.put(family, set);<a name="line.348"></a>
 <span class="sourceLineNo">349</span>    }<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    set.add(qualifier);<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    return this;<a name="line.351"></a>
-<span class="sourceLineNo">352</span>  }<a name="line.352"></a>
-<span class="sourceLineNo">353</span><a name="line.353"></a>
-<span class="sourceLineNo">354</span>  /**<a name="line.354"></a>
-<span class="sourceLineNo">355</span>   * Get versions of columns only within the specified timestamp range,<a name="line.355"></a>
-<span class="sourceLineNo">356</span>   * [minStamp, maxStamp).  Note, default maximum versions to return is 1.  If<a name="line.356"></a>
-<span class="sourceLineNo">357</span>   * your time range spans more than one version and you want all versions<a name="line.357"></a>
-<span class="sourceLineNo">358</span>   * returned, up the number of versions beyond the default.<a name="line.358"></a>
-<span class="sourceLineNo">359</span>   * @param minStamp minimum timestamp value, inclusive<a name="line.359"></a>
-<span class="sourceLineNo">360</span>   * @param maxStamp maximum timestamp value, exclusive<a name="line.360"></a>
-<span class="sourceLineNo">361</span>   * @see #setMaxVersions()<a name="line.361"></a>
-<span class="sourceLineNo">362</span>   * @see #setMaxVersions(int)<a name="line.362"></a>
-<span class="sourceLineNo">363</span>   * @return this<a name="line.363"></a>
-<span class="sourceLineNo">364</span>   */<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  public Scan setTimeRange(long minStamp, long maxStamp) throws IOException {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    tr = new TimeRange(minStamp, maxStamp);<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    return this;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  }<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>  /**<a name="line.370"></a>
-<span class="sourceLineNo">371</span>   * Get versions of columns with the specified timestamp. Note, default maximum<a name="line.371"></a>
-<span class="sourceLineNo">372</span>   * versions to return is 1.  If your time range spans more than one version<a name="line.372"></a>
-<span class="sourceLineNo">373</span>   * and you want all versions returned, up the number of versions beyond the<a name="line.373"></a>
-<span class="sourceLineNo">374</span>   * defaut.<a name="line.374"></a>
-<span class="sourceLineNo">375</span>   * @param timestamp version timestamp<a name="line.375"></a>
-<span class="sourceLineNo">376</span>   * @see #setMaxVersions()<a name="line.376"></a>
-<span class="sourceLineNo">377</span>   * @see #setMaxVersions(int)<a name="line.377"></a>
-<span class="sourceLineNo">378</span>   * @return this<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   * @deprecated As of release 2.0.0, this will be removed in HBase 3.0.0.<a name="line.379"></a>
-<span class="sourceLineNo">380</span>   *             Use {@link #setTimestamp(long)} instead<a name="line.380"></a>
-<span class="sourceLineNo">381</span>   */<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  @Deprecated<a name="line.382"></a>
-<span class="sourceLineNo">383</span>  public Scan setTimeStamp(long timestamp)<a name="line.383"></a>
-<span class="sourceLineNo">384</span>  throws IOException {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    return this.setTimestamp(timestamp);<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  }<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>  /**<a name="line.388"></a>
-<span class="sourceLineNo">389</span>   * Get versions of columns with the specified timestamp. Note, default maximum<a name="line.389"></a>
-<span class="sourceLineNo">390</span>   * versions to return is 1.  If your time range spans more than one version<a name="line.390"></a>
-<span class="sourceLineNo">391</span>   * and you want all versions returned, up the number of versions beyond the<a name="line.391"></a>
-<span class="sourceLineNo">392</span>   * defaut.<a name="line.392"></a>
-<span class="sourceLineNo">393</span>   * @param timestamp version timestamp<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   * @see #setMaxVersions()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>   * @see #setMaxVersions(int)<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   * @return this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>   */<a name="line.397"></a>
-<span class="sourceLineNo">398</span>  public Scan setTimestamp(long timestamp) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    try {<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      tr = new TimeRange(timestamp, timestamp + 1);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    } catch(Exception e) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>      // This should never happen, unless integer overflow or something extremely wrong...<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      LOG.error("TimeRange failed, likely caused by integer overflow. ", e);<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      throw e;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    }<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>    return this;<a name="line.407"></a>
-<span class="sourceLineNo">408</span>  }<a name="line.408"></a>
+<span class="sourceLineNo">350</span>    if (qualifier == null) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      qualifier = HConstants.EMPTY_BYTE_ARRAY;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    set.add(qualifier);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    return this;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>  /**<a name="line.357"></a>
+<span class="sourceLineNo">358</span>   * Get versions of columns only within the specified timestamp range,<a name="line.358"></a>
+<span class="sourceLineNo">359</span>   * [minStamp, maxStamp).  Note, default maximum versions to return is 1.  If<a name="line.359"></a>
+<span class="sourceLineNo">360</span>   * your time range spans more than one version and you want all versions<a name="line.360"></a>
+<span class="sourceLineNo">361</span>   * returned, up the number of versions beyond the default.<a name="line.361"></a>
+<span class="sourceLineNo">362</span>   * @param minStamp minimum timestamp value, inclusive<a name="line.362"></a>
+<span class="sourceLineNo">363</span>   * @param maxStamp maximum timestamp value, exclusive<a name="line.363"></a>
+<span class="sourceLineNo">364</span>   * @see #setMaxVersions()<a name="line.364"></a>
+<span class="sourceLineNo">365</span>   * @see #setMaxVersions(int)<a name="line.365"></a>
+<span class="sourceLineNo">366</span>   * @return this<a name="line.366"></a>
+<span class="sourceLineNo">367</span>   */<a name="line.367"></a>
+<span class="sourceLineNo">368</span>  public Scan setTimeRange(long minStamp, long maxStamp) throws IOException {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    tr = new TimeRange(minStamp, maxStamp);<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    return this;<a name="line.370"></a>
+<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>  /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>   * Get versions of columns with the specified timestamp. Note, default maximum<a name="line.374"></a>
+<span class="sourceLineNo">375</span>   * versions to return is 1.  If your time range spans more than one version<a name="line.375"></a>
+<span class="sourceLineNo">376</span>   * and you want all versions returned, up the number of versions beyond the<a name="line.376"></a>
+<span class="sourceLineNo">377</span>   * defaut.<a name="line.377"></a>
+<span class="sourceLineNo">378</span>   * @param timestamp version timestamp<a name="line.378"></a>
+<span class="sourceLineNo">379</span>   * @see #setMaxVersions()<a name="line.379"></a>
+<span class="sourceLineNo">380</span>   * @see #setMaxVersions(int)<a name="line.380"></a>
+<span class="sourceLineNo">381</span>   * @return this<a name="line.381"></a>
+<span class="sourceLineNo">382</span>   * @deprecated As of release 2.0.0, this will be removed in HBase 3.0.0.<a name="line.382"></a>
+<span class="sourceLineNo">383</span>   *             Use {@link #setTimestamp(long)} instead<a name="line.383"></a>
+<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  @Deprecated<a name="line.385"></a>
+<span class="sourceLineNo">386</span>  public Scan setTimeStamp(long timestamp)<a name="line.386"></a>
+<span class="sourceLineNo">387</span>  throws IOException {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    return this.setTimestamp(timestamp);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>  /**<a name="line.391"></a>
+<span class="sourceLineNo">392</span>   * Get versions of columns with the specified timestamp. Note, default maximum<a name="line.392"></a>
+<span class="sourceLineNo">393</span>   * versions to return is 1.  If your time range spans more than one version<a name="line.393"></a>
+<span class="sourceLineNo">394</span>   * and you want all versions returned, up the number of versions beyond the<a name="line.394"></a>
+<span class="sourceLineNo">395</span>   * defaut.<a name="line.395"></a>
+<span class="sourceLineNo">396</span>   * @param timestamp version timestamp<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   * @see #setMaxVersions()<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   * @see #setMaxVersions(int)<a name="line.398"></a>
+<span class="sourceLineNo">399</span>   * @return this<a name="line.399"></a>
+<span class="sourceLineNo">400</span>   */<a name="line.400"></a>
+<span class="sourceLineNo">401</span>  public Scan setTimestamp(long timestamp) {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    try {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      tr = new TimeRange(timestamp, timestamp + 1);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    } catch(Exception e) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      // This should never happen, unless integer overflow or something extremely wrong...<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      LOG.error("TimeRange failed, likely caused by integer overflow. ", e);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      throw e;<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>  @Override public Scan setColumnFamilyTimeRange(byte[] cf, long minStamp, long maxStamp) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return (Scan) super.setColumnFamilyTimeRange(cf, minStamp, maxStamp);<a name="line.411"></a>
-<span class="sourceLineNo">412</span>  }<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span>  /**<a name="line.414"></a>
-<span class="sourceLineNo">415</span>   * Set the start row of the scan.<a name="line.415"></a>
-<span class="sourceLineNo">416</span>   * &lt;p&gt;<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * If the specified row does not exist, the Scanner will start from the next closest row after the<a name="line.417"></a>
-<span class="sourceLineNo">418</span>   * specified row.<a name="line.418"></a>
-<span class="sourceLineNo">419</span>   * @param startRow row to start scanner at or after<a name="line.419"></a>
-<span class="sourceLineNo">420</span>   * @return this<a name="line.420"></a>
-<span class="sourceLineNo">421</span>   * @throws IllegalArgumentException if startRow does not meet criteria for a row key (when length<a name="line.421"></a>
-<span class="sourceLineNo">422</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.422"></a>
-<span class="sourceLineNo">423</span>   * @deprecated use {@link #withStartRow(byte[])} instead. This method may change the inclusive of<a name="line.423"></a>
-<span class="sourceLineNo">424</span>   *             the stop row to keep compatible with the old behavior.<a name="line.424"></a>
-<span class="sourceLineNo">425</span>   */<a name="line.425"></a>
-<span class="sourceLineNo">426</span>  @Deprecated<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  public Scan setStartRow(byte[] startRow) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    withStartRow(startRow);<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    if (ClientUtil.areScanStartRowAndStopRowEqual(this.startRow, this.stopRow)) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      // for keeping the old behavior that a scan with the same start and stop row is a get scan.<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      this.includeStopRow = true;<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    return this;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>  /**<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   * Set the start row of the scan.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   * &lt;p&gt;<a name="line.438"></a>
-<span class="sourceLineNo">439</span>   * If the specified row does not exist, the Scanner will start from the next closest row after the<a name="line.439"></a>
-<span class="sourceLineNo">440</span>   * specified row.<a name="line.440"></a>
-<span class="sourceLineNo">441</span>   * @param startRow row to start scanner at or after<a name="line.441"></a>
-<span class="sourceLineNo">442</span>   * @return this<a name="line.442"></a>
-<span class="sourceLineNo">443</span>   * @throws IllegalArgumentException if startRow does not meet criteria for a row key (when length<a name="line.443"></a>
-<span class="sourceLineNo">444</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.444"></a>
-<span class="sourceLineNo">445</span>   */<a name="line.445"></a>
-<span class="sourceLineNo">446</span>  public Scan withStartRow(byte[] startRow) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    return withStartRow(startRow, true);<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  }<a name="line.448"></a>
-<span class="sourceLineNo">449</span><a name="line.449"></a>
-<span class="sourceLineNo">450</span>  /**<a name="line.450"></a>
-<span class="sourceLineNo">451</span>   * Set the start row of the scan.<a name="line.451"></a>
-<span class="sourceLineNo">452</span>   * &lt;p&gt;<a name="line.452"></a>
-<span class="sourceLineNo">453</span>   * If the specified row does not exist, or the {@code inclusive} is {@code false}, the Scanner<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * will start from the next closest row after the specified row.<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * @param startRow row to start scanner at or after<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * @param inclusive whether we should include the start row when scan<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * @return this<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   * @throws IllegalArgumentException if startRow does not meet criteria for a row key (when length<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   */<a name="line.460"></a>
-<span class="sourceLineNo">461</span>  public Scan withStartRow(byte[] startRow, boolean inclusive) {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    if (Bytes.len(startRow) &gt; HConstants.MAX_ROW_LENGTH) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      throw new IllegalArgumentException("startRow's length must be less than or equal to "<a name="line.463"></a>
-<span class="sourceLineNo">464</span>          + HConstants.MAX_ROW_LENGTH + " to meet the criteria" + " for a row key.");<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    }<a name="line.465"></a>
-<span class="sourceLineNo">466</span>    this.startRow = startRow;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    this.includeStartRow = inclusive;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    return this;<a name="line.468"></a>
-<span class="sourceLineNo">469</span>  }<a name="line.469"></a>
-<span class="sourceLineNo">470</span><a name="line.470"></a>
-<span class="sourceLineNo">471</span>  /**<a name="line.471"></a>
-<span class="sourceLineNo">472</span>   * Set the stop row of the scan.<a name="line.472"></a>
-<span class="sourceLineNo">473</span>   * &lt;p&gt;<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   * The scan will include rows that are lexicographically less than the provided stopRow.<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   * &lt;p&gt;<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * &lt;b&gt;Note:&lt;/b&gt; When doing a filter for a rowKey &lt;u&gt;Prefix&lt;/u&gt; use<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * {@link #setRowPrefixFilter(byte[])}. The 'trailing 0' will not yield the desired result.<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * &lt;/p&gt;<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   * @param stopRow row to end at (exclusive)<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * @return this<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * @throws IllegalArgumentException if stopRow does not meet criteria for a row key (when length<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   * @deprecated use {@link #withStartRow(byte[])} instead. This method may change the inclusive of<a name="line.483"></a>
-<span class="sourceLineNo">484</span>   *             the stop row to keep compatible with the old behavior.<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   */<a name="line.485"></a>
-<span class="sourceLineNo">486</span>  @Deprecated<a name="line.486"></a>
-<span class="sourceLineNo">487</span>  public Scan setStopRow(byte[] stopRow) {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    withStopRow(stopRow);<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    if (ClientUtil.areScanStartRowAndStopRowEqual(this.startRow, this.stopRow)) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      // for keeping the old behavior that a scan with the same start and stop row is a get scan.<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      this.includeStopRow = true;<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    }<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    return this;<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>  /**<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   * Set the stop row of the scan.<a name="line.497"></a>
-<span class="sourceLineNo">498</span>   * &lt;p&gt;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>   * The scan will include rows that are lexicographically less than the provided stopRow.<a name="line.499"></a>
-<span class="sourceLineNo">500</span>   * &lt;p&gt;<a name="line.500"></a>
-<span class="sourceLineNo">501</span>   * &lt;b&gt;Note:&lt;/b&gt; When doing a filter for a rowKey &lt;u&gt;Prefix&lt;/u&gt; use<a name="line.501"></a>
-<span class="sourceLineNo">502</span>   * {@link #setRowPrefixFilter(byte[])}. The 'trailing 0' will not yield the desired result.<a name="line.502"></a>
-<span class="sourceLineNo">503</span>   * &lt;/p&gt;<a name="line.503"></a>
-<span class="sourceLineNo">504</span>   * @param stopRow row to end at (exclusive)<a name="line.504"></a>
-<span class="sourceLineNo">505</span>   * @return this<a name="line.505"></a>
-<span class="sourceLineNo">506</span>   * @throws IllegalArgumentException if stopRow does not meet criteria for a row key (when length<a name="line.506"></a>
-<span class="sourceLineNo">507</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.507"></a>
-<span class="sourceLineNo">508</span>   */<a name="line.508"></a>
-<span class="sourceLineNo">509</span>  public Scan withStopRow(byte[] stopRow) {<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    return withStopRow(stopRow, false);<a name="line.510"></a>
-<span class="sourceLineNo">511</span>  }<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>   * Set the stop row of the scan.<a name="line.514"></a>
-<span class="sourceLineNo">515</span>   * &lt;p&gt;<a name="line.515"></a>
-<span class="sourceLineNo">516</span>   * The scan will include rows that are lexicographically less than (or equal to if<a name="line.516"></a>
-<span class="sourceLineNo">517</span>   * {@code inclusive} is {@code true}) the provided stopRow.<a name="line.517"></a>
-<span class="sourceLineNo">518</span>   * @param stopRow row to end at<a name="line.518"></a>
-<span class="sourceLineNo">519</span>   * @param inclusive whether we should include the stop row when scan<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   * @return this<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   * @throws IllegalArgumentException if stopRow does not meet criteria for a row key (when length<a name="line.521"></a>
-<span class="sourceLineNo">522</span>   *           exceeds {@link HConstants#MAX_ROW_LENGTH})<a name="line.522"></a>
-<span class="sourceLineNo">523</span>   */<a name="line.523"></a>
-<span class="sourceLineNo">524</span>  public Scan withStopRow(byte[] stopRow, boolean inclusive) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>    if (Bytes.len(stopRow) &gt; HConstants.MAX_ROW_LENGTH) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      throw new IllegalArgumentException("stopRow's length must be less than or equal to "<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          + HConstants.MAX_ROW_LENGTH + " to meet the criteria" + " for a row key.");<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    }<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    this.stopRow = stopRow;<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    this.includeStopRow = inclusive;<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    return this;<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>  /**<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   * &lt;p&gt;Set a filter (using stopRow and startRow) so the result set only contains rows where the<a name="line.535"></a>
-<span class="sourceLineNo">536</span>   * rowKey starts with the specified prefix.&lt;/p&gt;<a name="line.536"></a>
-<span class="sourceLineNo">537</span>   * &lt;p&gt;This is a utility method that converts the desired rowPrefix into the appropriate values<a name="line.537"></a>
-<span class="sourceLineNo">538</span>   * for the startRow and stopRow to achieve the desired result.&lt;/p&gt;<a name="line.538"></a>
-<span class="sourceLineNo">539</span>   * &lt;p&gt;This can safely be used in combination with setFilter.&lt;/p&gt;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>   * &lt;p&gt;&lt;b&gt;NOTE: Doing a {@link #setStartRow(byte[])} and/or {@link #setStopRow(byte[])}<a name="line.540"></a>
-<span class="sourceLineNo">541</span>   * after this method will yield undefined results.&lt;/b&gt;&lt;/p&gt;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>   * @param rowPrefix the prefix all rows must start with. (Set &lt;i&gt;null&lt;/i&gt; to remove the filter.)<a name="line.542"></a>
-<span class="sourceLineNo">543</span>   * @return this<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   */<a name="line.544"></a>
-<span class="sourceLineNo">545</span>  public Scan setRowPrefixFilter(byte[] rowPrefix) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    if (rowPrefix == null) {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      setStartRow(HConstants.EMPTY_START_ROW);<a name="line.547"></a>
-<span class="sourceLineNo">548</span>      setStopRow(HConstants.EMPTY_END_ROW);<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    } else {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      this.setStartRow(rowPrefix);<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      this.setStopRow(calculateTheClosestNextRowKeyForPrefix(rowPrefix));<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    }<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    return this;<a name="line.553"></a>
-<span class="sourceLineNo">554</span>  }<a name="line.554"></a>
-<span class="sourceLineNo">555</span><a name="line.555"></a>
-<span class="sourceLineNo">556</span>  /**<a name="line.556"></a>
-<span class="sourceLineNo">557</span>   * &lt;p&gt;When scanning for a prefix the scan should stop immediately after the the last row that<a name="line.557"></a>
-<span class="sourceLineNo">558</span>   * has the specified prefix. This method calculates the closest next rowKey immediately following<a name="line.558"></a>
-<span class="sourceLineNo">559</span>   * the given rowKeyPrefix.&lt;/p&gt;<a name="line.559"></a>
-<span class="sourceLineNo">560</span>   * &lt;p&gt;&lt;b&gt;IMPORTANT: This converts a rowKey&lt;u&gt;Prefix&lt;/u&gt; into a rowKey&lt;/b&gt;.&lt;/p&gt;<a name="line.560"></a>
-<span class="sourceLineNo">561</span>   * &lt;p&gt;If the prefix is an 'ASCII' string put into a byte[] then this is easy because you can<a name="line.561"></a>
-<span class="sourceLineNo">562</span>   * simply increment the last byte of the array.<a name="line.562"></a>
-<span class="sourceLineNo">563</span>   * But if your application uses real binary rowids you may run into the scenario that your<a name="line.563"></a>
-<span class="sourceLineNo">564</span>   * prefix is something like:&lt;/p&gt;<a name="line.564"></a>
-<span class="sourceLineNo">565</span>   * &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;{ 0x12, 0x23, 0xFF, 0xFF }&lt;/b&gt;&lt;br/&gt;<a name="line.565"></a>
-<span class="sourceLineNo">566</span>   * Then this stopRow needs to be fed into the actual scan&lt;br/&gt;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>   * &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;{ 0x12, 0x24 }&lt;/b&gt; (Notice that it is shorter now)&lt;br/&gt;<a name="line.567"></a>
-<span class="sourceLineNo">568</span>   * This method calculates the correct stop row value for this usecase.<a name="line.568"></a>
-<span class="sourceLineNo">569</span>   *<a name="line.569"></a>
-<span class="sourceLineNo">570</span>   * @param rowKeyPrefix the rowKey&lt;u&gt;Prefix&lt;/u&gt;.<a name="line.570"></a>
-<span class="sourceLineNo">571</span>   * @return the closest next rowKey immediately following the given rowKeyPrefix.<a name="line.571"></a>
-<span class="sourceLineNo">572</span>   */<a name="line.572"></a>
-<span class="sourceLineNo">573</span>  private byte[] calculateTheClosestNextRowKeyForPrefix(byte[] rowKeyPrefix) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    // Essentially we are treating it like an 'unsigned very very long' and doing +1 manually.<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    // Search for the place where the trailing 0xFFs start<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    int offset = rowKeyPrefix.length;<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    while (offset &gt; 0) {<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      if (rowKeyPrefix[offset - 1] != (byte) 0xFF) {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>        break;<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      }<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      offset--;<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    }<a name="line.582"></a>
-<span class="sourceLineNo">583</span><a name="line.583"></a>
-<span class="sourceLineNo">584</span>    if (offset == 0) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      // We got an 0xFFFF... (only FFs) stopRow value which is<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      // the last possible prefix before the end of the table.<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      // So set it to stop at the 'end of the table'<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      return HConstants.EMPTY_END_ROW;<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>    // Copy the right length of the original<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    byte[] newStopRow = Arrays.copyOfRange(rowKeyPrefix, 0, offset);<a name="line.592"></a>
-<span class="sourceLineNo">593</span>    // And increment the last one<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    newStopRow[newStopRow.length - 1]++;<a name="line.594"></a>
-<span class="sourceLineNo">595</span>    return newStopRow;<a name="line.595"></a>
-<span class="sourceLineNo">596</span>  }<a name="line.596"></a>
-<span class="sourceLineNo">597</span><a name="line.597"></a>
-<span class="sourceLineNo">598</span>  /**<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * Get all available versions.<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * @return this<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   * @deprecated It is easy to misunderstand with column family's max versions, so use<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   *             {@link #readAllVersions()} instead.<a name="line.602"></a>
-<span class="sourceLineNo">603</span>   */<a name="line.603"></a>
-<span class="sourceLineNo">604</span>  @Deprecated<a name="line.604"></a>
-<span class="sourceLineNo">605</span>  public Scan setMaxVersions() {<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    return readAllVersions();<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>   * Get up to the specified number of versions of each column.<a name="line.610"></a>
-<span class="sourceLineNo">611</span>   * @param maxVersions maximum versions for each column<a name="line.611"></a>
-<span class="sourceLineNo">612</span>   * @return this<a name="line.612"></a>
-<span class="sourceLineNo">613</span>   * @deprecated It is easy to misunderstand with column family's max versions, so use<a name="line.613"></a>
-<span class="sourceLineNo">614</span>   *             {@link #readVersions(int)} instead.<a name="line.614"></a>
-<span class="sourceLineNo">615</span>   */<a name="line.615"></a>
-<span class="sourceLineNo">616</span>  @Deprecated<a name="line.616"></a>
-<span class="sourceLineNo">617</span>  public Scan setMaxVersions(int maxVersions) {<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    return readVersions(maxVersions);<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>  /**<a name="line.621"></a>
-<span class="sourceLineNo">622</span>   * Get all available versions.<a name="line.622"></a>
-<span class="sourceLineNo">623</span>   * @return this<a name="line.623"></a>
-<span class="sourceLineNo">624</span>   */<a name="line.624"></a>
-<span class="sourceLineNo">625</span>  public Scan readAllVersions() {<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    this.maxVersions = Integer.MAX_VALUE;<a name="line.626"></a>
-<span class="sourceLineNo">627</span>    return this;<a name="line.627"></a>
-<span class="sourceLineNo">628</span>  }<a name="line.628"></a>
-<span class="sourceLineNo">629</span><a name="line.629"></a>
-<span class="sourceLineNo">630</span>  /**<a name="line.630"></a>
-<span class="sourceLineNo">631</span>   * Get up to the specified number of versions of each column.<a name="line.631"></a>
-<span class="sourceLineNo">632</span>   * @param versions specified number of versions for each column<a name="line.632"></a>
-<span class="sourceLineNo">633</span>   * @return this<a name="line.633"></a>
-<span class="sourceLineNo">634</span>   */<a name="line.634"></a>
-<span class="sourceLineNo">635</span>  public Scan readVersions(int versions) {<a name="line.635"></a>
-<span class="sourceLineNo">636</span>    this.maxVersions = versions;<a name="line.636"></a>
-<span class="sourceLineNo">637</span>    return this;<a name="line.637"></a>
-<span class="sourceLineNo">638</span>  }<a name="line.638"></a>
-<span class="sourceLineNo">639</span><a name="line.639"></a>
-<span class="sourceLineNo">640</span>  /**<a name="line.640"></a>
-<span class="sourceLineNo">641</span>   * Set the maximum number of cells to return for each call to next(). Callers should be aware<a name="line.641"></a>
-<span class="sourceLineNo">642</span>   * that this is not equivalent to calling {@link #setAllowPartialResults(boolean)}.<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * If you don't allow partial results, the number of cells in each Result must equal to your<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   * batch setting unless it is the last Result for current row. So this method is helpful in paging<a name="line.644"></a>
-<span class="sourceLineNo">645</span>   * queries. If you just want to prevent OOM at client, use setAllowPartialResults(true) is better.<a name="line.645"></a>
-<span class="sourceLineNo">646</span>   * @param batch the maximum number of values<a name="line.646"></a>
-<span class="sourceLineNo">647</span>   * @see Result#mayHaveMoreCellsInRow()<a name="line.647"></a>
-<span class="sourceLineNo">648</span>   */<a name="line.648"></a>
-<span class="sourceLineNo">649</span>  public Scan setBatch(int batch) {<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    if (this.hasFilter() &amp;&amp; this.filter.hasFilterRow()) {<a name="line.650"></a>
-<span class="sourceLineNo">651</span>      throw new IncompatibleFilterException(<a name="line.651"></a>
-<span class="sourceLineNo">652</span>        "Cannot set batch on a scan using a filter" +<a name="line.652"></a>
-<span class="sourceLineNo">653</span>        " that returns true for filter.hasFilterRow");<a name="line.653"></a>
-<span class="sourceLineNo">654</span>    }<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    this.batch = batch;<a name="line.655"></a>
-<span class="sourceLineNo">656</span>    return this;<a name="line.656"></a>
-<span class="sourceLineNo">657</span>  }<a name="line.657"></a>
-<span class="sourceLineNo">658</span><a name="line.658"></a>
-<span class="sourceLineNo">659</span>  /**<a name="line.659"></a>
-<span class="sourceLineNo">660</span>   * Set the maximum number of values to return per row per Column Family<a name="line.660"></a>
-<span class="sourceLineNo">661</span>   * @param limit the maximum number of values returned / row / CF<a name="line.661"></a>
-<span class="sourceLineNo">662</span>   */<a name="line.662"></a>
-<span class="sourceLineNo">663</span>  public Scan setMaxResultsPerColumnFamily(int limit) {<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    this.storeLimit = limit;<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    return this;<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span>  /**<a name="line.668"></a>
-<span class="sourceLineNo">669</span>   * Set offset for the row per Column Family.<a name="line.669"></a>
-<span class="sourceLineNo">670</span>   * @param offset is the number of kvs that will be skipped.<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   */<a name="line.671"></a>
-<span class="sourceLineNo">672</span>  public Scan setRowOffsetPerColumnFamily(int offset) {<a name="line.672"></a>
-<span class="sourceLineNo">673</span>    this.storeOffset = offset;<a name="line.673"></a>
-<span class="sourceLineNo">674</span>    return this;<a name="line.674"></a>
-<span class="sourceLineNo">675</span>  }<a name="line.675"></a>
-<span class="sourceLineNo">676</span><a name="line.676"></a>
-<span class="sourceLineNo">677</span>  /**<a name="line.677"></a>
-<span class="sourceLineNo">678</span>   * Set the number of rows for caching that will be passed to scanners.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>   * If not set, the Configuration setting {@link HConstants#HBASE_CLIENT_SCANNER_CACHING} will<a name="line.679"></a>
-<span class="sourceLineNo">680</span>   * apply.<a name="line.680"></a>
-<span class="sourceLineNo">681</span>   * Higher caching values will enable faster scanners but will use more memory.<a name="line.681"></a>
-<span class="sourceLineNo">682</span>   * @param caching the number of rows for caching<a name="line.682"></a>
-<span class="sourceLineNo">683</span>   */<a name="line.683"></a>
-<span class="sourceLineNo">684</span>  public Scan setCaching(int caching) {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    this.caching = caching;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    return this;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>  }<a name="line.687"></a>
-<span class="sourceLineNo">688</span><a name="line.688"></a>
-<span class="sourceLineNo">689</span>  /**<a name="line.689"></a>
-<span class="sourceLineNo">690</span>   * @return the maximum result size in bytes. See {@link #setMaxResultSize(long)}<a name="line.690"></a>
-<span class="sourceLineNo">691</span>   */<a name="line.691"></a>
-<span class="sourceLineNo">692</span>  public long getMaxResultSize() {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    return maxResultSize;<a name="line.693"></a>
-<span class="sourceLineNo">694</span>  }<a name="line.694"></a>
-<span class="sourceLineNo">695</span><a name="line.695"></a>
-<span class="sourceLineNo">696</span>  /**<a name="line.696"></a>
-<span class="sourceLineNo">697</span>   * Set the maximum result size. The default is -1; this means that no specific<a name="line.697"></a>
-<span class="sourceLineNo">698</span>   * maximum result size will be set for this scan, and the global configured<a name="line.698"></a>
-<span class="sourceLineNo">699</span>   * value will be used instead. (Defaults to unlimited).<a name="line.699"></a>
-<span class="sourceLineNo">700</span>   *<a name="line.700"></a>
-<span class="sourceLineNo">701</span>   * @param maxResultSize The maximum result size in bytes.<a name="line.701"></a>
-<span class="sourceLineNo">702</span>   */<a name="line.702"></a>
-<span class="sourceLineNo">703</span>  public Scan setMaxResultSize(long maxResultSize) {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    this.maxResultSize = maxResultSize;<a name="line.704"></a>
-<span class="sourceLineNo">705</span>    return this;<a name="line.705"></a>
-<span class="sourceLineNo">706</span>  }<a name="line.706"></a>
-<span class="sourceLineNo">707</span><a name="line.707"></a>
-<span class="sourceLineNo">708</span>  @Override<a name="line.708"></a>
-<span class="sourceLineNo">709</span>  public Scan setFilter(Filter filter) {<a name="line.709"></a>
-<span class="sourceLineNo">710</span>    super.setFilter(filter);<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    return this;<a name="line.711"></a>
-<span class="sourceLineNo">712</span>  }<a name="line.712"></a>
-<span class="sourceLineNo">713</span><a name="line.713"></a>
-<span class="sourceLineNo">714</span>  /**<a name="line.714"></a>
-<span class="sourceLineNo">715</span>   * Setting the familyMap<a name="line.715"></a>
-<span class="sourceLineNo">716</span>   * @param familyMap map of family to qualifier<a name="line.716"></a>
-<span class="sourceLineNo">717</span>   * @return this<a name="line.717"></a>
-<span class="sourceLineNo">718</span>   */<a name="line.718"></a>
-<span class="sourceLineNo">719</span>  public Scan setFamilyMap(Map&lt;byte [], NavigableSet&lt;byte []&gt;&gt; familyMap) {<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    this.familyMap = familyMap;<a name="line.720"></a>
-<span class="sourceLineNo">721</span>    return this;<a name="line.721"></a>
-<span class="sourceLineNo">722</span>  }<a name="line.722"></a>
-<span class="sourceLineNo">723</span><a name="line.723"></a>
-<span class="sourceLineNo">724</span>  /**<a name="line.724"></a>
-<span class="sourceLineNo">725</span>   * Getting the familyMap<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   * @return familyMap<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   */<a name="line.727"></a>
-<span class="sourceLineNo">728</span>  public Map&lt;byte [], NavigableSet&lt;byte []&gt;&gt; getFamilyMap() {<a name="line.728"></a>
-<span class="sourceLineNo">729</span>    return this.familyMap;<a name="line.729"></a>
-<span class="sourceLineNo">730</span>  }<a name="line.730"></a>
-<span class="sourceLineNo">731</span><a name="line.731"></a>
-<span class="sourceLineNo">732</span>  /**<a name="line.732"></a>
-<span class="sourceLineNo">733</span>   * @return the number of families in familyMap<a name="line.733"></a>
-<span class="sourceLineNo">734</span>   */<a name="line.734"></a>
-<span class="sourceLineNo">735</span>  public int numFamilies() {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>    if(hasFamilies()) {<a name="line.736"></a>
-<span class="sourceLineNo">737</span>      return this.familyMap.size();<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    }<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    return 0;<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  }<a name="line.740"></a>
-<span class="sourceLineNo">741</span><a name="line.741"></a>
-<span class="sourceLineNo">742</span>  /**<a name="line.742"></a>
-<span class="sourceLineNo">743</span>   * @return true if familyMap is non empty, false otherwise<a name="line.743"></a>
-<span class="sourceLineNo">744</span>   */<a name="line.744"></a>
-<span class="sourceLineNo">745</span>  public boolean hasFamilies() {<a name="line.745"></a>
-<span class="sourceLineNo">746</span>    return !this.familyMap.isEmpty();<a name="line.746"></a>
-<span class="sourceLineNo">747</span>  }<a name="line.747"></a>
-<span class="sourceLineNo">748</span><a name="line.748"></a>
-<span class="sourceLineNo">749</span>  /**<a name="line.749"></a>
-<span class="sourceLineNo">750</span>   * @return the keys of the familyMap<a name="line.750"></a>
-<span class="sourceLineNo">751</span>   */<a name="line.751"></a>
-<span class="sourceLineNo">752</span>  public byte[][] getFamilies() {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    if(hasFamilies()) {<a name="line.753"></a>
-<span class="sourceLineNo">754</span>      return this.familyMap.keySet().toArray(new byte[0][0]);<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    }<a name="line.755"></a>
-<span class="sourceLineNo">756</span>    return null;<a name="line.756"></a>
-<span class="sourceLineNo">757</span>  }<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>  /**<a name="line.759"></a>
-<span class="sourceLineNo">760</span>   * @return the startrow<a name="line.760"></a>
-<span class="sourceLineNo">761</span>   */<a name="line.761"></a>
-<span class="sourceLineNo">762</span>  public byte [] getStartRow() {<a name="line.762"></a>
-<span class="sourceLineNo">763</span>    return this.startRow;<a name="line.763"></a>
-<span class="sourceLineNo">764</span>  }<a name="line.764"></a>
-<span class="sourceLineNo">765</span><a name="line.765"></a>
-<span class="sourceLineNo">766</span>  /**<a name="line.766"></a>
-<span class="sourceLineNo">767</span>   * @return if we should include start row when scan<a name="line.767"></a>
-<span class="sourceLineNo">768</span>   */<a name="line.768"></a>
-<span class="sourceLineNo">769</span>  public boolean includeStartRow() {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    return includeStartRow;<a name="line.770"></a>
-<span class="sourceLineNo">771</span>  }<a name="line.771"></a>
-<span class="sourceLineNo">772</span><a name="line.772"></a>
-<span class="sourceLineNo">773</span>  /**<a name="line.773"></a>
-<span class="sourceLineNo">774</span>   * @return the stoprow<a name="line.774"></a>
-<span class="sourceLineNo">775</span>   */<a name="line.775"></a>
-<span class="sourceLineNo">776</span>  public byte[] getStopRow() {<a name="line.776"></a>
-<span class="sourceLineNo">777</span>    return this.stopRow;<a name="line.777"></a>
-<span class="sourceLineNo">778</span>  }<a name="line.778"></a>
-<span class="sourceLineNo">779</span><a name="line.779"></a>
-<span class="sourceLineNo">780</span>  /**<a name="line.780"></a>
-<span class="sourceLineNo">781</span>   * @return if we should include stop row when scan<a name="line.781"></a>
-<span class="sourceLineNo">782</span>   */<a name="line.782"></a>
-<span class="sourceLineNo">783</span>  public boolean includeStopRow() {<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    return includeStopRow;<a name="line.784"></a>
-<span class="sourceLineNo">785</span>  }<a name="line.785"></a>
-<span class="sourceLineNo">786</span><a name="line.786"></a>
-<span class="sourceLineNo">787</span>  /**<a name="line.787"></a>
-<span class="sourceLineNo">788</span>   * @return the max number of versions to fetch<a name="line.788"></a>
-<span class="sourceLineNo">789</span>   */<a name="line.789"></a>
-<span class="sourceLineNo">790</span>  public int getMaxVersions() {<a name="line.790"></a>
-<span class="sourceLineNo">791</span>    return this.maxVersions;<a name="line.791"></a>
-<span class="sourceLineNo">792</span>  }<a name="line.792"></a>
-<span class="sourceLineNo">793</span><a name="line.793"></a>
-<span class="sourceLineNo">794</span>  /**<a name="line.794"></a>
-<span class="sourceLineNo">795</span>   * @return maximum number of values to return for a single call to next()<a name="line.795"></a>
-<span class="sourceLineNo">796</span>   */<a name="line.796"></a>
-<span class="sourceLineNo">797</span>  public int getBatch() {<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    return this.batch;<a name="line.798"></a>
-<span class="sourceLineNo">799</span>  }<a name="line.799"></a>
-<span class="sourceLineNo">800</span><a name="line.800"></a>
-<span class="sourceLineNo">801</span>  /**<a name="line.801"></a>
-<span class="sourceLineNo">802</span>   * @return maximum number of values to return per row per CF<a name="line.802"></a>
-<span class="sourceLineNo">803</span>   */<a name="line.803"></a>
-<span class="sourceLineNo">804</span>  public int getMaxResultsPerColumnFamily() {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>    return this.storeLimit;<a name="line.805"></a>
-<span class="sourceLineNo">806</span>  }<a name="line.806"></a>
-<span class="sourceLineNo">807</span><a name="line.807"></a>
-<span class="sourceLineNo">808</span>  /**<a name="line.808"></a>
-<span class="sourceLineNo">809</span>   * Method for retrieving the scan's offset per row per column<a name="line.809"></a>
-<span class="sourceLineNo">810</span>   * family (#kvs to be skipped)<a name="line.810"></a>
-<span class="sourceLineNo">811</span>   * @return row offset<a name="line.811"></a>
-<span class="sourceLineNo">812</span>   */<a name="line.812"></a>
-<span class="sourceLineNo">813</span>  public int getRowOffsetPerColumnFamily() {<a name="line.813"></a>
-<span class="sourceLineNo">814</span>    return this.storeOffset;<a name="line.814"></a>
-<span class="sourceLineNo">815</span>  }<a name="line.815"></a>
-<span class="sourceLineNo">816</span><a name="line.816"></a>
-<span class="sourceLineNo">817</span>  /**<a name="line.817"></a>
-<span class="sourceLineNo">818</span>   * @return caching the number of rows fetched when calling next on a scanner<a name="line.818"></a>
-<span class="sourceLineNo">819</span>   */<a name="line.819"></a>
-<span class="sourceLineNo">820</span>  public int getCaching() {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>    return this.caching;<a name="line.821"></a>
-<span class="sourceLineNo">822</span>  }<a name="line.822"></a>
-<span class="sourceLineNo">823</span><a name="line.823"></a>
-<span class="sourceLineNo">824</span>  /**<a name="line.824"></a>
-<span class="sourceLineNo">825</span>   * @return TimeRange<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   */<a name="line.826"></a>
-<span class="sourceLineNo">827</span>  public TimeRange getTimeRange() {<a name="line.827"></a>
-<span class="sourceLineNo">828</span>    return this.tr;<a name="line.828"></a>
-<span class="sourceLineNo">829</span>  }<a name="line.829"></a>
-<span class="sourceLineNo">830</span><a name="line.830"></a>
-<span class="sourceLineNo">831</span>  /**<a name="line.831"></a>
-<span class="sourceLineNo">832</span>   * @return RowFilter<a name="line.832"></a>
-<span class="sourceLineNo">833</span>   */<a name="line.833"></a>
-<span class="sourceLineNo">834</span>  @Override<a name="line.834"></a>
-<span class="sourceLineNo">835</span>  public Filter getFilter() {<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    return filter;<a name="line.836"></a>
-<span class="sourceLineNo">837</span>  }<a name="line.837"></a>
-<span class="sourceLineNo">838</span><a name="line.838"></a>
-<span class="sourceLineNo">839</span>  /**<a name="line.839"></a>
-<span class="sourceLineNo">840</span>   * @return true is a filter has been specified, false if not<a name="line.840"></a>
-<span class="sourceLineNo">841</span>   */<a name="line.841"></a>
-<span class="sourceLineNo">842</span>  public boolean hasFilter() {<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    return filter != null;<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  }<a name="line.844"></a>
-<span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  /**<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   * Set whether blocks should be cached for this Scan.<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * &lt;p&gt;<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * This is true by default.  When true, default settings of the table and<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * family are used (this will never override caching blocks if the block<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   * cache is disabled for that family or entirely).<a name="line.851"></a>
-<span class="sourceLineNo">852</span>   *<a name="line.852"></a>
-<span class="sourceLineNo">853</span>   * @param cacheBlocks if false, default settings are overridden and blocks<a name="line.853"></a>
-<span class="sourceLineNo">854</span>   * will not be cached<a name="line.854"></a>
-<span class="sourceLineNo">855</span>   */<a name="line.855"></a>
-<span class="sourceLineNo">856</span>  public Scan setCacheBlocks(boolean cacheBlocks) {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    this.cacheBlocks = cacheBlocks;<a name="line.857"></a>
-<span class="sourceLineNo">858</span>    return this;<a name="line.858"></a>
-<span class="sourceLineNo">859</span>  }<a name="line.859"></a>
-<span class="sourceLineNo">860</span><a name="line.860"></a>
-<span class="sourceLineNo">861</span>  /**<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   * Get whether blocks should be cached for this Scan.<a name="line.862"></a>
-<span class="sourceLineNo">863</span>   * @return true if default caching should be used, false if blocks should not<a name="line.863"></a>
-<span class="sourceLineNo">864</span>   * be cached<a name="line.864"></a>
-<span class="sourceLineNo">865</span>   */<a name="line.865"></a>
-<span class="sourceLineNo">866</span>  public boolean getCacheBlocks() {<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    return cacheBlocks;<a name="line.867"></a>
-<span class="sourceLineNo">868</span>  }<a name="line.868"></a>
-<span class="sourceLineNo">869</span><a name="line.869"></a>
-<span class="sourceLineNo">870</span>  /**<a name="line.870"></a>
-<span class="sourceLineNo">871</span>   * Set whether this scan is a reversed one<a name="line.871"></a>
-<span class="sourceLineNo">872</span>   * &lt;p&gt;<a name="line.872"></a>
-<span class="sourceLineNo">873</span>   * This is false by default which means forward(normal) scan.<a name="line.873"></a>
-<span class="sourceLineNo">874</span>   *<a name="line.874"></a>
-<span class="sourceLineNo">875</span>   * @param reversed if true, scan will be backward order<a name="line.875"></a>
-<span class="sourceLineNo">876</span>   * @return this<a name="line.876"></a>
-<span class="sourceLineNo">877</span>   */<a name="line.877"></a>
-<span class="sourceLineNo">878</span>  public Scan setReversed(boolean reversed) {<a name="line.878"></a>
-<span class="sourceLineNo">879</span>    this.reversed = reversed;<a name="line.879"></a>
-<span class="sourceLineNo">880</span>    return this;<a name="line.880"></a>
-<span class="sourceLineNo">881</span>  }<a name="line.881"></a>
-<span class="sourceLineNo">882</span><a name="line.882"></a>
-<span class="sourceLineNo">883</span>  /**<a name="line.883"></a>
-<span class="sourceLineNo">884</span>   * Get whether this scan is a reversed one.<a name="line.884"></a>
-<span class="sourceLineNo">885</span>   * @return true if backward scan, false if forward(default) scan<a name="line.885"></a>
-<span class="sourceLineNo">886</span>   */<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  public boolean isReversed() {<a name="line.887"></a>
-<span class="sourceLineNo">888</span>    return reversed;<a name="line.888"></a>
-<span class="sourceLineNo">889</span>  }<a name="line.889"></a>
-<span class="sourceLineNo">890</span><a name="line.890"></a>
-<span class="sourceLineNo">891</span>  /**<a name="line.891"></a>
-<span class="sourceLineNo">892</span>   * Setting whether the caller wants to see the partial results when server returns<a name="line.892"></a>
-<span class="sourceLineNo">893</span>   * less-than-expected cells. It is helpful while scanning a huge row to prevent OOM at client.<a name="line.893"></a>
-<span class="sourceLineNo">894</span>   * By default this value is false and the complete results will be assembled client side<a name="line.894"></a>
-<span class="sourceLineNo">895</span>   * before being delivered to the caller.<a name="line.895"></a>
-<span class="sourceLineNo">896</span>   * @param allowPartialResults<a name="line.896"></a>
-<span class="sourceLineNo">897</span>   * @return this<a name="line.897"></a>
-<span class="sourceLineNo">898</span>   * @see Result#mayHaveMoreCellsInRow()<a name="line.898"></a>
-<span class="sourceLineNo">899</span>   * @see #setBatch(int)<a name="line.899"></a>
-<span class="sourceLineNo">900</span>   */<a name="line.900"></a>
-<span class="sourceLineNo">901</span>  public Scan setAllowPartialResults(final boolean allowPartialResults) {<a name="line.901"></a>
-<span class="sourceLineNo">902</span>    this.allowPartialResults = allowPartialResults;<a name="line.902"></a>
-<span class="sourceLineNo">903</span>    return this;<a name="line.903"></a>
-<span class="sourceLineNo">904</span>  }<a name="line.904"></a>
-<span class="sourceLineNo">905</span><a name="line.905"></a>
-<span class="sourceLineNo">906</span>  /**<a name="line.906"></a>
-<span class="sourceLineNo">907</span>   * @return true when the constructor of this scan understands that the results they will see may<a name="line.907"></a>
-<span class="sourceLineNo">908</span>   *         only represent a partial portion of a row. The entire row would be retrieved by<a name="line.908"></a>
-<span class="sourceLineNo">909</span>   *         subsequent calls to {@link ResultScanner#next()}<a name="line.909"></a>
-<span class="sourceLineNo">910</span>   */<a name="line.910"></a>
-<span class="sourceLineNo">911</span>  public boolean getAllowPartialResults() {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>    return allowPartialResults;<a name="line.912"></a>
-<span class="sourceLineNo">913</span>  }<a name="line.913"></a>
-<span class="sourceLineNo">914</span><a name="line.914"></a>
-<span class="sourceLineNo">915</span>  @Override<a name="line.915"></a>
-<span class="sourceLineNo">916</span>  public Scan setLoadColumnFamiliesOnDemand(boolean value) {<a name="line.916"></a>
-<span class="sourceLineNo">917</span>    return (Scan) super.setLoadColumnFamiliesOnDemand(value);<a name="line.917"></a>
-<span class="sourceLineNo">918</span>  }<a name="line.918"></a>
-<span class="sourceLineNo">919</span><a name="line.919"></a>
-<span class="sourceLineNo">920</span>  /**<a name="line.920"></a>
-<span class="sourceLineNo">921</span>   * Compile the table and column family (i.e. schema) information<a name="line.921"></a>
-<span class="sourceLineNo">922</span>   * into a String. Useful for parsing and aggregation by debugging,<a name="line.922"></a>
-<span class="sourceLineNo">923</span>   * logging, and administration tools.<a name="line.923"></a>
-<span class="sourceLineNo">924</span>   * @return Map<a name="line.924"></a>
-<span class="sourceLineNo">925</span>   */<a name="line.925"></a>
-<span class="sourceLineNo">926</span>  @Override<a name="line.926"></a>
-<span class="sourceLineNo">927</span>  public Map&lt;String, Object&gt; getFingerprint() {<a name="line.927"></a>
-<span class="sourceLineNo">928</span>    Map&lt;String, Object&gt; map = new HashMap&lt;&gt;();<a name="line.928"></a>
-<span class="sourceLineNo">929</span>    List&lt;String&gt; families = new ArrayList&lt;&gt;();<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    if(this.familyMap.isEmpty()) {<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      map.put("families", "ALL");<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      return map;<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    } else {<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      map.put("families", families);<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    for (Map.Entry&lt;byte [], NavigableSet&lt;byte[]&gt;&gt; entry :<a name="line.936"></a>
-<span class="sourceLineNo">937</span>        this.familyMap.entrySet()) {<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      families.add(Bytes.toStringBinary(entry.getKey()));<a name="line.938"></a>
-<span class="sourceLineNo">939</span>    }<a name="line.939"></a>
-<span class="sourceLineNo">940</span>    return map;<a name="line.940"></a>
-<span class="sourceLineNo">941</span>  }<a name="line.941"></a>
-<span class="sourceLineNo">942</span><a name="line.942"></a>
-<span class="sourceLineNo">943</span>  /**<a name="line.943"></a>
-<span class="sourceLineNo">944</span>   * Compile the details beyond the scope of getFingerprint (row, columns,<a name="line.944"></a>
-<span class="sourceLineNo">945</span>   * timestamps, etc.) into a Map along with the fingerprinted information.<a name="line.945"></a>
-<span class="sourceLineNo">946</span>   * Useful for debugging, logging, and administration tools.<a name="line.946"></a>
-<span class="sourceLineNo">947</span>   * @param maxCols a limit on the number of columns output prior to truncation<a name="line.947"></a>
-<span class="sourceLineNo">948</span>   * @return Map<a name="line.948"></a>
-<span class="sourceLineNo">949</span>   */<a name="line.949"></a>
-<span class="sourceLineNo">950</span>  @Override<a name="line.950"></a>
-<span class="sourceLineNo">951</span>  public Map&lt;String, Object&gt; toMap(int maxCols) {<a name="line.951"></a>
-<span class="sourceLineNo">952</span>    // start with the fingerpring map and build on top of it<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    Map&lt;String, Object&gt; map = getFingerprint();<a name="line.953"></a>
-<span class="sourceLineNo">954</span>    // map from families to column list replaces fingerprint's list of families<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    Map&lt;String, List&lt;String&gt;&gt; familyColumns = new HashMap&lt;&gt;();<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    map.put("families", familyColumns);<a name="line.956"></a>
-<span class="sourceLineNo">957</span>    // add scalar information first<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    map.put("startRow", Bytes.toStringBinary(this.startRow));<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    map.put("stopRow", Bytes.toStringBinary(this.stopRow));<a name="line.959"></a>
-<span class="sourceLineNo">960</span>    map.put("maxVersions", this.maxVersions);<a name="line.960"></a>
-<span class="sourceLineNo">961</span>    map.put("batch", this.batch);<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    map.put("caching", this.caching);<a name="line.962"></a>
-<span class="sourceLineNo">963</span>    map.put("maxResultSize", this.maxResultSize);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    map.put("cacheBlocks", this.cacheBlocks);<a name="line.964"></a>
-<span class="sourceLineNo">965</span>    map.put("loadColumnFamiliesOnDemand", this.loadColumnFamiliesOnDemand);<a name="line.965"></a>
-<span class="sourceLineNo">966</span>    List&lt;Long&gt; timeRange = new ArrayList&lt;&gt;(2);<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    timeRange.add(this.tr.getMin());<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    timeRange.add(this.tr.getMax());<a name="line.968"></a>
-<span class="sourceLineNo">969</span>    map.put("timeRange", timeRange);<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    int colCount = 0;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    // iterate through affected families and list out up to maxCols columns<a name="line.971"></a>
-<span class="sourceLineNo">972</span>    for (Map.Entry&lt;byte [], NavigableSet&lt;byte[]&gt;&gt; entry :<a name="line.972"></a>
-<span class="sourceLineNo">973</span>      this.familyMap.entrySet()) {<a name="line.973"></a>
-<span class="sourceLineNo">974</span>      List&lt;String&gt; columns = new ArrayList&lt;&gt;();<a name="line.974"></a>
-<span class="sourceLineNo">975</span>      familyColumns.put(Bytes.toStringBinary(entry.getKey()), columns);<a name="line.975"></a>
-<span class="sourceLineNo">976</span>      if(entry.getValue() == null) {<a name="line.976"></a>
-<span class="sourceLineNo">977</span>        colCount++;<a name="line.977"></a>
-<span class="sourceLineNo">978</span>        --maxCols;<a name="line.978"></a>
-<span class="sourceLineNo">979</span>        columns.add("ALL");<a name="line.979"></a>
-<span class="sourceLineNo">980</span>      } else {<a name="line.980"></a>
-<span class="sourceLineNo">981</span>        colCount += entry.getValue().size();<a name="line.981"></a>
-<span class="sourceLineNo">982</span>        if (maxCols &lt;= 0) {<a name="line.982"></a>
-<span class="sourceLineNo">983</span>          continue;<a name="line.983"></a>
-<span class="sourceLineNo">984</span>        }<a name="line.984"></a>
-<span class="sourceLineNo">985</span>        for (byte [] column : entry.getValue()) {<a name="line.985"></a>
-<span class="sourceLineNo">986</span>          if (--maxCols &lt;= 0) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>            continue;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>          }<a name="line.988"></a>
-<span class="sourceLineNo">989</span>          columns.add(Bytes.toStringBinary(column));<a name="line.989"></a>
-<span class="sourceLineNo">990</span>        }<a name="line.990"></a>
-<span class="sourceLineNo">991</span>      }<a name="line.991"></a>
-<span class="sourceLineNo">992</span>    }<a name="line.992"></a>
-<span class="sourceLineNo">993</span>    map.put("totalColumns", colCount);<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    if (this.filter != null) {<a name="line.994"></a>
-<span class="sourceLineNo">995</span>      map.put("filter", this.filter.toString());<a name="line.995"></a>
-<span class="sourceLineNo">996</span>    }<a name="line.996"></a>
-<span class="sourceLineNo">997</span>    // add the id if set<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    if (getId() != null) {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>      map.put("id", getId());<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    }<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    return map;<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>  }<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>  /**<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>   * Enable/disable "raw" mode for this scan.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>   * If "raw" is enabled the scan will return all<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>   * delete marker and deleted rows that have not<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>   * been collected, yet.<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>   * This is mostly useful for Scan on column families<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>   * that have KEEP_DELETED_ROWS enabled.<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>   * It is an error to specify any column when "raw" is set.<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>   * @param raw True/False to enable/disable "raw" mode.<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>   */<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  public Scan setRaw(boolean raw) {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>    setAttribute(RAW_ATTR, Bytes.toBytes(raw));<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    return this;<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>  }<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span><a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>  /**<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>   * @return True if this Scan is in "raw" mode.<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>   */<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>  public boolean isRaw() {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>    byte[] attr = getAttribute(RAW_ATTR);<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    return attr == null ? false : Bytes.toBoolean(attr);<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>  }<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span><a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>  /**<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>   * Set whether this scan is a small scan<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>   * &lt;p&gt;<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>   * Small scan should use pread and big scan can use seek + read seek + read is fast but can cause<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>   * two problem (1) resource contention (2) cause too much network io [89-fb] Using pread for<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>   * non-compaction read request https://issues.apache.org/jira/browse/HBASE-7266 On the other hand,<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>   * if setting it true, we would do openScanner,next,closeScanner in one RPC call. It means the<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>   * better performance for small scan. [HBASE-9488]. Generally, if the scan range is within one<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>   * data block(64KB), it could be considered as a small scan.<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>   * @param small<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>   * @deprecated since 2.0.0. Use {@link #setLimit(int)} and {@link #setReadType(ReadType)} instead.<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>   *             And for the one rpc optimization, now we will also fetch data when openScanner, and<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>   *             if the number of rows reaches the limit then we will close the scanner<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>   *             automatically which means we will fall back to one rpc.<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>   * @see #setLimit(int)<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>   * @see #setReadType(ReadType)<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>   */<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>  @Deprecated<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>  public Scan setSmall(boolean small) {<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>    this.small = small;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>    this.readType = ReadType.PREAD;<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>    return this;<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>  }<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span><a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>  /**<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>   * Get whether this scan is a small scan<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>   * @return true if small scan<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>   * @deprecated since 2.0.0. See the comment of {@link #setSmall(boolean)}<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>   */<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>  @Deprecated<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>  public boolean isSmall() {<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    return small;<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>  }<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span><a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>  @Override<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>  public Scan setAttribute(String name, byte[] value) {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>    return (Scan) super.setAttribute(name, value);<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>  }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span><a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>  @Override<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>  public Scan setId(String id) {<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    return (Scan) super.setId(id);<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>  }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span><a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  @Override<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>  public Scan setAuthorizations(Authorizations authorizations) {<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    return (Scan) super.setAuthorizations(authorizations);<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>  }<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span><a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>  @Override<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>  public Scan setACL(Map&lt;String, Permission&gt; perms) {<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>    return (Scan) super.setACL(perms);<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>  }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span><a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>  @Override<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  public Scan setACL(String user, Permission perms) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>    return (Scan) super.setACL(user, perms);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>  }<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span><a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>  @Override<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>  public Scan setConsistency(Consistency consistency) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>    return (Scan) super.setConsistency(consistency);<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>  }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span><a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>  @Override<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>  public Scan setReplicaId(i

<TRUNCATED>

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

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


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

Branch: refs/heads/asf-site
Commit: 63aade82f1ad4cc7f91cfb9f866fc0c15d1af40d
Parents: 25edd20
Author: jenkins <bu...@apache.org>
Authored: Wed May 9 15:31:34 2018 +0000
Committer: jenkins <bu...@apache.org>
Committed: Wed May 9 15:31:34 2018 +0000

----------------------------------------------------------------------
 acid-semantics.html                             |    4 +-
 apache_hbase_reference_guide.pdf                |    4 +-
 .../hadoop/hbase/client/Scan.ReadType.html      |    8 +-
 .../org/apache/hadoop/hbase/client/Scan.html    |  156 +-
 .../hadoop/hbase/client/Scan.ReadType.html      | 1955 +++++++++---------
 .../org/apache/hadoop/hbase/client/Scan.html    | 1955 +++++++++---------
 .../hbase/mapreduce/TableOutputFormat.html      |    4 +-
 book.html                                       |    2 +-
 bulk-loads.html                                 |    4 +-
 checkstyle-aggregate.html                       |   70 +-
 coc.html                                        |    4 +-
 dependencies.html                               |    4 +-
 dependency-convergence.html                     |    4 +-
 dependency-info.html                            |    4 +-
 dependency-management.html                      |    4 +-
 devapidocs/constant-values.html                 |   25 +-
 devapidocs/index-all.html                       |    2 +
 .../hadoop/hbase/backup/package-tree.html       |    4 +-
 .../hadoop/hbase/client/Scan.ReadType.html      |    8 +-
 .../org/apache/hadoop/hbase/client/Scan.html    |  164 +-
 .../hadoop/hbase/client/package-tree.html       |   26 +-
 .../hadoop/hbase/filter/package-tree.html       |   10 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |    4 +-
 .../apache/hadoop/hbase/ipc/package-tree.html   |    4 +-
 .../SplitOrMergeTracker.SwitchStateTracker.html |   12 +-
 .../hbase/master/SplitOrMergeTracker.html       |   18 +-
 .../hbase/master/balancer/package-tree.html     |    2 +-
 .../hadoop/hbase/master/package-tree.html       |    4 +-
 .../hbase/master/procedure/package-tree.html    |    2 +-
 .../hadoop/hbase/monitoring/package-tree.html   |    2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |   14 +-
 .../hadoop/hbase/procedure2/package-tree.html   |    4 +-
 .../hadoop/hbase/quotas/package-tree.html       |    6 +-
 .../hadoop/hbase/regionserver/package-tree.html |   16 +-
 .../regionserver/querymatcher/package-tree.html |    2 +-
 .../hbase/regionserver/wal/package-tree.html    |    2 +-
 .../replication/regionserver/package-tree.html  |    2 +-
 .../hbase/rsgroup/RSGroupAdminServer.html       |   69 +-
 .../hbase/security/access/package-tree.html     |    2 +-
 .../hadoop/hbase/security/package-tree.html     |    2 +-
 .../hadoop/hbase/thrift/package-tree.html       |    2 +-
 .../apache/hadoop/hbase/util/package-tree.html  |    8 +-
 .../org/apache/hadoop/hbase/Version.html        |    6 +-
 .../hadoop/hbase/client/Scan.ReadType.html      | 1955 +++++++++---------
 .../org/apache/hadoop/hbase/client/Scan.html    | 1955 +++++++++---------
 .../TableOutputFormat.TableRecordWriter.html    |    4 +-
 .../hbase/mapreduce/TableOutputFormat.html      |    4 +-
 .../SplitOrMergeTracker.SwitchStateTracker.html |  229 +-
 .../hbase/master/SplitOrMergeTracker.html       |  229 +-
 ...ompactingMemStore.InMemoryFlushRunnable.html |    2 +-
 .../CompactingMemStore.IndexType.html           |    2 +-
 .../hbase/regionserver/CompactingMemStore.html  |    2 +-
 .../hbase/rsgroup/RSGroupAdminServer.html       | 1271 ++++++------
 downloads.html                                  |    4 +-
 export_control.html                             |    4 +-
 index.html                                      |    4 +-
 integration.html                                |    4 +-
 issue-tracking.html                             |    4 +-
 license.html                                    |    4 +-
 mail-lists.html                                 |    4 +-
 metrics.html                                    |    4 +-
 old_news.html                                   |    4 +-
 plugin-management.html                          |    4 +-
 plugins.html                                    |    4 +-
 poweredbyhbase.html                             |    4 +-
 project-info.html                               |    4 +-
 project-reports.html                            |    4 +-
 project-summary.html                            |    4 +-
 pseudo-distributed.html                         |    4 +-
 replication.html                                |    4 +-
 resources.html                                  |    4 +-
 source-repository.html                          |    4 +-
 sponsors.html                                   |    4 +-
 supportingprojects.html                         |    4 +-
 team-list.html                                  |    4 +-
 testdevapidocs/index-all.html                   |    6 +
 .../hadoop/hbase/TestPerformanceEvaluation.html |   57 +-
 .../hadoop/hbase/backup/package-tree.html       |    2 +-
 .../apache/hadoop/hbase/client/TestScan.html    |   46 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |    2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    8 +-
 .../hadoop/hbase/procedure2/package-tree.html   |    4 +-
 .../hadoop/hbase/regionserver/package-tree.html |    4 +-
 .../hbase/rsgroup/IntegrationTestRSGroup.html   |    2 +-
 .../hadoop/hbase/rsgroup/TestRSGroups.html      |    2 +-
 .../hadoop/hbase/rsgroup/TestRSGroupsBase.html  |   60 +-
 .../apache/hadoop/hbase/test/package-tree.html  |    4 +-
 .../hbase/thrift/TestThriftHttpServer.html      |   44 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |    4 +-
 .../hadoop/hbase/TestPerformanceEvaluation.html |  384 ++--
 .../apache/hadoop/hbase/client/TestScan.html    |  436 ++--
 .../hadoop/hbase/rsgroup/TestRSGroupsBase.html  | 1485 ++++++-------
 .../hbase/thrift/TestThriftHttpServer.html      |  351 ++--
 93 files changed, 6747 insertions(+), 6499 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/acid-semantics.html
----------------------------------------------------------------------
diff --git a/acid-semantics.html b/acid-semantics.html
index b58d659..211bca3 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 982e0bf..db0494c 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:20180508142954+00'00')
-/CreationDate (D:20180508144458+00'00')
+/ModDate (D:20180509151357+00'00')
+/CreationDate (D:20180509152901+00'00')
 >>
 endobj
 2 0 obj

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/apidocs/org/apache/hadoop/hbase/client/Scan.ReadType.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/client/Scan.ReadType.html b/apidocs/org/apache/hadoop/hbase/client/Scan.ReadType.html
index 37e3cb0..2a74fd2 100644
--- a/apidocs/org/apache/hadoop/hbase/client/Scan.ReadType.html
+++ b/apidocs/org/apache/hadoop/hbase/client/Scan.ReadType.html
@@ -123,7 +123,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Public
-public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1176">Scan.ReadType</a>
+public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1179">Scan.ReadType</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/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a>&gt;</pre>
 </li>
 </ul>
@@ -214,7 +214,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/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html#line.1177">DEFAULT</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html#line.1180">DEFAULT</a></pre>
 </li>
 </ul>
 <a name="STREAM">
@@ -223,7 +223,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>STREAM</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html#line.1177">STREAM</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html#line.1180">STREAM</a></pre>
 </li>
 </ul>
 <a name="PREAD">
@@ -232,7 +232,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>PREAD</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html#line.1177">PREAD</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html#line.1180">PREAD</a></pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/apidocs/org/apache/hadoop/hbase/client/Scan.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/client/Scan.html b/apidocs/org/apache/hadoop/hbase/client/Scan.html
index b93a975..5a02583 100644
--- a/apidocs/org/apache/hadoop/hbase/client/Scan.html
+++ b/apidocs/org/apache/hadoop/hbase/client/Scan.html
@@ -977,7 +977,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan
 <ul class="blockListLast">
 <li class="blockList">
 <h4>Scan</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.288">Scan</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.290">Scan</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get)</pre>
 <div class="block">Builds a scan object with the same specs as get.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -999,7 +999,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan
 <ul class="blockList">
 <li class="blockList">
 <h4>isGetScan</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.315">isGetScan</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.318">isGetScan</a>()</pre>
 </li>
 </ul>
 <a name="addFamily-byte:A-">
@@ -1008,7 +1008,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan
 <ul class="blockList">
 <li class="blockList">
 <h4>addFamily</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.327">addFamily</a>(byte[]&nbsp;family)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.330">addFamily</a>(byte[]&nbsp;family)</pre>
 <div class="block">Get all columns from the specified family.
  <p>
  Overrides previous calls to addColumn for this family.</div>
@@ -1026,7 +1026,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan
 <ul class="blockList">
 <li class="blockList">
 <h4>addColumn</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.341">addColumn</a>(byte[]&nbsp;family,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.344">addColumn</a>(byte[]&nbsp;family,
                       byte[]&nbsp;qualifier)</pre>
 <div class="block">Get the column from the specified family with the specified qualifier.
  <p>
@@ -1046,7 +1046,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan
 <ul class="blockList">
 <li class="blockList">
 <h4>setTimeRange</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.365">setTimeRange</a>(long&nbsp;minStamp,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.368">setTimeRange</a>(long&nbsp;minStamp,
                          long&nbsp;maxStamp)
                   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 versions of columns only within the specified timestamp range,
@@ -1074,7 +1074,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan
 <li class="blockList">
 <h4>setTimeStamp</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.383">setTimeStamp</a>(long&nbsp;timestamp)
+public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.386">setTimeStamp</a>(long&nbsp;timestamp)
                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">As of release 2.0.0, this will be removed in HBase 3.0.0.
              Use <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html#setTimestamp-long-"><code>setTimestamp(long)</code></a> instead</span></div>
@@ -1101,7 +1101,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setTimestamp</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.398">setTimestamp</a>(long&nbsp;timestamp)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.401">setTimestamp</a>(long&nbsp;timestamp)</pre>
 <div class="block">Get versions of columns with the specified timestamp. Note, default maximum
  versions to return is 1.  If your time range spans more than one version
  and you want all versions returned, up the number of versions beyond the
@@ -1123,7 +1123,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setColumnFamilyTimeRange</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.410">setColumnFamilyTimeRange</a>(byte[]&nbsp;cf,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.413">setColumnFamilyTimeRange</a>(byte[]&nbsp;cf,
                                      long&nbsp;minStamp,
                                      long&nbsp;maxStamp)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html#setColumnFamilyTimeRange-byte:A-long-long-">Query</a></code></span></div>
@@ -1151,7 +1151,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <li class="blockList">
 <h4>setStartRow</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.427">setStartRow</a>(byte[]&nbsp;startRow)</pre>
+public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.430">setStartRow</a>(byte[]&nbsp;startRow)</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">use <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html#withStartRow-byte:A-"><code>withStartRow(byte[])</code></a> instead. This method may change the inclusive of
              the stop row to keep compatible with the old behavior.</span></div>
 <div class="block">Set the start row of the scan.
@@ -1175,7 +1175,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>withStartRow</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.446">withStartRow</a>(byte[]&nbsp;startRow)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.449">withStartRow</a>(byte[]&nbsp;startRow)</pre>
 <div class="block">Set the start row of the scan.
  <p>
  If the specified row does not exist, the Scanner will start from the next closest row after the
@@ -1197,7 +1197,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>withStartRow</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.461">withStartRow</a>(byte[]&nbsp;startRow,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.464">withStartRow</a>(byte[]&nbsp;startRow,
                          boolean&nbsp;inclusive)</pre>
 <div class="block">Set the start row of the scan.
  <p>
@@ -1222,7 +1222,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <li class="blockList">
 <h4>setStopRow</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.487">setStopRow</a>(byte[]&nbsp;stopRow)</pre>
+public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.490">setStopRow</a>(byte[]&nbsp;stopRow)</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">use <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html#withStartRow-byte:A-"><code>withStartRow(byte[])</code></a> instead. This method may change the inclusive of
              the stop row to keep compatible with the old behavior.</span></div>
 <div class="block">Set the stop row of the scan.
@@ -1249,7 +1249,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>withStopRow</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.509">withStopRow</a>(byte[]&nbsp;stopRow)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.512">withStopRow</a>(byte[]&nbsp;stopRow)</pre>
 <div class="block">Set the stop row of the scan.
  <p>
  The scan will include rows that are lexicographically less than the provided stopRow.
@@ -1274,7 +1274,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>withStopRow</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.524">withStopRow</a>(byte[]&nbsp;stopRow,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.527">withStopRow</a>(byte[]&nbsp;stopRow,
                         boolean&nbsp;inclusive)</pre>
 <div class="block">Set the stop row of the scan.
  <p>
@@ -1298,7 +1298,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setRowPrefixFilter</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.545">setRowPrefixFilter</a>(byte[]&nbsp;rowPrefix)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.548">setRowPrefixFilter</a>(byte[]&nbsp;rowPrefix)</pre>
 <div class="block"><p>Set a filter (using stopRow and startRow) so the result set only contains rows where the
  rowKey starts with the specified prefix.</p>
  <p>This is a utility method that converts the desired rowPrefix into the appropriate values
@@ -1321,7 +1321,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <li class="blockList">
 <h4>setMaxVersions</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.605">setMaxVersions</a>()</pre>
+public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.608">setMaxVersions</a>()</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">It is easy to misunderstand with column family's max versions, so use
              <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html#readAllVersions--"><code>readAllVersions()</code></a> instead.</span></div>
 <div class="block">Get all available versions.</div>
@@ -1338,7 +1338,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <li class="blockList">
 <h4>setMaxVersions</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.617">setMaxVersions</a>(int&nbsp;maxVersions)</pre>
+public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.620">setMaxVersions</a>(int&nbsp;maxVersions)</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">It is easy to misunderstand with column family's max versions, so use
              <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html#readVersions-int-"><code>readVersions(int)</code></a> instead.</span></div>
 <div class="block">Get up to the specified number of versions of each column.</div>
@@ -1356,7 +1356,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>readAllVersions</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.625">readAllVersions</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.628">readAllVersions</a>()</pre>
 <div class="block">Get all available versions.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1370,7 +1370,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>readVersions</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.635">readVersions</a>(int&nbsp;versions)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.638">readVersions</a>(int&nbsp;versions)</pre>
 <div class="block">Get up to the specified number of versions of each column.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1386,7 +1386,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setBatch</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.649">setBatch</a>(int&nbsp;batch)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.652">setBatch</a>(int&nbsp;batch)</pre>
 <div class="block">Set the maximum number of cells to return for each call to next(). Callers should be aware
  that this is not equivalent to calling <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html#setAllowPartialResults-boolean-"><code>setAllowPartialResults(boolean)</code></a>.
  If you don't allow partial results, the number of cells in each Result must equal to your
@@ -1406,7 +1406,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setMaxResultsPerColumnFamily</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.663">setMaxResultsPerColumnFamily</a>(int&nbsp;limit)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.666">setMaxResultsPerColumnFamily</a>(int&nbsp;limit)</pre>
 <div class="block">Set the maximum number of values to return per row per Column Family</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1420,7 +1420,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setRowOffsetPerColumnFamily</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.672">setRowOffsetPerColumnFamily</a>(int&nbsp;offset)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.675">setRowOffsetPerColumnFamily</a>(int&nbsp;offset)</pre>
 <div class="block">Set offset for the row per Column Family.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1434,7 +1434,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setCaching</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.684">setCaching</a>(int&nbsp;caching)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.687">setCaching</a>(int&nbsp;caching)</pre>
 <div class="block">Set the number of rows for caching that will be passed to scanners.
  If not set, the Configuration setting <a href="../../../../../org/apache/hadoop/hbase/HConstants.html#HBASE_CLIENT_SCANNER_CACHING"><code>HConstants.HBASE_CLIENT_SCANNER_CACHING</code></a> will
  apply.
@@ -1451,7 +1451,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxResultSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.692">getMaxResultSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.695">getMaxResultSize</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the maximum result size in bytes. See <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html#setMaxResultSize-long-"><code>setMaxResultSize(long)</code></a></dd>
@@ -1464,7 +1464,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setMaxResultSize</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.703">setMaxResultSize</a>(long&nbsp;maxResultSize)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.706">setMaxResultSize</a>(long&nbsp;maxResultSize)</pre>
 <div class="block">Set the maximum result size. The default is -1; this means that no specific
  maximum result size will be set for this scan, and the global configured
  value will be used instead. (Defaults to unlimited).</div>
@@ -1480,7 +1480,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setFilter</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.709">setFilter</a>(<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;filter)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.712">setFilter</a>(<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;filter)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html#setFilter-org.apache.hadoop.hbase.filter.Filter-">Query</a></code></span></div>
 <div class="block">Apply the specified server-side filter when performing the Query. Only
  <a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterCell-org.apache.hadoop.hbase.Cell-"><code>Filter.filterCell(org.apache.hadoop.hbase.Cell)</code></a> is called AFTER all tests for ttl,
@@ -1501,7 +1501,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setFamilyMap</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.719">setFamilyMap</a>(<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;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a>&lt;byte[]&gt;&gt;&nbsp;familyMap)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.722">setFamilyMap</a>(<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;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a>&lt;byte[]&gt;&gt;&nbsp;familyMap)</pre>
 <div class="block">Setting the familyMap</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1517,7 +1517,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getFamilyMap</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;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a>&lt;byte[]&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.728">getFamilyMap</a>()</pre>
+<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;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a>&lt;byte[]&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.731">getFamilyMap</a>()</pre>
 <div class="block">Getting the familyMap</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1531,7 +1531,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>numFamilies</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.735">numFamilies</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.738">numFamilies</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the number of families in familyMap</dd>
@@ -1544,7 +1544,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>hasFamilies</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.745">hasFamilies</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.748">hasFamilies</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if familyMap is non empty, false otherwise</dd>
@@ -1557,7 +1557,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getFamilies</h4>
-<pre>public&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.752">getFamilies</a>()</pre>
+<pre>public&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.755">getFamilies</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the keys of the familyMap</dd>
@@ -1570,7 +1570,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getStartRow</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.762">getStartRow</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.765">getStartRow</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the startrow</dd>
@@ -1583,7 +1583,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>includeStartRow</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.769">includeStartRow</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.772">includeStartRow</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>if we should include start row when scan</dd>
@@ -1596,7 +1596,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getStopRow</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.776">getStopRow</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.779">getStopRow</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the stoprow</dd>
@@ -1609,7 +1609,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>includeStopRow</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.783">includeStopRow</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.786">includeStopRow</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>if we should include stop row when scan</dd>
@@ -1622,7 +1622,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxVersions</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.790">getMaxVersions</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.793">getMaxVersions</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the max number of versions to fetch</dd>
@@ -1635,7 +1635,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getBatch</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.797">getBatch</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.800">getBatch</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>maximum number of values to return for a single call to next()</dd>
@@ -1648,7 +1648,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxResultsPerColumnFamily</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.804">getMaxResultsPerColumnFamily</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.807">getMaxResultsPerColumnFamily</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>maximum number of values to return per row per CF</dd>
@@ -1661,7 +1661,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getRowOffsetPerColumnFamily</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.813">getRowOffsetPerColumnFamily</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.816">getRowOffsetPerColumnFamily</a>()</pre>
 <div class="block">Method for retrieving the scan's offset per row per column
  family (#kvs to be skipped)</div>
 <dl>
@@ -1676,7 +1676,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getCaching</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.820">getCaching</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.823">getCaching</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>caching the number of rows fetched when calling next on a scanner</dd>
@@ -1689,7 +1689,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getTimeRange</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/TimeRange.html" title="class in org.apache.hadoop.hbase.io">TimeRange</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.827">getTimeRange</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/TimeRange.html" title="class in org.apache.hadoop.hbase.io">TimeRange</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.830">getTimeRange</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>TimeRange</dd>
@@ -1702,7 +1702,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getFilter</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.835">getFilter</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.838">getFilter</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html#getFilter--">getFilter</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html" title="class in org.apache.hadoop.hbase.client">Query</a></code></dd>
@@ -1717,7 +1717,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>hasFilter</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.842">hasFilter</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.845">hasFilter</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true is a filter has been specified, false if not</dd>
@@ -1730,7 +1730,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setCacheBlocks</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.856">setCacheBlocks</a>(boolean&nbsp;cacheBlocks)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.859">setCacheBlocks</a>(boolean&nbsp;cacheBlocks)</pre>
 <div class="block">Set whether blocks should be cached for this Scan.
  <p>
  This is true by default.  When true, default settings of the table and
@@ -1749,7 +1749,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getCacheBlocks</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.866">getCacheBlocks</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.869">getCacheBlocks</a>()</pre>
 <div class="block">Get whether blocks should be cached for this Scan.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1764,7 +1764,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setReversed</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.878">setReversed</a>(boolean&nbsp;reversed)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.881">setReversed</a>(boolean&nbsp;reversed)</pre>
 <div class="block">Set whether this scan is a reversed one
  <p>
  This is false by default which means forward(normal) scan.</div>
@@ -1782,7 +1782,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>isReversed</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.887">isReversed</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.890">isReversed</a>()</pre>
 <div class="block">Get whether this scan is a reversed one.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1796,7 +1796,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setAllowPartialResults</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.901">setAllowPartialResults</a>(boolean&nbsp;allowPartialResults)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.904">setAllowPartialResults</a>(boolean&nbsp;allowPartialResults)</pre>
 <div class="block">Setting whether the caller wants to see the partial results when server returns
  less-than-expected cells. It is helpful while scanning a huge row to prevent OOM at client.
  By default this value is false and the complete results will be assembled client side
@@ -1818,7 +1818,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getAllowPartialResults</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.911">getAllowPartialResults</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.914">getAllowPartialResults</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true when the constructor of this scan understands that the results they will see may
@@ -1833,7 +1833,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setLoadColumnFamiliesOnDemand</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.916">setLoadColumnFamiliesOnDemand</a>(boolean&nbsp;value)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.919">setLoadColumnFamiliesOnDemand</a>(boolean&nbsp;value)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html#setLoadColumnFamiliesOnDemand-boolean-">Query</a></code></span></div>
 <div class="block">Set the value indicating whether loading CFs on demand should be allowed (cluster
  default is false). On-demand CF loading doesn't load column families until necessary, e.g.
@@ -1861,7 +1861,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getFingerprint</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/lang/String.html?is-external=true" title="class or interface in java.lang">String</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>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.927">getFingerprint</a>()</pre>
+<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/lang/String.html?is-external=true" title="class or interface in java.lang">String</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>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.930">getFingerprint</a>()</pre>
 <div class="block">Compile the table and column family (i.e. schema) information
  into a String. Useful for parsing and aggregation by debugging,
  logging, and administration tools.</div>
@@ -1879,7 +1879,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>toMap</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/lang/String.html?is-external=true" title="class or interface in java.lang">String</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>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.951">toMap</a>(int&nbsp;maxCols)</pre>
+<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/lang/String.html?is-external=true" title="class or interface in java.lang">String</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>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.954">toMap</a>(int&nbsp;maxCols)</pre>
 <div class="block">Compile the details beyond the scope of getFingerprint (row, columns,
  timestamps, etc.) into a Map along with the fingerprinted information.
  Useful for debugging, logging, and administration tools.</div>
@@ -1899,7 +1899,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setRaw</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1014">setRaw</a>(boolean&nbsp;raw)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1017">setRaw</a>(boolean&nbsp;raw)</pre>
 <div class="block">Enable/disable "raw" mode for this scan.
  If "raw" is enabled the scan will return all
  delete marker and deleted rows that have not
@@ -1919,7 +1919,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>isRaw</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1022">isRaw</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1025">isRaw</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>True if this Scan is in "raw" mode.</dd>
@@ -1933,7 +1933,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <li class="blockList">
 <h4>setSmall</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1045">setSmall</a>(boolean&nbsp;small)</pre>
+public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1048">setSmall</a>(boolean&nbsp;small)</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">since 2.0.0. Use <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html#setLimit-int-"><code>setLimit(int)</code></a> and <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html#setReadType-org.apache.hadoop.hbase.client.Scan.ReadType-"><code>setReadType(ReadType)</code></a> instead.
              And for the one rpc optimization, now we will also fetch data when openScanner, and
              if the number of rows reaches the limit then we will close the scanner
@@ -1962,7 +1962,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <li class="blockList">
 <h4>isSmall</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1057">isSmall</a>()</pre>
+public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1060">isSmall</a>()</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">since 2.0.0. See the comment of <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html#setSmall-boolean-"><code>setSmall(boolean)</code></a></span></div>
 <div class="block">Get whether this scan is a small scan</div>
 <dl>
@@ -1977,7 +1977,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setAttribute</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1062">setAttribute</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1065">setAttribute</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,
                          byte[]&nbsp;value)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Attributes.html#setAttribute-java.lang.String-byte:A-">Attributes</a></code></span></div>
 <div class="block">Sets an attribute.
@@ -2000,7 +2000,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setId</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1067">setId</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;id)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1070">setId</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;id)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/OperationWithAttributes.html#setId-java.lang.String-">OperationWithAttributes</a></code></span></div>
 <div class="block">This method allows you to set an identifier on an operation. The original
  motivation for this was to allow the identifier to be used in slow query
@@ -2021,7 +2021,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setAuthorizations</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1072">setAuthorizations</a>(org.apache.hadoop.hbase.security.visibility.Authorizations&nbsp;authorizations)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1075">setAuthorizations</a>(org.apache.hadoop.hbase.security.visibility.Authorizations&nbsp;authorizations)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html#setAuthorizations-org.apache.hadoop.hbase.security.visibility.Authorizations-">Query</a></code></span></div>
 <div class="block">Sets the authorizations to be used by this Query</div>
 <dl>
@@ -2036,7 +2036,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setACL</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1077">setACL</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.hadoop.hbase.security.access.Permission&gt;&nbsp;perms)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1080">setACL</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.hadoop.hbase.security.access.Permission&gt;&nbsp;perms)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html#setACL-java.util.Map-">setACL</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html" title="class in org.apache.hadoop.hbase.client">Query</a></code></dd>
@@ -2051,7 +2051,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setACL</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1082">setACL</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;user,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1085">setACL</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;user,
                    org.apache.hadoop.hbase.security.access.Permission&nbsp;perms)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
@@ -2068,7 +2068,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setConsistency</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1087">setConsistency</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client">Consistency</a>&nbsp;consistency)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1090">setConsistency</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client">Consistency</a>&nbsp;consistency)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html#setConsistency-org.apache.hadoop.hbase.client.Consistency-">Query</a></code></span></div>
 <div class="block">Sets the consistency level for this operation</div>
 <dl>
@@ -2085,7 +2085,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setReplicaId</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1092">setReplicaId</a>(int&nbsp;Id)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1095">setReplicaId</a>(int&nbsp;Id)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html#setReplicaId-int-">Query</a></code></span></div>
 <div class="block">Specify region replica id where Query will fetch data from. Use this together with
  <a href="../../../../../org/apache/hadoop/hbase/client/Query.html#setConsistency-org.apache.hadoop.hbase.client.Consistency-"><code>Query.setConsistency(Consistency)</code></a> passing <a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html#TIMELINE"><code>Consistency.TIMELINE</code></a> to read data from
@@ -2103,7 +2103,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setIsolationLevel</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1097">setIsolationLevel</a>(<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>&nbsp;level)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1100">setIsolationLevel</a>(<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>&nbsp;level)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html#setIsolationLevel-org.apache.hadoop.hbase.client.IsolationLevel-">Query</a></code></span></div>
 <div class="block">Set the isolation level for this query. If the
  isolation level is set to READ_UNCOMMITTED, then
@@ -2127,7 +2127,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setPriority</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1102">setPriority</a>(int&nbsp;priority)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1105">setPriority</a>(int&nbsp;priority)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/OperationWithAttributes.html#setPriority-int-">setPriority</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/OperationWithAttributes.html" title="class in org.apache.hadoop.hbase.client">OperationWithAttributes</a></code></dd>
@@ -2140,7 +2140,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setScanMetricsEnabled</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1110">setScanMetricsEnabled</a>(boolean&nbsp;enabled)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1113">setScanMetricsEnabled</a>(boolean&nbsp;enabled)</pre>
 <div class="block">Enable collection of <code>ScanMetrics</code>. For advanced users.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2154,7 +2154,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>isScanMetricsEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1118">isScanMetricsEnabled</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1121">isScanMetricsEnabled</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>True if collection of scan metrics is enabled. For advanced users.</dd>
@@ -2168,7 +2168,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <li class="blockList">
 <h4>getScanMetrics</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public&nbsp;org.apache.hadoop.hbase.client.metrics.ScanMetrics&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1131">getScanMetrics</a>()</pre>
+public&nbsp;org.apache.hadoop.hbase.client.metrics.ScanMetrics&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1134">getScanMetrics</a>()</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../../org/apache/hadoop/hbase/client/ResultScanner.html#getScanMetrics--"><code>ResultScanner.getScanMetrics()</code></a> instead. And notice that, please do not
              use this method and <a href="../../../../../org/apache/hadoop/hbase/client/ResultScanner.html#getScanMetrics--"><code>ResultScanner.getScanMetrics()</code></a> together, the metrics
              will be messed up.</span></div>
@@ -2186,7 +2186,7 @@ public&nbsp;org.apache.hadoop.hbase.client.metrics.ScanMetrics&nbsp;<a href="../
 <ul class="blockList">
 <li class="blockList">
 <h4>isAsyncPrefetch</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1137">isAsyncPrefetch</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1140">isAsyncPrefetch</a>()</pre>
 </li>
 </ul>
 <a name="setAsyncPrefetch-boolean-">
@@ -2195,7 +2195,7 @@ public&nbsp;org.apache.hadoop.hbase.client.metrics.ScanMetrics&nbsp;<a href="../
 <ul class="blockList">
 <li class="blockList">
 <h4>setAsyncPrefetch</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1141">setAsyncPrefetch</a>(boolean&nbsp;asyncPrefetch)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1144">setAsyncPrefetch</a>(boolean&nbsp;asyncPrefetch)</pre>
 </li>
 </ul>
 <a name="getLimit--">
@@ -2204,7 +2204,7 @@ public&nbsp;org.apache.hadoop.hbase.client.metrics.ScanMetrics&nbsp;<a href="../
 <ul class="blockList">
 <li class="blockList">
 <h4>getLimit</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1149">getLimit</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1152">getLimit</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the limit of rows for this scan</dd>
@@ -2217,7 +2217,7 @@ public&nbsp;org.apache.hadoop.hbase.client.metrics.ScanMetrics&nbsp;<a href="../
 <ul class="blockList">
 <li class="blockList">
 <h4>setLimit</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1161">setLimit</a>(int&nbsp;limit)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1164">setLimit</a>(int&nbsp;limit)</pre>
 <div class="block">Set the limit of rows for this scan. We will terminate the scan if the number of returned rows
  reaches this value.
  <p>
@@ -2236,7 +2236,7 @@ public&nbsp;org.apache.hadoop.hbase.client.metrics.ScanMetrics&nbsp;<a href="../
 <ul class="blockList">
 <li class="blockList">
 <h4>setOneRowLimit</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1171">setOneRowLimit</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1174">setOneRowLimit</a>()</pre>
 <div class="block">Call this when you only want to get one row. It will set <code>limit</code> to <code>1</code>, and also
  set <code>readType</code> to <a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html#PREAD"><code>Scan.ReadType.PREAD</code></a>.</div>
 <dl>
@@ -2251,7 +2251,7 @@ public&nbsp;org.apache.hadoop.hbase.client.metrics.ScanMetrics&nbsp;<a href="../
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadType</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1183">getReadType</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1186">getReadType</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the read type for this scan</dd>
@@ -2264,7 +2264,7 @@ public&nbsp;org.apache.hadoop.hbase.client.metrics.ScanMetrics&nbsp;<a href="../
 <ul class="blockList">
 <li class="blockList">
 <h4>setReadType</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1194">setReadType</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a>&nbsp;readType)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1197">setReadType</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a>&nbsp;readType)</pre>
 <div class="block">Set the read type for this scan.
  <p>
  Notice that we may choose to use pread even if you specific <a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html#STREAM"><code>Scan.ReadType.STREAM</code></a> here. For
@@ -2281,7 +2281,7 @@ public&nbsp;org.apache.hadoop.hbase.client.metrics.ScanMetrics&nbsp;<a href="../
 <ul class="blockList">
 <li class="blockList">
 <h4>setNeedCursorResult</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1240">setNeedCursorResult</a>(boolean&nbsp;needCursorResult)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1243">setNeedCursorResult</a>(boolean&nbsp;needCursorResult)</pre>
 <div class="block">When the server is slow or we scan a table with many deleted data or we use a sparse filter,
  the server will response heartbeat to prevent timeout. However the scanner will return a Result
  only when client can do it. So if there are many heartbeats, the blocking time on
@@ -2307,7 +2307,7 @@ public&nbsp;org.apache.hadoop.hbase.client.metrics.ScanMetrics&nbsp;<a href="../
 <ul class="blockList">
 <li class="blockList">
 <h4>isNeedCursorResult</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1245">isNeedCursorResult</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1248">isNeedCursorResult</a>()</pre>
 </li>
 </ul>
 <a name="createScanFromCursor-org.apache.hadoop.hbase.client.Cursor-">
@@ -2316,7 +2316,7 @@ public&nbsp;org.apache.hadoop.hbase.client.metrics.ScanMetrics&nbsp;<a href="../
 <ul class="blockListLast">
 <li class="blockList">
 <h4>createScanFromCursor</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1256">createScanFromCursor</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Cursor.html" title="class in org.apache.hadoop.hbase.client">Cursor</a>&nbsp;cursor)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1259">createScanFromCursor</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Cursor.html" title="class in org.apache.hadoop.hbase.client">Cursor</a>&nbsp;cursor)</pre>
 <div class="block">Create a new Scan with a cursor. It only set the position information like start row key.
  The others (like cfs, stop row, limit) should still be filled in by the user.
  <a href="../../../../../org/apache/hadoop/hbase/client/Result.html#isCursor--"><code>Result.isCursor()</code></a>


[10/16] hbase-site git commit: Published site at 4f2dfd387779968d3b76a22f1f4189d3278b202d.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html
index 2c66066..318edf4 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html
@@ -137,14 +137,18 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <th class="colLast" scope="col">Field and Description</th>
 </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/rsgroup/RSGroupAdminServer.html#KEEP_ONE_SERVER_IN_DEFAULT_ERROR_MESSAGE">KEEP_ONE_SERVER_IN_DEFAULT_ERROR_MESSAGE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private static org.slf4j.Logger</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#master">master</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#rsGroupInfoManager">rsGroupInfoManager</a></span></code>&nbsp;</td>
 </tr>
@@ -341,13 +345,26 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.58">LOG</a></pre>
 </li>
 </ul>
+<a name="KEEP_ONE_SERVER_IN_DEFAULT_ERROR_MESSAGE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>KEEP_ONE_SERVER_IN_DEFAULT_ERROR_MESSAGE</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/rsgroup/RSGroupAdminServer.html#line.59">KEEP_ONE_SERVER_IN_DEFAULT_ERROR_MESSAGE</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.KEEP_ONE_SERVER_IN_DEFAULT_ERROR_MESSAGE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
 <a name="master">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>master</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.60">master</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.62">master</a></pre>
 </li>
 </ul>
 <a name="rsGroupInfoManager">
@@ -356,7 +373,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>rsGroupInfoManager</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.61">rsGroupInfoManager</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.63">rsGroupInfoManager</a></pre>
 </li>
 </ul>
 </li>
@@ -373,7 +390,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RSGroupAdminServer</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.63">RSGroupAdminServer</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;master,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.65">RSGroupAdminServer</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;master,
                           <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a>&nbsp;rsGroupInfoManager)
                    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>
@@ -396,7 +413,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroupInfo</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.70">getRSGroupInfo</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;groupName)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.72">getRSGroupInfo</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;groupName)
                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#getRSGroupInfo-java.lang.String-">RSGroupAdmin</a></code></span></div>
 <div class="block">Gets <code>RSGroupInfo</code> for given group name.</div>
@@ -414,7 +431,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroupInfoOfTable</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.75">getRSGroupInfoOfTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.77">getRSGroupInfoOfTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#getRSGroupInfoOfTable-org.apache.hadoop.hbase.TableName-">RSGroupAdmin</a></code></span></div>
 <div class="block">Gets <code>RSGroupInfo</code> for the given table's group.</div>
@@ -432,7 +449,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>checkOnlineServersOnly</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.82">checkOnlineServersOnly</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.84">checkOnlineServersOnly</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)
                              throws <a href="../../../../../org/apache/hadoop/hbase/constraint/ConstraintException.html" title="class in org.apache.hadoop.hbase.constraint">ConstraintException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -446,7 +463,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>getAndCheckRSGroupInfo</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.101">getAndCheckRSGroupInfo</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>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.103">getAndCheckRSGroupInfo</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)
                                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Check passed name. Fail if nulls or if corresponding RSGroupInfo not found.</div>
 <dl>
@@ -463,7 +480,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegions</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.116">getRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&nbsp;server)</pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.118">getRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&nbsp;server)</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>List of Regions associated with this <code>server</code>.</dd>
@@ -476,7 +493,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>addRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.136">addRegion</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regions,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.138">addRegion</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regions,
                        <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri)</pre>
 </li>
 </ul>
@@ -486,7 +503,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>checkServersAndTables</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.155">checkServersAndTables</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.157">checkServersAndTables</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                                    <a href="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;targetGroupName)
                             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>
@@ -507,7 +524,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>moveRegionsFromServers</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.205">moveRegionsFromServers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.207">moveRegionsFromServers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                                     <a href="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;targetGroupName)
                              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>
@@ -529,7 +546,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>moveRegionsToServers</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.258">moveRegionsToServers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.260">moveRegionsToServers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                                   <a href="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;targetGroupName)
                            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>
@@ -551,7 +568,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>moveServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.277">moveServers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.279">moveServers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                         <a href="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;targetGroupName)
                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#moveServers-java.util.Set-java.lang.String-">RSGroupAdmin</a></code></span></div>
@@ -570,7 +587,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>moveTables</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.376">moveTables</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.381">moveTables</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                        <a href="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;targetGroup)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#moveTables-java.util.Set-java.lang.String-">RSGroupAdmin</a></code></span></div>
@@ -590,7 +607,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>addRSGroup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.436">addRSGroup</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.441">addRSGroup</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#addRSGroup-java.lang.String-">RSGroupAdmin</a></code></span></div>
 <div class="block">Creates a new RegionServer group with the given name.</div>
@@ -608,7 +625,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>removeRSGroup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.447">removeRSGroup</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.452">removeRSGroup</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)
                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#removeRSGroup-java.lang.String-">RSGroupAdmin</a></code></span></div>
 <div class="block">Removes RegionServer group associated with the given name.</div>
@@ -626,7 +643,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>balanceRSGroup</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.485">balanceRSGroup</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;groupName)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.490">balanceRSGroup</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;groupName)
                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#balanceRSGroup-java.lang.String-">RSGroupAdmin</a></code></span></div>
 <div class="block">Balance regions in the given RegionServer group.</div>
@@ -646,7 +663,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>listRSGroups</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.548">listRSGroups</a>()
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.553">listRSGroups</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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#listRSGroups--">RSGroupAdmin</a></code></span></div>
 <div class="block">Lists current set of RegionServer groups.</div>
@@ -664,7 +681,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroupOfServer</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.553">getRSGroupOfServer</a>(<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&nbsp;hostPort)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.558">getRSGroupOfServer</a>(<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&nbsp;hostPort)
                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#getRSGroupOfServer-org.apache.hadoop.hbase.net.Address-">RSGroupAdmin</a></code></span></div>
 <div class="block">Retrieve the RSGroupInfo a server is affiliated to</div>
@@ -684,7 +701,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>moveServersAndTables</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.558">moveServersAndTables</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.563">moveServersAndTables</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                                  <a href="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;targetGroup)
                           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>
@@ -708,7 +725,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>removeServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.597">removeServers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.602">removeServers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)
                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#removeServers-java.util.Set-">RSGroupAdmin</a></code></span></div>
 <div class="block">Remove decommissioned servers from rsgroup.
@@ -732,7 +749,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>rsGroupGetRegionsInTransition</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html" title="class in org.apache.hadoop.hbase.master">RegionState</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.619">rsGroupGetRegionsInTransition</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;groupName)
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html" title="class in org.apache.hadoop.hbase.master">RegionState</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.624">rsGroupGetRegionsInTransition</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;groupName)
                                                        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>
@@ -746,7 +763,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroupAssignmentsByTable</h4>
-<pre>private&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="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<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="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.635">getRSGroupAssignmentsByTable</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;groupName)
+<pre>private&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="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<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="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.640">getRSGroupAssignmentsByTable</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;groupName)
                                                                               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>
@@ -760,7 +777,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>checkForDeadOrOnlineServers</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.675">checkForDeadOrOnlineServers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.680">checkForDeadOrOnlineServers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)
                                   throws <a href="../../../../../org/apache/hadoop/hbase/constraint/ConstraintException.html" title="class in org.apache.hadoop.hbase.constraint">ConstraintException</a></pre>
 <div class="block">Check if the set of servers are belong to dead servers list or online servers list.</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/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 e0eb9a0..5a7e325 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
@@ -137,8 +137,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.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>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessController.OpType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Action</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/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 7ba3a64..dfa02b5 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/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/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 2b64b99..8e41b8e 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
@@ -198,9 +198,9 @@
 <ul>
 <li type="circle">java.lang.<a href="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/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>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftServerRunner.ImplType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/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 ca7cc25..bf2f539 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/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>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
+<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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/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 602e218..aa2e6f7 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 = "1825af45b328cd54680c5c552f07bb12c4705fdb";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "4f2dfd387779968d3b76a22f1f4189d3278b202d";<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 = "Tue May  8 14:39:27 UTC 2018";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Wed May  9 15:23:26 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 = "ffc5680715ed56f21d5623cc15a65008";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "3d3c386d39a315d3821dcd77bdbf3342";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 


[04/16] hbase-site git commit: Published site at 4f2dfd387779968d3b76a22f1f4189d3278b202d.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html b/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html
index 2b048e2..70caa41 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -308,30 +308,34 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i21" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMultiTableMove--">testMultiTableMove</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServersFromDefaultGroup--">testMoveServersFromDefaultGroup</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i22" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testNonExistentTableMove--">testNonExistentTableMove</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMultiTableMove--">testMultiTableMove</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i23" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRegionMove--">testRegionMove</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testNonExistentTableMove--">testNonExistentTableMove</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i24" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRemoveServers--">testRemoveServers</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRegionMove--">testRegionMove</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i25" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testSimpleRegionServerMove--">testSimpleRegionServerMove</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRemoveServers--">testRemoveServers</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i26" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testTableMoveTruncateAndDrop--">testTableMoveTruncateAndDrop</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testSimpleRegionServerMove--">testSimpleRegionServerMove</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i27" class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testTableMoveTruncateAndDrop--">testTableMoveTruncateAndDrop</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testValidGroupNames--">testValidGroupNames</a></span>()</code>&nbsp;</td>
 </tr>
 </table>
@@ -719,13 +723,27 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
+<a name="testMoveServersFromDefaultGroup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testMoveServersFromDefaultGroup</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.343">testMoveServersFromDefaultGroup</a>()
+                                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="testTableMoveTruncateAndDrop--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>testTableMoveTruncateAndDrop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.343">testTableMoveTruncateAndDrop</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.390">testTableMoveTruncateAndDrop</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>
@@ -739,7 +757,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testGroupBalance</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.401">testGroupBalance</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.448">testGroupBalance</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>
@@ -753,7 +771,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testRegionMove</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.479">testRegionMove</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.526">testRegionMove</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>
@@ -767,7 +785,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testFailRemoveGroup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.552">testFailRemoveGroup</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.599">testFailRemoveGroup</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>
@@ -783,7 +801,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testKillRS</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.585">testKillRS</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.632">testKillRS</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>
@@ -797,7 +815,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testValidGroupNames</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.654">testValidGroupNames</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.701">testValidGroupNames</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>
@@ -811,7 +829,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getGroupName</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>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.672">getGroupName</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;baseName)</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>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.719">getGroupName</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;baseName)</pre>
 </li>
 </ul>
 <a name="testMultiTableMove--">
@@ -820,7 +838,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testMultiTableMove</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.677">testMultiTableMove</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.724">testMultiTableMove</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>
@@ -834,7 +852,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testDisabledTableMove</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.733">testDisabledTableMove</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.780">testDisabledTableMove</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>
@@ -848,7 +866,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testNonExistentTableMove</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.766">testNonExistentTableMove</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.813">testNonExistentTableMove</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>
@@ -862,7 +880,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testMoveServersAndTables</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.797">testMoveServersAndTables</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.844">testMoveServersAndTables</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>
@@ -876,7 +894,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testClearDeadServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.921">testClearDeadServers</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.968">testClearDeadServers</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>
@@ -890,7 +908,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testRemoveServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.962">testRemoveServers</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.1009">testRemoveServers</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>
@@ -904,7 +922,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>testCreateWhenRsgroupNoOnlineServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.1036">testCreateWhenRsgroupNoOnlineServers</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.1083">testCreateWhenRsgroupNoOnlineServers</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/63aade82/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 bae8c22..932a188 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
@@ -253,9 +253,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.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Verify.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
 <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>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestWithCellVisibilityLoadAndVerify.Counters</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/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 4fc2997..4ca1fb5 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html
@@ -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.61">TestThriftHttpServer</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.60">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>
@@ -272,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.64">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.63">CLASS_RULE</a></pre>
 </li>
 </ul>
 <a name="LOG">
@@ -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>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.67">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.66">LOG</a></pre>
 </li>
 </ul>
 <a name="TEST_UTIL">
@@ -290,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.70">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.69">TEST_UTIL</a></pre>
 </li>
 </ul>
 <a name="httpServerThread">
@@ -299,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.73">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.72">httpServerThread</a></pre>
 </li>
 </ul>
 <a name="httpServerException">
@@ -308,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.74">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.73">httpServerException</a></pre>
 </li>
 </ul>
 <a name="clientSideException">
@@ -317,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.76">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.75">clientSideException</a></pre>
 </li>
 </ul>
 <a name="thriftServer">
@@ -326,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.78">thriftServer</a></pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.thrift.ThriftServer <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.77">thriftServer</a></pre>
 </li>
 </ul>
 <a name="port">
@@ -335,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.79">port</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.78">port</a></pre>
 </li>
 </ul>
 <a name="exception">
@@ -344,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.137">exception</a></pre>
+<pre>public&nbsp;org.junit.rules.ExpectedException <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.132">exception</a></pre>
 </li>
 </ul>
 <a name="tableCreated">
@@ -353,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.206">tableCreated</a></pre>
+<pre>private static volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.197">tableCreated</a></pre>
 </li>
 </ul>
 </li>
@@ -370,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.61">TestThriftHttpServer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.60">TestThriftHttpServer</a>()</pre>
 </li>
 </ul>
 </li>
@@ -387,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.82">setUpBeforeClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.81">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>
@@ -401,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.92">tearDownAfterClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.91">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>
@@ -415,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.98">testExceptionThrownWhenMisConfigured</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.97">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>
@@ -429,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.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>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.116">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--">
@@ -438,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.140">testRunThriftServerWithHeaderBufferLength</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.135">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>
@@ -452,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.156">testRunThriftServer</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.151">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>
@@ -466,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.160">runThriftServer</a>(int&nbsp;customHeaderSize)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.155">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>
@@ -480,7 +480,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <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)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.188">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>
@@ -494,7 +494,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <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.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,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.199">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>
@@ -509,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.234">stopHttpServerThread</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.225">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/63aade82/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 4edd3f8..532d67b 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/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>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/FaultyFSLog.FailureType.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">FaultyFSLog.FailureType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">IOTestProvider.AllowedOperations</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/testdevapidocs/src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html
index 469dca7..7e74980 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/TestPerformanceEvaluation.html
@@ -48,196 +48,210 @@
 <span class="sourceLineNo">040</span>import org.apache.hadoop.fs.Path;<a name="line.40"></a>
 <span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.PerformanceEvaluation.RandomReadTest;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.PerformanceEvaluation.TestOptions;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.testclassification.MiscTests;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<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.Ignore;<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><a name="line.49"></a>
-<span class="sourceLineNo">050</span>@Category({MiscTests.class, SmallTests.class})<a name="line.50"></a>
-<span class="sourceLineNo">051</span>public class TestPerformanceEvaluation {<a name="line.51"></a>
-<span class="sourceLineNo">052</span><a name="line.52"></a>
-<span class="sourceLineNo">053</span>  @ClassRule<a name="line.53"></a>
-<span class="sourceLineNo">054</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.54"></a>
-<span class="sourceLineNo">055</span>      HBaseClassTestRule.forClass(TestPerformanceEvaluation.class);<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>  private static final HBaseTestingUtility HTU = new HBaseTestingUtility();<a name="line.57"></a>
-<span class="sourceLineNo">058</span><a name="line.58"></a>
-<span class="sourceLineNo">059</span>  @Test<a name="line.59"></a>
-<span class="sourceLineNo">060</span>  public void testSerialization()<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  throws JsonGenerationException, JsonMappingException, IOException {<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    PerformanceEvaluation.TestOptions options = new PerformanceEvaluation.TestOptions();<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    assertTrue(!options.isAutoFlush());<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    options.setAutoFlush(true);<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    ObjectMapper mapper = new ObjectMapper();<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    String optionsString = mapper.writeValueAsString(options);<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    PerformanceEvaluation.TestOptions optionsDeserialized =<a name="line.67"></a>
-<span class="sourceLineNo">068</span>        mapper.readValue(optionsString, PerformanceEvaluation.TestOptions.class);<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    assertTrue(optionsDeserialized.isAutoFlush());<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  }<a name="line.70"></a>
-<span class="sourceLineNo">071</span><a name="line.71"></a>
-<span class="sourceLineNo">072</span>  /**<a name="line.72"></a>
-<span class="sourceLineNo">073</span>   * Exercise the mr spec writing.  Simple assertions to make sure it is basically working.<a name="line.73"></a>
-<span class="sourceLineNo">074</span>   * @throws IOException<a name="line.74"></a>
-<span class="sourceLineNo">075</span>   */<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  @Ignore @Test<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  public void testWriteInputFile() throws IOException {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    TestOptions opts = new PerformanceEvaluation.TestOptions();<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    final int clients = 10;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    opts.setNumClientThreads(clients);<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    opts.setPerClientRunRows(10);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    Path dir =<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      PerformanceEvaluation.writeInputFile(HTU.getConfiguration(), opts, HTU.getDataTestDir());<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    FileSystem fs = FileSystem.get(HTU.getConfiguration());<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    Path p = new Path(dir, PerformanceEvaluation.JOB_INPUT_FILENAME);<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    long len = fs.getFileStatus(p).getLen();<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    assertTrue(len &gt; 0);<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    byte [] content = new byte[(int)len];<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    FSDataInputStream dis = fs.open(p);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    try {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      dis.readFully(content);<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      BufferedReader br =<a name="line.92"></a>
-<span class="sourceLineNo">093</span>        new BufferedReader(new InputStreamReader(new ByteArrayInputStream(content)));<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      int count = 0;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>      while (br.readLine() != null) {<a name="line.95"></a>
-<span class="sourceLineNo">096</span>        count++;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      }<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      assertEquals(clients, count);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    } finally {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      dis.close();<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>  @Test<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  public void testSizeCalculation() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    TestOptions opts = new PerformanceEvaluation.TestOptions();<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    opts = PerformanceEvaluation.calculateRowsAndSize(opts);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    int rows = opts.getPerClientRunRows();<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    // Default row count<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    final int defaultPerClientRunRows = 1024 * 1024;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    assertEquals(defaultPerClientRunRows, rows);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    // If size is 2G, then twice the row count.<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    opts.setSize(2.0f);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    opts = PerformanceEvaluation.calculateRowsAndSize(opts);<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    assertEquals(defaultPerClientRunRows * 2, opts.getPerClientRunRows());<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    // If two clients, then they get half the rows each.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    opts.setNumClientThreads(2);<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    opts = PerformanceEvaluation.calculateRowsAndSize(opts);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    assertEquals(defaultPerClientRunRows, opts.getPerClientRunRows());<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    // What if valueSize is 'random'? Then half of the valueSize so twice the rows.<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    opts.valueRandom = true;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    opts = PerformanceEvaluation.calculateRowsAndSize(opts);<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    assertEquals(defaultPerClientRunRows * 2, opts.getPerClientRunRows());<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  }<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>  @Test<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  public void testRandomReadCalculation() {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    TestOptions opts = new PerformanceEvaluation.TestOptions();<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    opts = PerformanceEvaluation.calculateRowsAndSize(opts);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    int rows = opts.getPerClientRunRows();<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    // Default row count<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    final int defaultPerClientRunRows = 1024 * 1024;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    assertEquals(defaultPerClientRunRows, rows);<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    // If size is 2G, then twice the row count.<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    opts.setSize(2.0f);<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    opts.setPerClientRunRows(1000);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    opts.setCmdName(PerformanceEvaluation.RANDOM_READ);<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    opts = PerformanceEvaluation.calculateRowsAndSize(opts);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    assertEquals(1000, opts.getPerClientRunRows());<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    // If two clients, then they get half the rows each.<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    opts.setNumClientThreads(2);<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    opts = PerformanceEvaluation.calculateRowsAndSize(opts);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    assertEquals(1000, opts.getPerClientRunRows());<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    Random random = new Random();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    // assuming we will get one before this loop expires<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    boolean foundValue = false;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    for (int i = 0; i &lt; 10000000; i++) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      int randomRow = PerformanceEvaluation.generateRandomRow(random, opts.totalRows);<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      if (randomRow &gt; 1000) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>        foundValue = true;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>        break;<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>    assertTrue("We need to get a value more than 1000", foundValue);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  }<a name="line.155"></a>
-<span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>  @Test<a name="line.157"></a>
-<span class="sourceLineNo">158</span>  public void testZipfian()<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  throws NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException,<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      IllegalArgumentException, InvocationTargetException {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    TestOptions opts = new PerformanceEvaluation.TestOptions();<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    opts.setValueZipf(true);<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    final int valueSize = 1024;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    opts.setValueSize(valueSize);<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    RandomReadTest rrt = new RandomReadTest(null, opts, null);<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    Constructor&lt;?&gt; ctor =<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      Histogram.class.getDeclaredConstructor(com.codahale.metrics.Reservoir.class);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    ctor.setAccessible(true);<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    Histogram histogram = (Histogram)ctor.newInstance(new UniformReservoir(1024 * 500));<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    for (int i = 0; i &lt; 100; i++) {<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      histogram.update(rrt.getValueLength(null));<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    }<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    Snapshot snapshot = histogram.getSnapshot();<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    double stddev = snapshot.getStdDev();<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    assertTrue(stddev != 0 &amp;&amp; stddev != 1.0);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    assertTrue(snapshot.getStdDev() != 0);<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    double median = snapshot.getMedian();<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    assertTrue(median != 0 &amp;&amp; median != 1 &amp;&amp; median != valueSize);<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>  @Test<a name="line.181"></a>
-<span class="sourceLineNo">182</span>  public void testSetBufferSizeOption() {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    TestOptions opts = new PerformanceEvaluation.TestOptions();<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    long bufferSize = opts.getBufferSize();<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    assertEquals(bufferSize, 2l * 1024l * 1024l);<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    opts.setBufferSize(64l * 1024l);<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    bufferSize = opts.getBufferSize();<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    assertEquals(bufferSize, 64l * 1024l);<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>  @Test<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  public void testParseOptsWithThreads() {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    Queue&lt;String&gt; opts = new LinkedList&lt;&gt;();<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    String cmdName = "sequentialWrite";<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    int threads = 1;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    opts.offer(cmdName);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    opts.offer(String.valueOf(threads));<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    PerformanceEvaluation.TestOptions options = PerformanceEvaluation.parseOpts(opts);<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    assertNotNull(options);<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    assertNotNull(options.getCmdName());<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    assertEquals(cmdName, options.getCmdName());<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    assertEquals(threads, options.getNumClientThreads());<a name="line.202"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.regionserver.CompactingMemStore;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.testclassification.MiscTests;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.junit.ClassRule;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.junit.Ignore;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.junit.Test;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.junit.experimental.categories.Category;<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>@Category({MiscTests.class, SmallTests.class})<a name="line.51"></a>
+<span class="sourceLineNo">052</span>public class TestPerformanceEvaluation {<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>  @ClassRule<a name="line.54"></a>
+<span class="sourceLineNo">055</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.55"></a>
+<span class="sourceLineNo">056</span>      HBaseClassTestRule.forClass(TestPerformanceEvaluation.class);<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>  private static final HBaseTestingUtility HTU = new HBaseTestingUtility();<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>  @Test<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  public void testDefaultInMemoryCompaction() {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    PerformanceEvaluation.TestOptions defaultOpts =<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        new PerformanceEvaluation.TestOptions();<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    assertEquals(CompactingMemStore.COMPACTING_MEMSTORE_TYPE_DEFAULT.toString(),<a name="line.64"></a>
+<span class="sourceLineNo">065</span>        defaultOpts.getInMemoryCompaction().toString());<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    HTableDescriptor htd = PerformanceEvaluation.getTableDescriptor(defaultOpts);<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    for (HColumnDescriptor hcd: htd.getFamilies()) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>      assertEquals(CompactingMemStore.COMPACTING_MEMSTORE_TYPE_DEFAULT.toString(),<a name="line.68"></a>
+<span class="sourceLineNo">069</span>          hcd.getInMemoryCompaction().toString());<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    }<a name="line.70"></a>
+<span class="sourceLineNo">071</span>  }<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>  @Test<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  public void testSerialization()<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  throws JsonGenerationException, JsonMappingException, IOException {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    PerformanceEvaluation.TestOptions options = new PerformanceEvaluation.TestOptions();<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    assertTrue(!options.isAutoFlush());<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    options.setAutoFlush(true);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    ObjectMapper mapper = new ObjectMapper();<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    String optionsString = mapper.writeValueAsString(options);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    PerformanceEvaluation.TestOptions optionsDeserialized =<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        mapper.readValue(optionsString, PerformanceEvaluation.TestOptions.class);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    assertTrue(optionsDeserialized.isAutoFlush());<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  }<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  /**<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   * Exercise the mr spec writing.  Simple assertions to make sure it is basically working.<a name="line.87"></a>
+<span class="sourceLineNo">088</span>   * @throws IOException<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  @Ignore @Test<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  public void testWriteInputFile() throws IOException {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    TestOptions opts = new PerformanceEvaluation.TestOptions();<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    final int clients = 10;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    opts.setNumClientThreads(clients);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    opts.setPerClientRunRows(10);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    Path dir =<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      PerformanceEvaluation.writeInputFile(HTU.getConfiguration(), opts, HTU.getDataTestDir());<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    FileSystem fs = FileSystem.get(HTU.getConfiguration());<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    Path p = new Path(dir, PerformanceEvaluation.JOB_INPUT_FILENAME);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    long len = fs.getFileStatus(p).getLen();<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    assertTrue(len &gt; 0);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    byte [] content = new byte[(int)len];<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    FSDataInputStream dis = fs.open(p);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    try {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      dis.readFully(content);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      BufferedReader br =<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        new BufferedReader(new InputStreamReader(new ByteArrayInputStream(content)));<a name="line.107"></a>
+<span class="sourceLineNo">108</span>      int count = 0;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>      while (br.readLine() != null) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        count++;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>      assertEquals(clients, count);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    } finally {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>      dis.close();<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    }<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span>  @Test<a name="line.118"></a>
+<span class="sourceLineNo">119</span>  public void testSizeCalculation() {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    TestOptions opts = new PerformanceEvaluation.TestOptions();<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    opts = PerformanceEvaluation.calculateRowsAndSize(opts);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    int rows = opts.getPerClientRunRows();<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    // Default row count<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    final int defaultPerClientRunRows = 1024 * 1024;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    assertEquals(defaultPerClientRunRows, rows);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    // If size is 2G, then twice the row count.<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    opts.setSize(2.0f);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    opts = PerformanceEvaluation.calculateRowsAndSize(opts);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    assertEquals(defaultPerClientRunRows * 2, opts.getPerClientRunRows());<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // If two clients, then they get half the rows each.<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    opts.setNumClientThreads(2);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    opts = PerformanceEvaluation.calculateRowsAndSize(opts);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    assertEquals(defaultPerClientRunRows, opts.getPerClientRunRows());<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    // What if valueSize is 'random'? Then half of the valueSize so twice the rows.<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    opts.valueRandom = true;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    opts = PerformanceEvaluation.calculateRowsAndSize(opts);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    assertEquals(defaultPerClientRunRows * 2, opts.getPerClientRunRows());<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>  @Test<a name="line.140"></a>
+<span class="sourceLineNo">141</span>  public void testRandomReadCalculation() {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    TestOptions opts = new PerformanceEvaluation.TestOptions();<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    opts = PerformanceEvaluation.calculateRowsAndSize(opts);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    int rows = opts.getPerClientRunRows();<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    // Default row count<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    final int defaultPerClientRunRows = 1024 * 1024;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    assertEquals(defaultPerClientRunRows, rows);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    // If size is 2G, then twice the row count.<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    opts.setSize(2.0f);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    opts.setPerClientRunRows(1000);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    opts.setCmdName(PerformanceEvaluation.RANDOM_READ);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    opts = PerformanceEvaluation.calculateRowsAndSize(opts);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    assertEquals(1000, opts.getPerClientRunRows());<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    // If two clients, then they get half the rows each.<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    opts.setNumClientThreads(2);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    opts = PerformanceEvaluation.calculateRowsAndSize(opts);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    assertEquals(1000, opts.getPerClientRunRows());<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    Random random = new Random();<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    // assuming we will get one before this loop expires<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    boolean foundValue = false;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    for (int i = 0; i &lt; 10000000; i++) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>      int randomRow = PerformanceEvaluation.generateRandomRow(random, opts.totalRows);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      if (randomRow &gt; 1000) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        foundValue = true;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        break;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      }<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    assertTrue("We need to get a value more than 1000", foundValue);<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>  @Test<a name="line.171"></a>
+<span class="sourceLineNo">172</span>  public void testZipfian()<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  throws NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException,<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      IllegalArgumentException, InvocationTargetException {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    TestOptions opts = new PerformanceEvaluation.TestOptions();<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    opts.setValueZipf(true);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    final int valueSize = 1024;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    opts.setValueSize(valueSize);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    RandomReadTest rrt = new RandomReadTest(null, opts, null);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    Constructor&lt;?&gt; ctor =<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      Histogram.class.getDeclaredConstructor(com.codahale.metrics.Reservoir.class);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    ctor.setAccessible(true);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    Histogram histogram = (Histogram)ctor.newInstance(new UniformReservoir(1024 * 500));<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    for (int i = 0; i &lt; 100; i++) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      histogram.update(rrt.getValueLength(null));<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    }<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    Snapshot snapshot = histogram.getSnapshot();<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    double stddev = snapshot.getStdDev();<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    assertTrue(stddev != 0 &amp;&amp; stddev != 1.0);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    assertTrue(snapshot.getStdDev() != 0);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    double median = snapshot.getMedian();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    assertTrue(median != 0 &amp;&amp; median != 1 &amp;&amp; median != valueSize);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  }<a name="line.193"></a>
+<span class="sourceLineNo">194</span><a name="line.194"></a>
+<span class="sourceLineNo">195</span>  @Test<a name="line.195"></a>
+<span class="sourceLineNo">196</span>  public void testSetBufferSizeOption() {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    TestOptions opts = new PerformanceEvaluation.TestOptions();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    long bufferSize = opts.getBufferSize();<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    assertEquals(bufferSize, 2l * 1024l * 1024l);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    opts.setBufferSize(64l * 1024l);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    bufferSize = opts.getBufferSize();<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    assertEquals(bufferSize, 64l * 1024l);<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>  @Test<a name="line.205"></a>
-<span class="sourceLineNo">206</span>  public void testParseOptsWrongThreads() {<a name="line.206"></a>
+<span class="sourceLineNo">206</span>  public void testParseOptsWithThreads() {<a name="line.206"></a>
 <span class="sourceLineNo">207</span>    Queue&lt;String&gt; opts = new LinkedList&lt;&gt;();<a name="line.207"></a>
 <span class="sourceLineNo">208</span>    String cmdName = "sequentialWrite";<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    opts.offer(cmdName);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    opts.offer("qq");<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    try {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      PerformanceEvaluation.parseOpts(opts);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    } catch (IllegalArgumentException e) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      System.out.println(e.getMessage());<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      assertEquals("Command " + cmdName + " does not have threads number", e.getMessage());<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      assertTrue(e.getCause() instanceof NumberFormatException);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    }<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  }<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>  @Test<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  public void testParseOptsNoThreads() {<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    Queue&lt;String&gt; opts = new LinkedList&lt;&gt;();<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    String cmdName = "sequentialWrite";<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    try {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      PerformanceEvaluation.parseOpts(opts);<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    } catch (IllegalArgumentException e) {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      System.out.println(e.getMessage());<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      assertEquals("Command " + cmdName + " does not have threads number", e.getMessage());<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      assertTrue(e.getCause() instanceof NoSuchElementException);<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>}<a name="line.232"></a>
+<span class="sourceLineNo">209</span>    int threads = 1;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    opts.offer(cmdName);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    opts.offer(String.valueOf(threads));<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    PerformanceEvaluation.TestOptions options = PerformanceEvaluation.parseOpts(opts);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    assertNotNull(options);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    assertNotNull(options.getCmdName());<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    assertEquals(cmdName, options.getCmdName());<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    assertEquals(threads, options.getNumClientThreads());<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>  @Test<a name="line.219"></a>
+<span class="sourceLineNo">220</span>  public void testParseOptsWrongThreads() {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    Queue&lt;String&gt; opts = new LinkedList&lt;&gt;();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    String cmdName = "sequentialWrite";<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    opts.offer(cmdName);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    opts.offer("qq");<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    try {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      PerformanceEvaluation.parseOpts(opts);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    } catch (IllegalArgumentException e) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      System.out.println(e.getMessage());<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      assertEquals("Command " + cmdName + " does not have threads number", e.getMessage());<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      assertTrue(e.getCause() instanceof NumberFormatException);<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>  @Test<a name="line.234"></a>
+<span class="sourceLineNo">235</span>  public void testParseOptsNoThreads() {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    Queue&lt;String&gt; opts = new LinkedList&lt;&gt;();<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    String cmdName = "sequentialWrite";<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    try {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      PerformanceEvaluation.parseOpts(opts);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    } catch (IllegalArgumentException e) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      System.out.println(e.getMessage());<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      assertEquals("Command " + cmdName + " does not have threads number", e.getMessage());<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      assertTrue(e.getCause() instanceof NoSuchElementException);<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>
 
 
 


[12/16] hbase-site git commit: Published site at 4f2dfd387779968d3b76a22f1f4189d3278b202d.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/devapidocs/org/apache/hadoop/hbase/client/Scan.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/Scan.html b/devapidocs/org/apache/hadoop/hbase/client/Scan.html
index 55bfe4f..595e718 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/Scan.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/Scan.html
@@ -1349,7 +1349,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan
 <ul class="blockListLast">
 <li class="blockList">
 <h4>Scan</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.288">Scan</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.290">Scan</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get)</pre>
 <div class="block">Builds a scan object with the same specs as get.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1371,7 +1371,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan
 <ul class="blockList">
 <li class="blockList">
 <h4>isGetScan</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.315">isGetScan</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.318">isGetScan</a>()</pre>
 </li>
 </ul>
 <a name="addFamily-byte:A-">
@@ -1380,7 +1380,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan
 <ul class="blockList">
 <li class="blockList">
 <h4>addFamily</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.327">addFamily</a>(byte[]&nbsp;family)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.330">addFamily</a>(byte[]&nbsp;family)</pre>
 <div class="block">Get all columns from the specified family.
  <p>
  Overrides previous calls to addColumn for this family.</div>
@@ -1398,7 +1398,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan
 <ul class="blockList">
 <li class="blockList">
 <h4>addColumn</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.341">addColumn</a>(byte[]&nbsp;family,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.344">addColumn</a>(byte[]&nbsp;family,
                       byte[]&nbsp;qualifier)</pre>
 <div class="block">Get the column from the specified family with the specified qualifier.
  <p>
@@ -1418,7 +1418,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan
 <ul class="blockList">
 <li class="blockList">
 <h4>setTimeRange</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.365">setTimeRange</a>(long&nbsp;minStamp,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.368">setTimeRange</a>(long&nbsp;minStamp,
                          long&nbsp;maxStamp)
                   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 versions of columns only within the specified timestamp range,
@@ -1446,7 +1446,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan
 <li class="blockList">
 <h4>setTimeStamp</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.383">setTimeStamp</a>(long&nbsp;timestamp)
+public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.386">setTimeStamp</a>(long&nbsp;timestamp)
                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">As of release 2.0.0, this will be removed in HBase 3.0.0.
              Use <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html#setTimestamp-long-"><code>setTimestamp(long)</code></a> instead</span></div>
@@ -1473,7 +1473,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setTimestamp</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.398">setTimestamp</a>(long&nbsp;timestamp)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.401">setTimestamp</a>(long&nbsp;timestamp)</pre>
 <div class="block">Get versions of columns with the specified timestamp. Note, default maximum
  versions to return is 1.  If your time range spans more than one version
  and you want all versions returned, up the number of versions beyond the
@@ -1495,7 +1495,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setColumnFamilyTimeRange</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.410">setColumnFamilyTimeRange</a>(byte[]&nbsp;cf,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.413">setColumnFamilyTimeRange</a>(byte[]&nbsp;cf,
                                      long&nbsp;minStamp,
                                      long&nbsp;maxStamp)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html#setColumnFamilyTimeRange-byte:A-long-long-">Query</a></code></span></div>
@@ -1523,7 +1523,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <li class="blockList">
 <h4>setStartRow</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.427">setStartRow</a>(byte[]&nbsp;startRow)</pre>
+public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.430">setStartRow</a>(byte[]&nbsp;startRow)</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">use <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html#withStartRow-byte:A-"><code>withStartRow(byte[])</code></a> instead. This method may change the inclusive of
              the stop row to keep compatible with the old behavior.</span></div>
 <div class="block">Set the start row of the scan.
@@ -1547,7 +1547,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>withStartRow</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.446">withStartRow</a>(byte[]&nbsp;startRow)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.449">withStartRow</a>(byte[]&nbsp;startRow)</pre>
 <div class="block">Set the start row of the scan.
  <p>
  If the specified row does not exist, the Scanner will start from the next closest row after the
@@ -1569,7 +1569,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>withStartRow</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.461">withStartRow</a>(byte[]&nbsp;startRow,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.464">withStartRow</a>(byte[]&nbsp;startRow,
                          boolean&nbsp;inclusive)</pre>
 <div class="block">Set the start row of the scan.
  <p>
@@ -1594,7 +1594,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <li class="blockList">
 <h4>setStopRow</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.487">setStopRow</a>(byte[]&nbsp;stopRow)</pre>
+public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.490">setStopRow</a>(byte[]&nbsp;stopRow)</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">use <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html#withStartRow-byte:A-"><code>withStartRow(byte[])</code></a> instead. This method may change the inclusive of
              the stop row to keep compatible with the old behavior.</span></div>
 <div class="block">Set the stop row of the scan.
@@ -1621,7 +1621,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>withStopRow</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.509">withStopRow</a>(byte[]&nbsp;stopRow)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.512">withStopRow</a>(byte[]&nbsp;stopRow)</pre>
 <div class="block">Set the stop row of the scan.
  <p>
  The scan will include rows that are lexicographically less than the provided stopRow.
@@ -1646,7 +1646,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>withStopRow</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.524">withStopRow</a>(byte[]&nbsp;stopRow,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.527">withStopRow</a>(byte[]&nbsp;stopRow,
                         boolean&nbsp;inclusive)</pre>
 <div class="block">Set the stop row of the scan.
  <p>
@@ -1670,7 +1670,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setRowPrefixFilter</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.545">setRowPrefixFilter</a>(byte[]&nbsp;rowPrefix)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.548">setRowPrefixFilter</a>(byte[]&nbsp;rowPrefix)</pre>
 <div class="block"><p>Set a filter (using stopRow and startRow) so the result set only contains rows where the
  rowKey starts with the specified prefix.</p>
  <p>This is a utility method that converts the desired rowPrefix into the appropriate values
@@ -1692,7 +1692,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>calculateTheClosestNextRowKeyForPrefix</h4>
-<pre>private&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.573">calculateTheClosestNextRowKeyForPrefix</a>(byte[]&nbsp;rowKeyPrefix)</pre>
+<pre>private&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.576">calculateTheClosestNextRowKeyForPrefix</a>(byte[]&nbsp;rowKeyPrefix)</pre>
 <div class="block"><p>When scanning for a prefix the scan should stop immediately after the the last row that
  has the specified prefix. This method calculates the closest next rowKey immediately following
  the given rowKeyPrefix.</p>
@@ -1720,7 +1720,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <li class="blockList">
 <h4>setMaxVersions</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.605">setMaxVersions</a>()</pre>
+public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.608">setMaxVersions</a>()</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">It is easy to misunderstand with column family's max versions, so use
              <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html#readAllVersions--"><code>readAllVersions()</code></a> instead.</span></div>
 <div class="block">Get all available versions.</div>
@@ -1737,7 +1737,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <li class="blockList">
 <h4>setMaxVersions</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.617">setMaxVersions</a>(int&nbsp;maxVersions)</pre>
+public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.620">setMaxVersions</a>(int&nbsp;maxVersions)</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">It is easy to misunderstand with column family's max versions, so use
              <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html#readVersions-int-"><code>readVersions(int)</code></a> instead.</span></div>
 <div class="block">Get up to the specified number of versions of each column.</div>
@@ -1755,7 +1755,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>readAllVersions</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.625">readAllVersions</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.628">readAllVersions</a>()</pre>
 <div class="block">Get all available versions.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1769,7 +1769,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>readVersions</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.635">readVersions</a>(int&nbsp;versions)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.638">readVersions</a>(int&nbsp;versions)</pre>
 <div class="block">Get up to the specified number of versions of each column.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1785,7 +1785,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setBatch</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.649">setBatch</a>(int&nbsp;batch)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.652">setBatch</a>(int&nbsp;batch)</pre>
 <div class="block">Set the maximum number of cells to return for each call to next(). Callers should be aware
  that this is not equivalent to calling <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html#setAllowPartialResults-boolean-"><code>setAllowPartialResults(boolean)</code></a>.
  If you don't allow partial results, the number of cells in each Result must equal to your
@@ -1805,7 +1805,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setMaxResultsPerColumnFamily</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.663">setMaxResultsPerColumnFamily</a>(int&nbsp;limit)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.666">setMaxResultsPerColumnFamily</a>(int&nbsp;limit)</pre>
 <div class="block">Set the maximum number of values to return per row per Column Family</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1819,7 +1819,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setRowOffsetPerColumnFamily</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.672">setRowOffsetPerColumnFamily</a>(int&nbsp;offset)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.675">setRowOffsetPerColumnFamily</a>(int&nbsp;offset)</pre>
 <div class="block">Set offset for the row per Column Family.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1833,7 +1833,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setCaching</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.684">setCaching</a>(int&nbsp;caching)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.687">setCaching</a>(int&nbsp;caching)</pre>
 <div class="block">Set the number of rows for caching that will be passed to scanners.
  If not set, the Configuration setting <a href="../../../../../org/apache/hadoop/hbase/HConstants.html#HBASE_CLIENT_SCANNER_CACHING"><code>HConstants.HBASE_CLIENT_SCANNER_CACHING</code></a> will
  apply.
@@ -1850,7 +1850,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxResultSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.692">getMaxResultSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.695">getMaxResultSize</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the maximum result size in bytes. See <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html#setMaxResultSize-long-"><code>setMaxResultSize(long)</code></a></dd>
@@ -1863,7 +1863,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setMaxResultSize</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.703">setMaxResultSize</a>(long&nbsp;maxResultSize)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.706">setMaxResultSize</a>(long&nbsp;maxResultSize)</pre>
 <div class="block">Set the maximum result size. The default is -1; this means that no specific
  maximum result size will be set for this scan, and the global configured
  value will be used instead. (Defaults to unlimited).</div>
@@ -1879,7 +1879,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setFilter</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.709">setFilter</a>(<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;filter)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.712">setFilter</a>(<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;filter)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html#setFilter-org.apache.hadoop.hbase.filter.Filter-">Query</a></code></span></div>
 <div class="block">Apply the specified server-side filter when performing the Query. Only
  <a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterCell-org.apache.hadoop.hbase.Cell-"><code>Filter.filterCell(org.apache.hadoop.hbase.Cell)</code></a> is called AFTER all tests for ttl,
@@ -1900,7 +1900,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setFamilyMap</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.719">setFamilyMap</a>(<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;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a>&lt;byte[]&gt;&gt;&nbsp;familyMap)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.722">setFamilyMap</a>(<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;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a>&lt;byte[]&gt;&gt;&nbsp;familyMap)</pre>
 <div class="block">Setting the familyMap</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1916,7 +1916,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getFamilyMap</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;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a>&lt;byte[]&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.728">getFamilyMap</a>()</pre>
+<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;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a>&lt;byte[]&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.731">getFamilyMap</a>()</pre>
 <div class="block">Getting the familyMap</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1930,7 +1930,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>numFamilies</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.735">numFamilies</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.738">numFamilies</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the number of families in familyMap</dd>
@@ -1943,7 +1943,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>hasFamilies</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.745">hasFamilies</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.748">hasFamilies</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if familyMap is non empty, false otherwise</dd>
@@ -1956,7 +1956,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getFamilies</h4>
-<pre>public&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.752">getFamilies</a>()</pre>
+<pre>public&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.755">getFamilies</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the keys of the familyMap</dd>
@@ -1969,7 +1969,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getStartRow</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.762">getStartRow</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.765">getStartRow</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the startrow</dd>
@@ -1982,7 +1982,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>includeStartRow</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.769">includeStartRow</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.772">includeStartRow</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>if we should include start row when scan</dd>
@@ -1995,7 +1995,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getStopRow</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.776">getStopRow</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.779">getStopRow</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the stoprow</dd>
@@ -2008,7 +2008,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>includeStopRow</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.783">includeStopRow</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.786">includeStopRow</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>if we should include stop row when scan</dd>
@@ -2021,7 +2021,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxVersions</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.790">getMaxVersions</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.793">getMaxVersions</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the max number of versions to fetch</dd>
@@ -2034,7 +2034,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getBatch</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.797">getBatch</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.800">getBatch</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>maximum number of values to return for a single call to next()</dd>
@@ -2047,7 +2047,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxResultsPerColumnFamily</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.804">getMaxResultsPerColumnFamily</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.807">getMaxResultsPerColumnFamily</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>maximum number of values to return per row per CF</dd>
@@ -2060,7 +2060,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getRowOffsetPerColumnFamily</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.813">getRowOffsetPerColumnFamily</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.816">getRowOffsetPerColumnFamily</a>()</pre>
 <div class="block">Method for retrieving the scan's offset per row per column
  family (#kvs to be skipped)</div>
 <dl>
@@ -2075,7 +2075,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getCaching</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.820">getCaching</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.823">getCaching</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>caching the number of rows fetched when calling next on a scanner</dd>
@@ -2088,7 +2088,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getTimeRange</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/TimeRange.html" title="class in org.apache.hadoop.hbase.io">TimeRange</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.827">getTimeRange</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/TimeRange.html" title="class in org.apache.hadoop.hbase.io">TimeRange</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.830">getTimeRange</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>TimeRange</dd>
@@ -2101,7 +2101,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getFilter</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.835">getFilter</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.838">getFilter</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html#getFilter--">getFilter</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html" title="class in org.apache.hadoop.hbase.client">Query</a></code></dd>
@@ -2116,7 +2116,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>hasFilter</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.842">hasFilter</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.845">hasFilter</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true is a filter has been specified, false if not</dd>
@@ -2129,7 +2129,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setCacheBlocks</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.856">setCacheBlocks</a>(boolean&nbsp;cacheBlocks)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.859">setCacheBlocks</a>(boolean&nbsp;cacheBlocks)</pre>
 <div class="block">Set whether blocks should be cached for this Scan.
  <p>
  This is true by default.  When true, default settings of the table and
@@ -2148,7 +2148,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getCacheBlocks</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.866">getCacheBlocks</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.869">getCacheBlocks</a>()</pre>
 <div class="block">Get whether blocks should be cached for this Scan.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -2163,7 +2163,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setReversed</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.878">setReversed</a>(boolean&nbsp;reversed)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.881">setReversed</a>(boolean&nbsp;reversed)</pre>
 <div class="block">Set whether this scan is a reversed one
  <p>
  This is false by default which means forward(normal) scan.</div>
@@ -2181,7 +2181,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>isReversed</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.887">isReversed</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.890">isReversed</a>()</pre>
 <div class="block">Get whether this scan is a reversed one.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -2195,7 +2195,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setAllowPartialResults</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.901">setAllowPartialResults</a>(boolean&nbsp;allowPartialResults)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.904">setAllowPartialResults</a>(boolean&nbsp;allowPartialResults)</pre>
 <div class="block">Setting whether the caller wants to see the partial results when server returns
  less-than-expected cells. It is helpful while scanning a huge row to prevent OOM at client.
  By default this value is false and the complete results will be assembled client side
@@ -2217,7 +2217,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getAllowPartialResults</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.911">getAllowPartialResults</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.914">getAllowPartialResults</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true when the constructor of this scan understands that the results they will see may
@@ -2232,7 +2232,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setLoadColumnFamiliesOnDemand</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.916">setLoadColumnFamiliesOnDemand</a>(boolean&nbsp;value)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.919">setLoadColumnFamiliesOnDemand</a>(boolean&nbsp;value)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html#setLoadColumnFamiliesOnDemand-boolean-">Query</a></code></span></div>
 <div class="block">Set the value indicating whether loading CFs on demand should be allowed (cluster
  default is false). On-demand CF loading doesn't load column families until necessary, e.g.
@@ -2260,7 +2260,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>getFingerprint</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/lang/String.html?is-external=true" title="class or interface in java.lang">String</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>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.927">getFingerprint</a>()</pre>
+<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/lang/String.html?is-external=true" title="class or interface in java.lang">String</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>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.930">getFingerprint</a>()</pre>
 <div class="block">Compile the table and column family (i.e. schema) information
  into a String. Useful for parsing and aggregation by debugging,
  logging, and administration tools.</div>
@@ -2278,7 +2278,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>toMap</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/lang/String.html?is-external=true" title="class or interface in java.lang">String</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>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.951">toMap</a>(int&nbsp;maxCols)</pre>
+<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/lang/String.html?is-external=true" title="class or interface in java.lang">String</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>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.954">toMap</a>(int&nbsp;maxCols)</pre>
 <div class="block">Compile the details beyond the scope of getFingerprint (row, columns,
  timestamps, etc.) into a Map along with the fingerprinted information.
  Useful for debugging, logging, and administration tools.</div>
@@ -2298,7 +2298,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>setRaw</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1014">setRaw</a>(boolean&nbsp;raw)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1017">setRaw</a>(boolean&nbsp;raw)</pre>
 <div class="block">Enable/disable "raw" mode for this scan.
  If "raw" is enabled the scan will return all
  delete marker and deleted rows that have not
@@ -2318,7 +2318,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>isRaw</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1022">isRaw</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1025">isRaw</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>True if this Scan is in "raw" mode.</dd>
@@ -2332,7 +2332,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <li class="blockList">
 <h4>setSmall</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1045">setSmall</a>(boolean&nbsp;small)</pre>
+public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1048">setSmall</a>(boolean&nbsp;small)</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">since 2.0.0. Use <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html#setLimit-int-"><code>setLimit(int)</code></a> and <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html#setReadType-org.apache.hadoop.hbase.client.Scan.ReadType-"><code>setReadType(ReadType)</code></a> instead.
              And for the one rpc optimization, now we will also fetch data when openScanner, and
              if the number of rows reaches the limit then we will close the scanner
@@ -2361,7 +2361,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" ti
 <li class="blockList">
 <h4>isSmall</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1057">isSmall</a>()</pre>
+public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1060">isSmall</a>()</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">since 2.0.0. See the comment of <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html#setSmall-boolean-"><code>setSmall(boolean)</code></a></span></div>
 <div class="block">Get whether this scan is a small scan</div>
 <dl>
@@ -2376,7 +2376,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setAttribute</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1062">setAttribute</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1065">setAttribute</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,
                          byte[]&nbsp;value)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Attributes.html#setAttribute-java.lang.String-byte:A-">Attributes</a></code></span></div>
 <div class="block">Sets an attribute.
@@ -2399,7 +2399,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setId</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1067">setId</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;id)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1070">setId</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;id)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/OperationWithAttributes.html#setId-java.lang.String-">OperationWithAttributes</a></code></span></div>
 <div class="block">This method allows you to set an identifier on an operation. The original
  motivation for this was to allow the identifier to be used in slow query
@@ -2420,7 +2420,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setAuthorizations</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1072">setAuthorizations</a>(<a href="../../../../../org/apache/hadoop/hbase/security/visibility/Authorizations.html" title="class in org.apache.hadoop.hbase.security.visibility">Authorizations</a>&nbsp;authorizations)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1075">setAuthorizations</a>(<a href="../../../../../org/apache/hadoop/hbase/security/visibility/Authorizations.html" title="class in org.apache.hadoop.hbase.security.visibility">Authorizations</a>&nbsp;authorizations)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html#setAuthorizations-org.apache.hadoop.hbase.security.visibility.Authorizations-">Query</a></code></span></div>
 <div class="block">Sets the authorizations to be used by this Query</div>
 <dl>
@@ -2435,7 +2435,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setACL</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1077">setACL</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/security/access/Permission.html" title="class in org.apache.hadoop.hbase.security.access">Permission</a>&gt;&nbsp;perms)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1080">setACL</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/security/access/Permission.html" title="class in org.apache.hadoop.hbase.security.access">Permission</a>&gt;&nbsp;perms)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html#setACL-java.util.Map-">setACL</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html" title="class in org.apache.hadoop.hbase.client">Query</a></code></dd>
@@ -2450,7 +2450,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setACL</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1082">setACL</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;user,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1085">setACL</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;user,
                    <a href="../../../../../org/apache/hadoop/hbase/security/access/Permission.html" title="class in org.apache.hadoop.hbase.security.access">Permission</a>&nbsp;perms)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
@@ -2467,7 +2467,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setConsistency</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1087">setConsistency</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client">Consistency</a>&nbsp;consistency)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1090">setConsistency</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client">Consistency</a>&nbsp;consistency)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html#setConsistency-org.apache.hadoop.hbase.client.Consistency-">Query</a></code></span></div>
 <div class="block">Sets the consistency level for this operation</div>
 <dl>
@@ -2484,7 +2484,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setReplicaId</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1092">setReplicaId</a>(int&nbsp;Id)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1095">setReplicaId</a>(int&nbsp;Id)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html#setReplicaId-int-">Query</a></code></span></div>
 <div class="block">Specify region replica id where Query will fetch data from. Use this together with
  <a href="../../../../../org/apache/hadoop/hbase/client/Query.html#setConsistency-org.apache.hadoop.hbase.client.Consistency-"><code>Query.setConsistency(Consistency)</code></a> passing <a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html#TIMELINE"><code>Consistency.TIMELINE</code></a> to read data from
@@ -2502,7 +2502,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setIsolationLevel</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1097">setIsolationLevel</a>(<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>&nbsp;level)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1100">setIsolationLevel</a>(<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>&nbsp;level)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Query.html#setIsolationLevel-org.apache.hadoop.hbase.client.IsolationLevel-">Query</a></code></span></div>
 <div class="block">Set the isolation level for this query. If the
  isolation level is set to READ_UNCOMMITTED, then
@@ -2526,7 +2526,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setPriority</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1102">setPriority</a>(int&nbsp;priority)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1105">setPriority</a>(int&nbsp;priority)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/OperationWithAttributes.html#setPriority-int-">setPriority</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/OperationWithAttributes.html" title="class in org.apache.hadoop.hbase.client">OperationWithAttributes</a></code></dd>
@@ -2539,7 +2539,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setScanMetricsEnabled</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1110">setScanMetricsEnabled</a>(boolean&nbsp;enabled)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1113">setScanMetricsEnabled</a>(boolean&nbsp;enabled)</pre>
 <div class="block">Enable collection of <a href="../../../../../org/apache/hadoop/hbase/client/metrics/ScanMetrics.html" title="class in org.apache.hadoop.hbase.client.metrics"><code>ScanMetrics</code></a>. For advanced users.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2553,7 +2553,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>isScanMetricsEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1118">isScanMetricsEnabled</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1121">isScanMetricsEnabled</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>True if collection of scan metrics is enabled. For advanced users.</dd>
@@ -2567,7 +2567,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <li class="blockList">
 <h4>getScanMetrics</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/metrics/ScanMetrics.html" title="class in org.apache.hadoop.hbase.client.metrics">ScanMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1131">getScanMetrics</a>()</pre>
+public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/metrics/ScanMetrics.html" title="class in org.apache.hadoop.hbase.client.metrics">ScanMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1134">getScanMetrics</a>()</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../../org/apache/hadoop/hbase/client/ResultScanner.html#getScanMetrics--"><code>ResultScanner.getScanMetrics()</code></a> instead. And notice that, please do not
              use this method and <a href="../../../../../org/apache/hadoop/hbase/client/ResultScanner.html#getScanMetrics--"><code>ResultScanner.getScanMetrics()</code></a> together, the metrics
              will be messed up.</span></div>
@@ -2585,7 +2585,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/metrics/ScanM
 <ul class="blockList">
 <li class="blockList">
 <h4>isAsyncPrefetch</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1137">isAsyncPrefetch</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1140">isAsyncPrefetch</a>()</pre>
 </li>
 </ul>
 <a name="setAsyncPrefetch-boolean-">
@@ -2594,7 +2594,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/metrics/ScanM
 <ul class="blockList">
 <li class="blockList">
 <h4>setAsyncPrefetch</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1141">setAsyncPrefetch</a>(boolean&nbsp;asyncPrefetch)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1144">setAsyncPrefetch</a>(boolean&nbsp;asyncPrefetch)</pre>
 </li>
 </ul>
 <a name="getLimit--">
@@ -2603,7 +2603,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/metrics/ScanM
 <ul class="blockList">
 <li class="blockList">
 <h4>getLimit</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1149">getLimit</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1152">getLimit</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the limit of rows for this scan</dd>
@@ -2616,7 +2616,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/metrics/ScanM
 <ul class="blockList">
 <li class="blockList">
 <h4>setLimit</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1161">setLimit</a>(int&nbsp;limit)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1164">setLimit</a>(int&nbsp;limit)</pre>
 <div class="block">Set the limit of rows for this scan. We will terminate the scan if the number of returned rows
  reaches this value.
  <p>
@@ -2635,7 +2635,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/metrics/ScanM
 <ul class="blockList">
 <li class="blockList">
 <h4>setOneRowLimit</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1171">setOneRowLimit</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1174">setOneRowLimit</a>()</pre>
 <div class="block">Call this when you only want to get one row. It will set <code>limit</code> to <code>1</code>, and also
  set <code>readType</code> to <a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html#PREAD"><code>Scan.ReadType.PREAD</code></a>.</div>
 <dl>
@@ -2650,7 +2650,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/metrics/ScanM
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadType</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1183">getReadType</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1186">getReadType</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the read type for this scan</dd>
@@ -2663,7 +2663,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/metrics/ScanM
 <ul class="blockList">
 <li class="blockList">
 <h4>setReadType</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1194">setReadType</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a>&nbsp;readType)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1197">setReadType</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a>&nbsp;readType)</pre>
 <div class="block">Set the read type for this scan.
  <p>
  Notice that we may choose to use pread even if you specific <a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html#STREAM"><code>Scan.ReadType.STREAM</code></a> here. For
@@ -2680,7 +2680,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/metrics/ScanM
 <ul class="blockList">
 <li class="blockList">
 <h4>getMvccReadPoint</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1202">getMvccReadPoint</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1205">getMvccReadPoint</a>()</pre>
 <div class="block">Get the mvcc read point used to open a scanner.</div>
 </li>
 </ul>
@@ -2690,7 +2690,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/metrics/ScanM
 <ul class="blockList">
 <li class="blockList">
 <h4>setMvccReadPoint</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1209">setMvccReadPoint</a>(long&nbsp;mvccReadPoint)</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1212">setMvccReadPoint</a>(long&nbsp;mvccReadPoint)</pre>
 <div class="block">Set the mvcc read point used to open a scanner.</div>
 </li>
 </ul>
@@ -2700,7 +2700,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/metrics/ScanM
 <ul class="blockList">
 <li class="blockList">
 <h4>resetMvccReadPoint</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1217">resetMvccReadPoint</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1220">resetMvccReadPoint</a>()</pre>
 <div class="block">Set the mvcc read point to -1 which means do not use it.</div>
 </li>
 </ul>
@@ -2710,7 +2710,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/metrics/ScanM
 <ul class="blockList">
 <li class="blockList">
 <h4>setNeedCursorResult</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1240">setNeedCursorResult</a>(boolean&nbsp;needCursorResult)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1243">setNeedCursorResult</a>(boolean&nbsp;needCursorResult)</pre>
 <div class="block">When the server is slow or we scan a table with many deleted data or we use a sparse filter,
  the server will response heartbeat to prevent timeout. However the scanner will return a Result
  only when client can do it. So if there are many heartbeats, the blocking time on
@@ -2736,7 +2736,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/metrics/ScanM
 <ul class="blockList">
 <li class="blockList">
 <h4>isNeedCursorResult</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1245">isNeedCursorResult</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1248">isNeedCursorResult</a>()</pre>
 </li>
 </ul>
 <a name="createScanFromCursor-org.apache.hadoop.hbase.client.Cursor-">
@@ -2745,7 +2745,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/metrics/ScanM
 <ul class="blockListLast">
 <li class="blockList">
 <h4>createScanFromCursor</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1256">createScanFromCursor</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Cursor.html" title="class in org.apache.hadoop.hbase.client">Cursor</a>&nbsp;cursor)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1259">createScanFromCursor</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Cursor.html" title="class in org.apache.hadoop.hbase.client">Cursor</a>&nbsp;cursor)</pre>
 <div class="block">Create a new Scan with a cursor. It only set the position information like start row key.
  The others (like cfs, stop row, limit) should still be filled in by the user.
  <a href="../../../../../org/apache/hadoop/hbase/client/Result.html#isCursor--"><code>Result.isCursor()</code></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/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 e17c4b2..ed476e8 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/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/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/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/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.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/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/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/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/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/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/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/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/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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>
+<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>
 </ul>
 </li>
 </ul>


[02/16] hbase-site git commit: Published site at 4f2dfd387779968d3b76a22f1f4189d3278b202d.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html
index 0a7a7cf..ef9f492 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html
@@ -348,741 +348,788 @@
 <span class="sourceLineNo">340</span>  }<a name="line.340"></a>
 <span class="sourceLineNo">341</span><a name="line.341"></a>
 <span class="sourceLineNo">342</span>  @Test<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public void testTableMoveTruncateAndDrop() throws Exception {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    final byte[] familyNameBytes = Bytes.toBytes("f");<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    String newGroupName = getGroupName(name.getMethodName());<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    final RSGroupInfo newGroup = addGroup(newGroupName, 2);<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span>    TEST_UTIL.createMultiRegionTable(tableName, familyNameBytes, 5);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      @Override<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      public boolean evaluate() throws Exception {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>        List&lt;String&gt; regions = getTableRegionMap().get(tableName);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>        if (regions == null) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>          return false;<a name="line.354"></a>
-<span class="sourceLineNo">355</span>        }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>        return getTableRegionMap().get(tableName).size() &gt;= 5;<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      }<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    });<a name="line.359"></a>
-<span class="sourceLineNo">360</span><a name="line.360"></a>
-<span class="sourceLineNo">361</span>    RSGroupInfo tableGrp = rsGroupAdmin.getRSGroupInfoOfTable(tableName);<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    assertTrue(tableGrp.getName().equals(RSGroupInfo.DEFAULT_GROUP));<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>    //change table's group<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    LOG.info("Moving table "+tableName+" to "+newGroup.getName());<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    rsGroupAdmin.moveTables(Sets.newHashSet(tableName), newGroup.getName());<a name="line.366"></a>
+<span class="sourceLineNo">343</span>  public void testMoveServersFromDefaultGroup() throws Exception {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    //create groups and assign servers<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    rsGroupAdmin.addRSGroup("foo");<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>    RSGroupInfo fooGroup = rsGroupAdmin.getRSGroupInfo("foo");<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    assertEquals(0, fooGroup.getServers().size());<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    RSGroupInfo defaultGroup = rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP);<a name="line.349"></a>
+<span class="sourceLineNo">350</span><a name="line.350"></a>
+<span class="sourceLineNo">351</span>    //test remove all servers from default<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    try {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      rsGroupAdmin.moveServers(defaultGroup.getServers(), fooGroup.getName());<a name="line.353"></a>
+<span class="sourceLineNo">354</span>      fail(RSGroupAdminServer.KEEP_ONE_SERVER_IN_DEFAULT_ERROR_MESSAGE);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>    } catch (ConstraintException ex) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      assertTrue(ex.getMessage().contains(RSGroupAdminServer<a name="line.356"></a>
+<span class="sourceLineNo">357</span>              .KEEP_ONE_SERVER_IN_DEFAULT_ERROR_MESSAGE));<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    }<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span>    //test success case, remove one server from default ,keep at least one server<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    if (defaultGroup.getServers().size() &gt; 1) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>      Address serverInDefaultGroup = defaultGroup.getServers().iterator().next();<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      LOG.info("moving server " + serverInDefaultGroup + " from group default to group " +<a name="line.363"></a>
+<span class="sourceLineNo">364</span>              fooGroup.getName());<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      rsGroupAdmin.moveServers(Sets.newHashSet(serverInDefaultGroup), fooGroup.getName());<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    }<a name="line.366"></a>
 <span class="sourceLineNo">367</span><a name="line.367"></a>
-<span class="sourceLineNo">368</span>    //verify group change<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    Assert.assertEquals(newGroup.getName(),<a name="line.369"></a>
-<span class="sourceLineNo">370</span>        rsGroupAdmin.getRSGroupInfoOfTable(tableName).getName());<a name="line.370"></a>
+<span class="sourceLineNo">368</span>    fooGroup = rsGroupAdmin.getRSGroupInfo("foo");<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    LOG.info("moving servers " + fooGroup.getServers() + " to group default");<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    rsGroupAdmin.moveServers(fooGroup.getServers(), RSGroupInfo.DEFAULT_GROUP);<a name="line.370"></a>
 <span class="sourceLineNo">371</span><a name="line.371"></a>
 <span class="sourceLineNo">372</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.372"></a>
 <span class="sourceLineNo">373</span>      @Override<a name="line.373"></a>
 <span class="sourceLineNo">374</span>      public boolean evaluate() throws Exception {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>        Map&lt;ServerName, List&lt;String&gt;&gt; serverMap = getTableServerRegionMap().get(tableName);<a name="line.375"></a>
-<span class="sourceLineNo">376</span>        int count = 0;<a name="line.376"></a>
-<span class="sourceLineNo">377</span>        if (serverMap != null) {<a name="line.377"></a>
-<span class="sourceLineNo">378</span>          for (ServerName rs : serverMap.keySet()) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>            if (newGroup.containsServer(rs.getAddress())) {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>              count += serverMap.get(rs).size();<a name="line.380"></a>
-<span class="sourceLineNo">381</span>            }<a name="line.381"></a>
-<span class="sourceLineNo">382</span>          }<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        }<a name="line.383"></a>
-<span class="sourceLineNo">384</span>        return count == 5;<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      }<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    });<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>    //test truncate<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    admin.disableTable(tableName);<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    admin.truncateTable(tableName, true);<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    Assert.assertEquals(1, rsGroupAdmin.getRSGroupInfo(newGroup.getName()).getTables().size());<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    Assert.assertEquals(tableName, rsGroupAdmin.getRSGroupInfo(<a name="line.392"></a>
-<span class="sourceLineNo">393</span>        newGroup.getName()).getTables().first());<a name="line.393"></a>
+<span class="sourceLineNo">375</span>        return getNumServers() ==<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP).getServers().size();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      }<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    });<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>    fooGroup = rsGroupAdmin.getRSGroupInfo("foo");<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    assertEquals(0, fooGroup.getServers().size());<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>    //test group removal<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    LOG.info("Remove group " + fooGroup.getName());<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    rsGroupAdmin.removeRSGroup(fooGroup.getName());<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    Assert.assertEquals(null, rsGroupAdmin.getRSGroupInfo(fooGroup.getName()));<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>  @Test<a name="line.389"></a>
+<span class="sourceLineNo">390</span>  public void testTableMoveTruncateAndDrop() throws Exception {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    final byte[] familyNameBytes = Bytes.toBytes("f");<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    String newGroupName = getGroupName(name.getMethodName());<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    final RSGroupInfo newGroup = addGroup(newGroupName, 2);<a name="line.393"></a>
 <span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span>    //verify removed table is removed from group<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    TEST_UTIL.deleteTable(tableName);<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    Assert.assertEquals(0, rsGroupAdmin.getRSGroupInfo(newGroup.getName()).getTables().size());<a name="line.397"></a>
-<span class="sourceLineNo">398</span>  }<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>  @Test<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  public void testGroupBalance() throws Exception {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    LOG.info(name.getMethodName());<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    String newGroupName = getGroupName(name.getMethodName());<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    final RSGroupInfo newGroup = addGroup(newGroupName, 3);<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>    final TableName tableName = TableName.valueOf(tablePrefix+"_ns", name.getMethodName());<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    admin.createNamespace(<a name="line.407"></a>
-<span class="sourceLineNo">408</span>        NamespaceDescriptor.create(tableName.getNamespaceAsString())<a name="line.408"></a>
-<span class="sourceLineNo">409</span>            .addConfiguration(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP, newGroupName).build());<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    final byte[] familyNameBytes = Bytes.toBytes("f");<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    final HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    desc.addFamily(new HColumnDescriptor("f"));<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    byte [] startKey = Bytes.toBytes("aaaaa");<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    byte [] endKey = Bytes.toBytes("zzzzz");<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    admin.createTable(desc, startKey, endKey, 6);<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      @Override<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      public boolean evaluate() throws Exception {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>        List&lt;String&gt; regions = getTableRegionMap().get(tableName);<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        if (regions == null) {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          return false;<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        }<a name="line.422"></a>
-<span class="sourceLineNo">423</span>        return regions.size() &gt;= 6;<a name="line.423"></a>
-<span class="sourceLineNo">424</span>      }<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    });<a name="line.425"></a>
-<span class="sourceLineNo">426</span><a name="line.426"></a>
-<span class="sourceLineNo">427</span>    //make assignment uneven, move all regions to one server<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    Map&lt;ServerName,List&lt;String&gt;&gt; assignMap =<a name="line.428"></a>
-<span class="sourceLineNo">429</span>        getTableServerRegionMap().get(tableName);<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    final ServerName first = assignMap.entrySet().iterator().next().getKey();<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    for(RegionInfo region: admin.getTableRegions(tableName)) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      if(!assignMap.get(first).contains(region.getRegionNameAsString())) {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>        admin.move(region.getEncodedNameAsBytes(), Bytes.toBytes(first.getServerName()));<a name="line.433"></a>
-<span class="sourceLineNo">434</span>      }<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    }<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      @Override<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      public boolean evaluate() throws Exception {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        Map&lt;ServerName, List&lt;String&gt;&gt; map = getTableServerRegionMap().get(tableName);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        if (map == null) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          return true;<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        List&lt;String&gt; regions = map.get(first);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>        if (regions == null) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>          return true;<a name="line.445"></a>
-<span class="sourceLineNo">446</span>        }<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        return regions.size() &gt;= 6;<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    });<a name="line.449"></a>
-<span class="sourceLineNo">450</span><a name="line.450"></a>
-<span class="sourceLineNo">451</span>    //balance the other group and make sure it doesn't affect the new group<a name="line.451"></a>
-<span class="sourceLineNo">452</span>    admin.setBalancerRunning(true,true);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    rsGroupAdmin.balanceRSGroup(RSGroupInfo.DEFAULT_GROUP);<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    assertEquals(6, getTableServerRegionMap().get(tableName).get(first).size());<a name="line.454"></a>
-<span class="sourceLineNo">455</span><a name="line.455"></a>
-<span class="sourceLineNo">456</span>    //disable balance, balancer will not be run and return false<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    admin.setBalancerRunning(false,true);<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    assertFalse(rsGroupAdmin.balanceRSGroup(newGroupName));<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    assertEquals(6, getTableServerRegionMap().get(tableName).get(first).size());<a name="line.459"></a>
-<span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>    //enable balance<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    admin.setBalancerRunning(true,true);<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    rsGroupAdmin.balanceRSGroup(newGroupName);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      public boolean evaluate() throws Exception {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>        for (List&lt;String&gt; regions : getTableServerRegionMap().get(tableName).values()) {<a name="line.467"></a>
-<span class="sourceLineNo">468</span>          if (2 != regions.size()) {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>            return false;<a name="line.469"></a>
-<span class="sourceLineNo">470</span>          }<a name="line.470"></a>
-<span class="sourceLineNo">471</span>        }<a name="line.471"></a>
-<span class="sourceLineNo">472</span>        return true;<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      }<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    });<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    admin.setBalancerRunning(false,true);<a name="line.475"></a>
-<span class="sourceLineNo">476</span>  }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>  @Test<a name="line.478"></a>
-<span class="sourceLineNo">479</span>  public void testRegionMove() throws Exception {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    final RSGroupInfo newGroup = addGroup(getGroupName(name.getMethodName()), 1);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    final byte[] familyNameBytes = Bytes.toBytes("f");<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    // All the regions created below will be assigned to the default group.<a name="line.482"></a>
-<span class="sourceLineNo">483</span>    TEST_UTIL.createMultiRegionTable(tableName, familyNameBytes, 6);<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>      @Override<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      public boolean evaluate() throws Exception {<a name="line.486"></a>
-<span class="sourceLineNo">487</span>        List&lt;String&gt; regions = getTableRegionMap().get(tableName);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>        if (regions == null) {<a name="line.488"></a>
-<span class="sourceLineNo">489</span>          return false;<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 getTableRegionMap().get(tableName).size() &gt;= 6;<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      }<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    });<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>    //get target region to move<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    Map&lt;ServerName,List&lt;String&gt;&gt; assignMap =<a name="line.497"></a>
-<span class="sourceLineNo">498</span>        getTableServerRegionMap().get(tableName);<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    String targetRegion = null;<a name="line.499"></a>
-<span class="sourceLineNo">500</span>    for(ServerName server : assignMap.keySet()) {<a name="line.500"></a>
-<span class="sourceLineNo">501</span>      targetRegion = assignMap.get(server).size() &gt; 0 ? assignMap.get(server).get(0) : null;<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      if(targetRegion != null) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>        break;<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      }<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    //get server which is not a member of new group<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    ServerName targetServer = null;<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    for (ServerName server : admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.508"></a>
-<span class="sourceLineNo">509</span>                                  .getLiveServerMetrics().keySet()) {<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      if (!newGroup.containsServer(server.getAddress())) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>        targetServer = server;<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        break;<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><a name="line.515"></a>
-<span class="sourceLineNo">516</span>    final AdminProtos.AdminService.BlockingInterface targetRS =<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      ((ClusterConnection) admin.getConnection()).getAdmin(targetServer);<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>    //move target server to group<a name="line.519"></a>
-<span class="sourceLineNo">520</span>    rsGroupAdmin.moveServers(Sets.newHashSet(targetServer.getAddress()),<a name="line.520"></a>
-<span class="sourceLineNo">521</span>        newGroup.getName());<a name="line.521"></a>
-<span class="sourceLineNo">522</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>      @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      public boolean evaluate() throws Exception {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>        return ProtobufUtil.getOnlineRegions(targetRS).size() &lt;= 0;<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      }<a name="line.526"></a>
-<span class="sourceLineNo">527</span>    });<a name="line.527"></a>
-<span class="sourceLineNo">528</span><a name="line.528"></a>
-<span class="sourceLineNo">529</span>    // Lets move this region to the new group.<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    TEST_UTIL.getAdmin().move(Bytes.toBytes(RegionInfo.encodeRegionName(<a name="line.530"></a>
-<span class="sourceLineNo">531</span>            Bytes.toBytes(targetRegion))), Bytes.toBytes(targetServer.getServerName()));<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      @Override<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      public boolean evaluate() throws Exception {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>        return<a name="line.535"></a>
-<span class="sourceLineNo">536</span>            getTableRegionMap().get(tableName) != null &amp;&amp;<a name="line.536"></a>
-<span class="sourceLineNo">537</span>                getTableRegionMap().get(tableName).size() == 6 &amp;&amp;<a name="line.537"></a>
-<span class="sourceLineNo">538</span>                admin.getClusterMetrics(EnumSet.of(Option.REGIONS_IN_TRANSITION))<a name="line.538"></a>
-<span class="sourceLineNo">539</span>                     .getRegionStatesInTransition().size() &lt; 1;<a name="line.539"></a>
+<span class="sourceLineNo">395</span>    TEST_UTIL.createMultiRegionTable(tableName, familyNameBytes, 5);<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>      @Override<a name="line.397"></a>
+<span class="sourceLineNo">398</span>      public boolean evaluate() throws Exception {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>        List&lt;String&gt; regions = getTableRegionMap().get(tableName);<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        if (regions == null) {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>          return false;<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        }<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>        return getTableRegionMap().get(tableName).size() &gt;= 5;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      }<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    });<a name="line.406"></a>
+<span class="sourceLineNo">407</span><a name="line.407"></a>
+<span class="sourceLineNo">408</span>    RSGroupInfo tableGrp = rsGroupAdmin.getRSGroupInfoOfTable(tableName);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    assertTrue(tableGrp.getName().equals(RSGroupInfo.DEFAULT_GROUP));<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>    //change table's group<a name="line.411"></a>
+<span class="sourceLineNo">412</span>    LOG.info("Moving table "+tableName+" to "+newGroup.getName());<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    rsGroupAdmin.moveTables(Sets.newHashSet(tableName), newGroup.getName());<a name="line.413"></a>
+<span class="sourceLineNo">414</span><a name="line.414"></a>
+<span class="sourceLineNo">415</span>    //verify group change<a name="line.415"></a>
+<span class="sourceLineNo">416</span>    Assert.assertEquals(newGroup.getName(),<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        rsGroupAdmin.getRSGroupInfoOfTable(tableName).getName());<a name="line.417"></a>
+<span class="sourceLineNo">418</span><a name="line.418"></a>
+<span class="sourceLineNo">419</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      @Override<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      public boolean evaluate() throws Exception {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        Map&lt;ServerName, List&lt;String&gt;&gt; serverMap = getTableServerRegionMap().get(tableName);<a name="line.422"></a>
+<span class="sourceLineNo">423</span>        int count = 0;<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        if (serverMap != null) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>          for (ServerName rs : serverMap.keySet()) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>            if (newGroup.containsServer(rs.getAddress())) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>              count += serverMap.get(rs).size();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>            }<a name="line.428"></a>
+<span class="sourceLineNo">429</span>          }<a name="line.429"></a>
+<span class="sourceLineNo">430</span>        }<a name="line.430"></a>
+<span class="sourceLineNo">431</span>        return count == 5;<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>    //test truncate<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    admin.disableTable(tableName);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    admin.truncateTable(tableName, true);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    Assert.assertEquals(1, rsGroupAdmin.getRSGroupInfo(newGroup.getName()).getTables().size());<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    Assert.assertEquals(tableName, rsGroupAdmin.getRSGroupInfo(<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        newGroup.getName()).getTables().first());<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>    //verify removed table is removed from group<a name="line.442"></a>
+<span class="sourceLineNo">443</span>    TEST_UTIL.deleteTable(tableName);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>    Assert.assertEquals(0, rsGroupAdmin.getRSGroupInfo(newGroup.getName()).getTables().size());<a name="line.444"></a>
+<span class="sourceLineNo">445</span>  }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span>  @Test<a name="line.447"></a>
+<span class="sourceLineNo">448</span>  public void testGroupBalance() throws Exception {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>    LOG.info(name.getMethodName());<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    String newGroupName = getGroupName(name.getMethodName());<a name="line.450"></a>
+<span class="sourceLineNo">451</span>    final RSGroupInfo newGroup = addGroup(newGroupName, 3);<a name="line.451"></a>
+<span class="sourceLineNo">452</span><a name="line.452"></a>
+<span class="sourceLineNo">453</span>    final TableName tableName = TableName.valueOf(tablePrefix+"_ns", name.getMethodName());<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    admin.createNamespace(<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        NamespaceDescriptor.create(tableName.getNamespaceAsString())<a name="line.455"></a>
+<span class="sourceLineNo">456</span>            .addConfiguration(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP, newGroupName).build());<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    final byte[] familyNameBytes = Bytes.toBytes("f");<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    final HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.458"></a>
+<span class="sourceLineNo">459</span>    desc.addFamily(new HColumnDescriptor("f"));<a name="line.459"></a>
+<span class="sourceLineNo">460</span>    byte [] startKey = Bytes.toBytes("aaaaa");<a name="line.460"></a>
+<span class="sourceLineNo">461</span>    byte [] endKey = Bytes.toBytes("zzzzz");<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    admin.createTable(desc, startKey, endKey, 6);<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>      @Override<a name="line.464"></a>
+<span class="sourceLineNo">465</span>      public boolean evaluate() throws Exception {<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        List&lt;String&gt; regions = getTableRegionMap().get(tableName);<a name="line.466"></a>
+<span class="sourceLineNo">467</span>        if (regions == null) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>          return false;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        return regions.size() &gt;= 6;<a name="line.470"></a>
+<span class="sourceLineNo">471</span>      }<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    });<a name="line.472"></a>
+<span class="sourceLineNo">473</span><a name="line.473"></a>
+<span class="sourceLineNo">474</span>    //make assignment uneven, move all regions to one server<a name="line.474"></a>
+<span class="sourceLineNo">475</span>    Map&lt;ServerName,List&lt;String&gt;&gt; assignMap =<a name="line.475"></a>
+<span class="sourceLineNo">476</span>        getTableServerRegionMap().get(tableName);<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    final ServerName first = assignMap.entrySet().iterator().next().getKey();<a name="line.477"></a>
+<span class="sourceLineNo">478</span>    for(RegionInfo region: admin.getTableRegions(tableName)) {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      if(!assignMap.get(first).contains(region.getRegionNameAsString())) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        admin.move(region.getEncodedNameAsBytes(), Bytes.toBytes(first.getServerName()));<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      }<a name="line.481"></a>
+<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
+<span class="sourceLineNo">483</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      @Override<a name="line.484"></a>
+<span class="sourceLineNo">485</span>      public boolean evaluate() throws Exception {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        Map&lt;ServerName, List&lt;String&gt;&gt; map = getTableServerRegionMap().get(tableName);<a name="line.486"></a>
+<span class="sourceLineNo">487</span>        if (map == null) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>          return true;<a name="line.488"></a>
+<span class="sourceLineNo">489</span>        }<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        List&lt;String&gt; regions = map.get(first);<a name="line.490"></a>
+<span class="sourceLineNo">491</span>        if (regions == null) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>          return true;<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        }<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        return regions.size() &gt;= 6;<a name="line.494"></a>
+<span class="sourceLineNo">495</span>      }<a name="line.495"></a>
+<span class="sourceLineNo">496</span>    });<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>    //balance the other group and make sure it doesn't affect the new group<a name="line.498"></a>
+<span class="sourceLineNo">499</span>    admin.setBalancerRunning(true,true);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    rsGroupAdmin.balanceRSGroup(RSGroupInfo.DEFAULT_GROUP);<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    assertEquals(6, getTableServerRegionMap().get(tableName).get(first).size());<a name="line.501"></a>
+<span class="sourceLineNo">502</span><a name="line.502"></a>
+<span class="sourceLineNo">503</span>    //disable balance, balancer will not be run and return false<a name="line.503"></a>
+<span class="sourceLineNo">504</span>    admin.setBalancerRunning(false,true);<a name="line.504"></a>
+<span class="sourceLineNo">505</span>    assertFalse(rsGroupAdmin.balanceRSGroup(newGroupName));<a name="line.505"></a>
+<span class="sourceLineNo">506</span>    assertEquals(6, getTableServerRegionMap().get(tableName).get(first).size());<a name="line.506"></a>
+<span class="sourceLineNo">507</span><a name="line.507"></a>
+<span class="sourceLineNo">508</span>    //enable balance<a name="line.508"></a>
+<span class="sourceLineNo">509</span>    admin.setBalancerRunning(true,true);<a name="line.509"></a>
+<span class="sourceLineNo">510</span>    rsGroupAdmin.balanceRSGroup(newGroupName);<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>      @Override<a name="line.512"></a>
+<span class="sourceLineNo">513</span>      public boolean evaluate() throws Exception {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        for (List&lt;String&gt; regions : getTableServerRegionMap().get(tableName).values()) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>          if (2 != regions.size()) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>            return false;<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>        return true;<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      }<a name="line.520"></a>
+<span class="sourceLineNo">521</span>    });<a name="line.521"></a>
+<span class="sourceLineNo">522</span>    admin.setBalancerRunning(false,true);<a name="line.522"></a>
+<span class="sourceLineNo">523</span>  }<a name="line.523"></a>
+<span class="sourceLineNo">524</span><a name="line.524"></a>
+<span class="sourceLineNo">525</span>  @Test<a name="line.525"></a>
+<span class="sourceLineNo">526</span>  public void testRegionMove() throws Exception {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>    final RSGroupInfo newGroup = addGroup(getGroupName(name.getMethodName()), 1);<a name="line.527"></a>
+<span class="sourceLineNo">528</span>    final byte[] familyNameBytes = Bytes.toBytes("f");<a name="line.528"></a>
+<span class="sourceLineNo">529</span>    // All the regions created below will be assigned to the default group.<a name="line.529"></a>
+<span class="sourceLineNo">530</span>    TEST_UTIL.createMultiRegionTable(tableName, familyNameBytes, 6);<a name="line.530"></a>
+<span class="sourceLineNo">531</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>      @Override<a name="line.532"></a>
+<span class="sourceLineNo">533</span>      public boolean evaluate() throws Exception {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>        List&lt;String&gt; regions = getTableRegionMap().get(tableName);<a name="line.534"></a>
+<span class="sourceLineNo">535</span>        if (regions == null) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>          return false;<a name="line.536"></a>
+<span class="sourceLineNo">537</span>        }<a name="line.537"></a>
+<span class="sourceLineNo">538</span><a name="line.538"></a>
+<span class="sourceLineNo">539</span>        return getTableRegionMap().get(tableName).size() &gt;= 6;<a name="line.539"></a>
 <span class="sourceLineNo">540</span>      }<a name="line.540"></a>
 <span class="sourceLineNo">541</span>    });<a name="line.541"></a>
 <span class="sourceLineNo">542</span><a name="line.542"></a>
-<span class="sourceLineNo">543</span>    //verify that targetServer didn't open it<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    for (RegionInfo region: ProtobufUtil.getOnlineRegions(targetRS)) {<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      if (targetRegion.equals(region.getRegionNameAsString())) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>        fail("Target server opened region");<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      }<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    }<a name="line.548"></a>
-<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
-<span class="sourceLineNo">550</span><a name="line.550"></a>
-<span class="sourceLineNo">551</span>  @Test<a name="line.551"></a>
-<span class="sourceLineNo">552</span>  public void testFailRemoveGroup() throws IOException, InterruptedException {<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    int initNumGroups = rsGroupAdmin.listRSGroups().size();<a name="line.553"></a>
-<span class="sourceLineNo">554</span>    addGroup("bar", 3);<a name="line.554"></a>
-<span class="sourceLineNo">555</span>    TEST_UTIL.createTable(tableName, Bytes.toBytes("f"));<a name="line.555"></a>
-<span class="sourceLineNo">556</span>    rsGroupAdmin.moveTables(Sets.newHashSet(tableName), "bar");<a name="line.556"></a>
-<span class="sourceLineNo">557</span>    RSGroupInfo barGroup = rsGroupAdmin.getRSGroupInfo("bar");<a name="line.557"></a>
-<span class="sourceLineNo">558</span>    //group is not empty therefore it should fail<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    try {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>      rsGroupAdmin.removeRSGroup(barGroup.getName());<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      fail("Expected remove group to fail");<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    } catch(IOException e) {<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    }<a name="line.563"></a>
-<span class="sourceLineNo">564</span>    //group cannot lose all it's servers therefore it should fail<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    try {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>      rsGroupAdmin.moveServers(barGroup.getServers(), RSGroupInfo.DEFAULT_GROUP);<a name="line.566"></a>
-<span class="sourceLineNo">567</span>      fail("Expected move servers to fail");<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    } catch(IOException e) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    }<a name="line.569"></a>
-<span class="sourceLineNo">570</span><a name="line.570"></a>
-<span class="sourceLineNo">571</span>    rsGroupAdmin.moveTables(barGroup.getTables(), RSGroupInfo.DEFAULT_GROUP);<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    try {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      rsGroupAdmin.removeRSGroup(barGroup.getName());<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      fail("Expected move servers to fail");<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    } catch(IOException e) {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    }<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>    rsGroupAdmin.moveServers(barGroup.getServers(), RSGroupInfo.DEFAULT_GROUP);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    rsGroupAdmin.removeRSGroup(barGroup.getName());<a name="line.579"></a>
-<span class="sourceLineNo">580</span><a name="line.580"></a>
-<span class="sourceLineNo">581</span>    Assert.assertEquals(initNumGroups, rsGroupAdmin.listRSGroups().size());<a name="line.581"></a>
-<span class="sourceLineNo">582</span>  }<a name="line.582"></a>
-<span class="sourceLineNo">583</span><a name="line.583"></a>
-<span class="sourceLineNo">584</span>  @Test<a name="line.584"></a>
-<span class="sourceLineNo">585</span>  public void testKillRS() throws Exception {<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    RSGroupInfo appInfo = addGroup("appInfo", 1);<a name="line.586"></a>
-<span class="sourceLineNo">587</span><a name="line.587"></a>
-<span class="sourceLineNo">588</span>    final TableName tableName = TableName.valueOf(tablePrefix+"_ns", name.getMethodName());<a name="line.588"></a>
-<span class="sourceLineNo">589</span>    admin.createNamespace(<a name="line.589"></a>
-<span class="sourceLineNo">590</span>        NamespaceDescriptor.create(tableName.getNamespaceAsString())<a name="line.590"></a>
-<span class="sourceLineNo">591</span>            .addConfiguration(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP, appInfo.getName()).build());<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    final HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.592"></a>
-<span class="sourceLineNo">593</span>    desc.addFamily(new HColumnDescriptor("f"));<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    admin.createTable(desc);<a name="line.594"></a>
-<span class="sourceLineNo">595</span>    //wait for created table to be assigned<a name="line.595"></a>
-<span class="sourceLineNo">596</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.596"></a>
-<span class="sourceLineNo">597</span>      @Override<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      public boolean evaluate() throws Exception {<a name="line.598"></a>
-<span class="sourceLineNo">599</span>        return getTableRegionMap().get(desc.getTableName()) != null;<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      }<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    });<a name="line.601"></a>
-<span class="sourceLineNo">602</span><a name="line.602"></a>
-<span class="sourceLineNo">603</span>    ServerName targetServer = ServerName.parseServerName(<a name="line.603"></a>
-<span class="sourceLineNo">604</span>        appInfo.getServers().iterator().next().toString());<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    AdminProtos.AdminService.BlockingInterface targetRS =<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      ((ClusterConnection) admin.getConnection()).getAdmin(targetServer);<a name="line.606"></a>
-<span class="sourceLineNo">607</span>    RegionInfo targetRegion = ProtobufUtil.getOnlineRegions(targetRS).get(0);<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    Assert.assertEquals(1, ProtobufUtil.getOnlineRegions(targetRS).size());<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>    try {<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      //stopping may cause an exception<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      //due to the connection loss<a name="line.612"></a>
-<span class="sourceLineNo">613</span>      targetRS.stopServer(null,<a name="line.613"></a>
-<span class="sourceLineNo">614</span>          AdminProtos.StopServerRequest.newBuilder().setReason("Die").build());<a name="line.614"></a>
-<span class="sourceLineNo">615</span>    } catch(Exception e) {<a name="line.615"></a>
+<span class="sourceLineNo">543</span>    //get target region to move<a name="line.543"></a>
+<span class="sourceLineNo">544</span>    Map&lt;ServerName,List&lt;String&gt;&gt; assignMap =<a name="line.544"></a>
+<span class="sourceLineNo">545</span>        getTableServerRegionMap().get(tableName);<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    String targetRegion = null;<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    for(ServerName server : assignMap.keySet()) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>      targetRegion = assignMap.get(server).size() &gt; 0 ? assignMap.get(server).get(0) : null;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      if(targetRegion != null) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        break;<a name="line.550"></a>
+<span class="sourceLineNo">551</span>      }<a name="line.551"></a>
+<span class="sourceLineNo">552</span>    }<a name="line.552"></a>
+<span class="sourceLineNo">553</span>    //get server which is not a member of new group<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    ServerName targetServer = null;<a name="line.554"></a>
+<span class="sourceLineNo">555</span>    for (ServerName server : admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                                  .getLiveServerMetrics().keySet()) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>      if (!newGroup.containsServer(server.getAddress())) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>        targetServer = server;<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        break;<a name="line.559"></a>
+<span class="sourceLineNo">560</span>      }<a name="line.560"></a>
+<span class="sourceLineNo">561</span>    }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>    final AdminProtos.AdminService.BlockingInterface targetRS =<a name="line.563"></a>
+<span class="sourceLineNo">564</span>      ((ClusterConnection) admin.getConnection()).getAdmin(targetServer);<a name="line.564"></a>
+<span class="sourceLineNo">565</span><a name="line.565"></a>
+<span class="sourceLineNo">566</span>    //move target server to group<a name="line.566"></a>
+<span class="sourceLineNo">567</span>    rsGroupAdmin.moveServers(Sets.newHashSet(targetServer.getAddress()),<a name="line.567"></a>
+<span class="sourceLineNo">568</span>        newGroup.getName());<a name="line.568"></a>
+<span class="sourceLineNo">569</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>      @Override<a name="line.570"></a>
+<span class="sourceLineNo">571</span>      public boolean evaluate() throws Exception {<a name="line.571"></a>
+<span class="sourceLineNo">572</span>        return ProtobufUtil.getOnlineRegions(targetRS).size() &lt;= 0;<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>    // Lets move this region to the new group.<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    TEST_UTIL.getAdmin().move(Bytes.toBytes(RegionInfo.encodeRegionName(<a name="line.577"></a>
+<span class="sourceLineNo">578</span>            Bytes.toBytes(targetRegion))), Bytes.toBytes(targetServer.getServerName()));<a name="line.578"></a>
+<span class="sourceLineNo">579</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>      @Override<a name="line.580"></a>
+<span class="sourceLineNo">581</span>      public boolean evaluate() throws Exception {<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        return<a name="line.582"></a>
+<span class="sourceLineNo">583</span>            getTableRegionMap().get(tableName) != null &amp;&amp;<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                getTableRegionMap().get(tableName).size() == 6 &amp;&amp;<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                admin.getClusterMetrics(EnumSet.of(Option.REGIONS_IN_TRANSITION))<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                     .getRegionStatesInTransition().size() &lt; 1;<a name="line.586"></a>
+<span class="sourceLineNo">587</span>      }<a name="line.587"></a>
+<span class="sourceLineNo">588</span>    });<a name="line.588"></a>
+<span class="sourceLineNo">589</span><a name="line.589"></a>
+<span class="sourceLineNo">590</span>    //verify that targetServer didn't open it<a name="line.590"></a>
+<span class="sourceLineNo">591</span>    for (RegionInfo region: ProtobufUtil.getOnlineRegions(targetRS)) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>      if (targetRegion.equals(region.getRegionNameAsString())) {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>        fail("Target server opened region");<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>
+<span class="sourceLineNo">596</span>  }<a name="line.596"></a>
+<span class="sourceLineNo">597</span><a name="line.597"></a>
+<span class="sourceLineNo">598</span>  @Test<a name="line.598"></a>
+<span class="sourceLineNo">599</span>  public void testFailRemoveGroup() throws IOException, InterruptedException {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>    int initNumGroups = rsGroupAdmin.listRSGroups().size();<a name="line.600"></a>
+<span class="sourceLineNo">601</span>    addGroup("bar", 3);<a name="line.601"></a>
+<span class="sourceLineNo">602</span>    TEST_UTIL.createTable(tableName, Bytes.toBytes("f"));<a name="line.602"></a>
+<span class="sourceLineNo">603</span>    rsGroupAdmin.moveTables(Sets.newHashSet(tableName), "bar");<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    RSGroupInfo barGroup = rsGroupAdmin.getRSGroupInfo("bar");<a name="line.604"></a>
+<span class="sourceLineNo">605</span>    //group is not empty therefore it should fail<a name="line.605"></a>
+<span class="sourceLineNo">606</span>    try {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>      rsGroupAdmin.removeRSGroup(barGroup.getName());<a name="line.607"></a>
+<span class="sourceLineNo">608</span>      fail("Expected remove group to fail");<a name="line.608"></a>
+<span class="sourceLineNo">609</span>    } catch(IOException e) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    }<a name="line.610"></a>
+<span class="sourceLineNo">611</span>    //group cannot lose all it's servers therefore it should fail<a name="line.611"></a>
+<span class="sourceLineNo">612</span>    try {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>      rsGroupAdmin.moveServers(barGroup.getServers(), RSGroupInfo.DEFAULT_GROUP);<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      fail("Expected move servers to fail");<a name="line.614"></a>
+<span class="sourceLineNo">615</span>    } catch(IOException e) {<a name="line.615"></a>
 <span class="sourceLineNo">616</span>    }<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    assertFalse(cluster.getClusterMetrics().getLiveServerMetrics().containsKey(targetServer));<a name="line.617"></a>
-<span class="sourceLineNo">618</span><a name="line.618"></a>
-<span class="sourceLineNo">619</span>    //wait for created table to be assigned<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      @Override<a name="line.621"></a>
-<span class="sourceLineNo">622</span>      public boolean evaluate() throws Exception {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>        return cluster.getClusterMetrics().getRegionStatesInTransition().isEmpty();<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      }<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    });<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    Set&lt;Address&gt; newServers = Sets.newHashSet();<a name="line.626"></a>
-<span class="sourceLineNo">627</span>    newServers.add(<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP).getServers().iterator().next());<a name="line.628"></a>
-<span class="sourceLineNo">629</span>    rsGroupAdmin.moveServers(newServers, appInfo.getName());<a name="line.629"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>    rsGroupAdmin.moveTables(barGroup.getTables(), RSGroupInfo.DEFAULT_GROUP);<a name="line.618"></a>
+<span class="sourceLineNo">619</span>    try {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>      rsGroupAdmin.removeRSGroup(barGroup.getName());<a name="line.620"></a>
+<span class="sourceLineNo">621</span>      fail("Expected move servers to fail");<a name="line.621"></a>
+<span class="sourceLineNo">622</span>    } catch(IOException e) {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>    }<a name="line.623"></a>
+<span class="sourceLineNo">624</span><a name="line.624"></a>
+<span class="sourceLineNo">625</span>    rsGroupAdmin.moveServers(barGroup.getServers(), RSGroupInfo.DEFAULT_GROUP);<a name="line.625"></a>
+<span class="sourceLineNo">626</span>    rsGroupAdmin.removeRSGroup(barGroup.getName());<a name="line.626"></a>
+<span class="sourceLineNo">627</span><a name="line.627"></a>
+<span class="sourceLineNo">628</span>    Assert.assertEquals(initNumGroups, rsGroupAdmin.listRSGroups().size());<a name="line.628"></a>
+<span class="sourceLineNo">629</span>  }<a name="line.629"></a>
 <span class="sourceLineNo">630</span><a name="line.630"></a>
-<span class="sourceLineNo">631</span>    //Make sure all the table's regions get reassigned<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    //disabling the table guarantees no conflicting assign/unassign (ie SSH) happens<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    admin.disableTable(tableName);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    admin.enableTable(tableName);<a name="line.634"></a>
-<span class="sourceLineNo">635</span><a name="line.635"></a>
-<span class="sourceLineNo">636</span>    //wait for region to be assigned<a name="line.636"></a>
-<span class="sourceLineNo">637</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      @Override<a name="line.638"></a>
-<span class="sourceLineNo">639</span>      public boolean evaluate() throws Exception {<a name="line.639"></a>
-<span class="sourceLineNo">640</span>        return cluster.getClusterMetrics().getRegionStatesInTransition().isEmpty();<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      }<a name="line.641"></a>
-<span class="sourceLineNo">642</span>    });<a name="line.642"></a>
-<span class="sourceLineNo">643</span><a name="line.643"></a>
-<span class="sourceLineNo">644</span>    targetServer = ServerName.parseServerName(<a name="line.644"></a>
-<span class="sourceLineNo">645</span>        newServers.iterator().next().toString());<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    targetRS =<a name="line.646"></a>
-<span class="sourceLineNo">647</span>      ((ClusterConnection) admin.getConnection()).getAdmin(targetServer);<a name="line.647"></a>
-<span class="sourceLineNo">648</span>    Assert.assertEquals(1, ProtobufUtil.getOnlineRegions(targetRS).size());<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    Assert.assertEquals(tableName,<a name="line.649"></a>
-<span class="sourceLineNo">650</span>        ProtobufUtil.getOnlineRegions(targetRS).get(0).getTable());<a name="line.650"></a>
-<span class="sourceLineNo">651</span>  }<a name="line.651"></a>
-<span class="sourceLineNo">652</span><a name="line.652"></a>
-<span class="sourceLineNo">653</span>  @Test<a name="line.653"></a>
-<span class="sourceLineNo">654</span>  public void testValidGroupNames() throws IOException {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    String[] badNames = {"foo*","foo@","-"};<a name="line.655"></a>
-<span class="sourceLineNo">656</span>    String[] goodNames = {"foo_123"};<a name="line.656"></a>
-<span class="sourceLineNo">657</span><a name="line.657"></a>
-<span class="sourceLineNo">658</span>    for(String entry: badNames) {<a name="line.658"></a>
-<span class="sourceLineNo">659</span>      try {<a name="line.659"></a>
-<span class="sourceLineNo">660</span>        rsGroupAdmin.addRSGroup(entry);<a name="line.660"></a>
-<span class="sourceLineNo">661</span>        fail("Expected a constraint exception for: "+entry);<a name="line.661"></a>
-<span class="sourceLineNo">662</span>      } catch(ConstraintException ex) {<a name="line.662"></a>
-<span class="sourceLineNo">663</span>        //expected<a name="line.663"></a>
-<span class="sourceLineNo">664</span>      }<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    }<a name="line.665"></a>
-<span class="sourceLineNo">666</span><a name="line.666"></a>
-<span class="sourceLineNo">667</span>    for(String entry: goodNames) {<a name="line.667"></a>
-<span class="sourceLineNo">668</span>      rsGroupAdmin.addRSGroup(entry);<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    }<a name="line.669"></a>
-<span class="sourceLineNo">670</span>  }<a name="line.670"></a>
-<span class="sourceLineNo">671</span><a name="line.671"></a>
-<span class="sourceLineNo">672</span>  private String getGroupName(String baseName) {<a name="line.672"></a>
-<span class="sourceLineNo">673</span>    return groupPrefix+"_"+baseName+"_"+rand.nextInt(Integer.MAX_VALUE);<a name="line.673"></a>
-<span class="sourceLineNo">674</span>  }<a name="line.674"></a>
-<span class="sourceLineNo">675</span><a name="line.675"></a>
-<span class="sourceLineNo">676</span>  @Test<a name="line.676"></a>
-<span class="sourceLineNo">677</span>  public void testMultiTableMove() throws Exception {<a name="line.677"></a>
-<span class="sourceLineNo">678</span>    final TableName tableNameA = TableName.valueOf(tablePrefix + name.getMethodName() + "A");<a name="line.678"></a>
-<span class="sourceLineNo">679</span>    final TableName tableNameB = TableName.valueOf(tablePrefix + name.getMethodName() + "B");<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    final byte[] familyNameBytes = Bytes.toBytes("f");<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    String newGroupName = getGroupName(name.getMethodName());<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    final RSGroupInfo newGroup = addGroup(newGroupName, 1);<a name="line.682"></a>
-<span class="sourceLineNo">683</span><a name="line.683"></a>
-<span class="sourceLineNo">684</span>    TEST_UTIL.createTable(tableNameA, familyNameBytes);<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    TEST_UTIL.createTable(tableNameB, familyNameBytes);<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>      @Override<a name="line.687"></a>
-<span class="sourceLineNo">688</span>      public boolean evaluate() throws Exception {<a name="line.688"></a>
-<span class="sourceLineNo">689</span>        List&lt;String&gt; regionsA = getTableRegionMap().get(tableNameA);<a name="line.689"></a>
-<span class="sourceLineNo">690</span>        if (regionsA == null) {<a name="line.690"></a>
-<span class="sourceLineNo">691</span>          return false;<a name="line.691"></a>
-<span class="sourceLineNo">692</span>        }<a name="line.692"></a>
-<span class="sourceLineNo">693</span><a name="line.693"></a>
-<span class="sourceLineNo">694</span>        List&lt;String&gt; regionsB = getTableRegionMap().get(tableNameB);<a name="line.694"></a>
-<span class="sourceLineNo">695</span>        if (regionsB == null) {<a name="line.695"></a>
-<span class="sourceLineNo">696</span>          return false;<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        }<a name="line.697"></a>
-<span class="sourceLineNo">698</span><a name="line.698"></a>
-<span class="sourceLineNo">699</span>        return getTableRegionMap().get(tableNameA).size() &gt;= 1<a name="line.699"></a>
-<span class="sourceLineNo">700</span>                &amp;&amp; getTableRegionMap().get(tableNameB).size() &gt;= 1;<a name="line.700"></a>
-<span class="sourceLineNo">701</span>      }<a name="line.701"></a>
-<span class="sourceLineNo">702</span>    });<a name="line.702"></a>
-<span class="sourceLineNo">703</span><a name="line.703"></a>
-<span class="sourceLineNo">704</span>    RSGroupInfo tableGrpA = rsGroupAdmin.getRSGroupInfoOfTable(tableNameA);<a name="line.704"></a>
-<span class="sourceLineNo">705</span>    assertTrue(tableGrpA.getName().equals(RSGroupInfo.DEFAULT_GROUP));<a name="line.705"></a>
-<span class="sourceLineNo">706</span><a name="line.706"></a>
-<span class="sourceLineNo">707</span>    RSGroupInfo tableGrpB = rsGroupAdmin.getRSGroupInfoOfTable(tableNameB);<a name="line.707"></a>
-<span class="sourceLineNo">708</span>    assertTrue(tableGrpB.getName().equals(RSGroupInfo.DEFAULT_GROUP));<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    //change table's group<a name="line.709"></a>
-<span class="sourceLineNo">710</span>    LOG.info("Moving table [" + tableNameA + "," + tableNameB + "] to " + newGroup.getName());<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    rsGroupAdmin.moveTables(Sets.newHashSet(tableNameA, tableNameB), newGroup.getName());<a name="line.711"></a>
-<span class="sourceLineNo">712</span><a name="line.712"></a>
-<span class="sourceLineNo">713</span>    //verify group change<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    Assert.assertEquals(newGroup.getName(),<a name="line.714"></a>
-<span class="sourceLineNo">715</span>            rsGroupAdmin.getRSGroupInfoOfTable(tableNameA).getName());<a name="line.715"></a>
-<span class="sourceLineNo">716</span><a name="line.716"></a>
-<span class="sourceLineNo">717</span>    Assert.assertEquals(newGroup.getName(),<a name="line.717"></a>
-<span class="sourceLineNo">718</span>            rsGroupAdmin.getRSGroupInfoOfTable(tableNameB).getName());<a name="line.718"></a>
-<span class="sourceLineNo">719</span><a name="line.719"></a>
-<span class="sourceLineNo">720</span>    //verify tables' not exist in old group<a name="line.720"></a>
-<span class="sourceLineNo">721</span>    Set&lt;TableName&gt; DefaultTables = rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP)<a name="line.721"></a>
-<span class="sourceLineNo">722</span>            .getTables();<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    assertFalse(DefaultTables.contains(tableNameA));<a name="line.723"></a>
-<span class="sourceLineNo">724</span>    assertFalse(DefaultTables.contains(tableNameB));<a name="line.724"></a>
-<span class="sourceLineNo">725</span><a name="line.725"></a>
-<span class="sourceLineNo">726</span>    //verify tables' exist in new group<a name="line.726"></a>
-<span class="sourceLineNo">727</span>    Set&lt;TableName&gt; newGroupTables = rsGroupAdmin.getRSGroupInfo(newGroupName).getTables();<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    assertTrue(newGroupTables.contains(tableNameA));<a name="line.728"></a>
-<span class="sourceLineNo">729</span>    assertTrue(newGroupTables.contains(tableNameB));<a name="line.729"></a>
-<span class="sourceLineNo">730</span>  }<a name="line.730"></a>
-<span class="sourceLineNo">731</span><a name="line.731"></a>
-<span class="sourceLineNo">732</span>  @Test<a name="line.732"></a>
-<span class="sourceLineNo">733</span>  public void testDisabledTableMove() throws Exception {<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    final byte[] familyNameBytes = Bytes.toBytes("f");<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    String newGroupName = getGroupName(name.getMethodName());<a name="line.735"></a>
-<span class="sourceLineNo">736</span>    final RSGroupInfo newGroup = addGroup(newGroupName, 2);<a name="line.736"></a>
-<span class="sourceLineNo">737</span><a name="line.737"></a>
-<span class="sourceLineNo">738</span>    TEST_UTIL.createMultiRegionTable(tableName, familyNameBytes, 5);<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.739"></a>
-<span class="sourceLineNo">740</span>      @Override<a name="line.740"></a>
-<span class="sourceLineNo">741</span>      public boolean evaluate() throws Exception {<a name="line.741"></a>
-<span class="sourceLineNo">742</span>        List&lt;String&gt; regions = getTableRegionMap().get(tableName);<a name="line.742"></a>
-<span class="sourceLineNo">743</span>        if (regions == null) {<a name="line.743"></a>
-<span class="sourceLineNo">744</span>          return false;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>        }<a name="line.745"></a>
-<span class="sourceLineNo">746</span>        return getTableRegionMap().get(tableName).size() &gt;= 5;<a name="line.746"></a>
-<span class="sourceLineNo">747</span>      }<a name="line.747"></a>
-<span class="sourceLineNo">748</span>    });<a name="line.748"></a>
-<span class="sourceLineNo">749</span><a name="line.749"></a>
-<span class="sourceLineNo">750</span>    RSGroupInfo tableGrp = rsGroupAdmin.getRSGroupInfoOfTable(tableName);<a name="line.750"></a>
-<span class="sourceLineNo">751</span>    assertTrue(tableGrp.getName().equals(RSGroupInfo.DEFAULT_GROUP));<a name="line.751"></a>
-<span class="sourceLineNo">752</span><a name="line.752"></a>
-<span class="sourceLineNo">753</span>    //test disable table<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    admin.disableTable(tableName);<a name="line.754"></a>
-<span class="sourceLineNo">755</span><a name="line.755"></a>
+<span class="sourceLineNo">631</span>  @Test<a name="line.631"></a>
+<span class="sourceLineNo">632</span>  public void testKillRS() throws Exception {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>    RSGroupInfo appInfo = addGroup("appInfo", 1);<a name="line.633"></a>
+<span class="sourceLineNo">634</span><a name="line.634"></a>
+<span class="sourceLineNo">635</span>    final TableName tableName = TableName.valueOf(tablePrefix+"_ns", name.getMethodName());<a name="line.635"></a>
+<span class="sourceLineNo">636</span>    admin.createNamespace(<a name="line.636"></a>
+<span class="sourceLineNo">637</span>        NamespaceDescriptor.create(tableName.getNamespaceAsString())<a name="line.637"></a>
+<span class="sourceLineNo">638</span>            .addConfiguration(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP, appInfo.getName()).build());<a name="line.638"></a>
+<span class="sourceLineNo">639</span>    final HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.639"></a>
+<span class="sourceLineNo">640</span>    desc.addFamily(new HColumnDescriptor("f"));<a name="line.640"></a>
+<span class="sourceLineNo">641</span>    admin.createTable(desc);<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    //wait for created table to be assigned<a name="line.642"></a>
+<span class="sourceLineNo">643</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>      @Override<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      public boolean evaluate() throws Exception {<a name="line.645"></a>
+<span class="sourceLineNo">646</span>        return getTableRegionMap().get(desc.getTableName()) != null;<a name="line.646"></a>
+<span class="sourceLineNo">647</span>      }<a name="line.647"></a>
+<span class="sourceLineNo">648</span>    });<a name="line.648"></a>
+<span class="sourceLineNo">649</span><a name="line.649"></a>
+<span class="sourceLineNo">650</span>    ServerName targetServer = ServerName.parseServerName(<a name="line.650"></a>
+<span class="sourceLineNo">651</span>        appInfo.getServers().iterator().next().toString());<a name="line.651"></a>
+<span class="sourceLineNo">652</span>    AdminProtos.AdminService.BlockingInterface targetRS =<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      ((ClusterConnection) admin.getConnection()).getAdmin(targetServer);<a name="line.653"></a>
+<span class="sourceLineNo">654</span>    RegionInfo targetRegion = ProtobufUtil.getOnlineRegions(targetRS).get(0);<a name="line.654"></a>
+<span class="sourceLineNo">655</span>    Assert.assertEquals(1, ProtobufUtil.getOnlineRegions(targetRS).size());<a name="line.655"></a>
+<span class="sourceLineNo">656</span><a name="line.656"></a>
+<span class="sourceLineNo">657</span>    try {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>      //stopping may cause an exception<a name="line.658"></a>
+<span class="sourceLineNo">659</span>      //due to the connection loss<a name="line.659"></a>
+<span class="sourceLineNo">660</span>      targetRS.stopServer(null,<a name="line.660"></a>
+<span class="sourceLineNo">661</span>          AdminProtos.StopServerRequest.newBuilder().setReason("Die").build());<a name="line.661"></a>
+<span class="sourceLineNo">662</span>    } catch(Exception e) {<a name="line.662"></a>
+<span class="sourceLineNo">663</span>    }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>    assertFalse(cluster.getClusterMetrics().getLiveServerMetrics().containsKey(targetServer));<a name="line.664"></a>
+<span class="sourceLineNo">665</span><a name="line.665"></a>
+<span class="sourceLineNo">666</span>    //wait for created table to be assigned<a name="line.666"></a>
+<span class="sourceLineNo">667</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>      @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>      public boolean evaluate() throws Exception {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>        return cluster.getClusterMetrics().getRegionStatesInTransition().isEmpty();<a name="line.670"></a>
+<span class="sourceLineNo">671</span>      }<a name="line.671"></a>
+<span class="sourceLineNo">672</span>    });<a name="line.672"></a>
+<span class="sourceLineNo">673</span>    Set&lt;Address&gt; newServers = Sets.newHashSet();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>    newServers.add(<a name="line.674"></a>
+<span class="sourceLineNo">675</span>        rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP).getServers().iterator().next());<a name="line.675"></a>
+<span class="sourceLineNo">676</span>    rsGroupAdmin.moveServers(newServers, appInfo.getName());<a name="line.676"></a>
+<span class="sourceLineNo">677</span><a name="line.677"></a>
+<span class="sourceLineNo">678</span>    //Make sure all the table's regions get reassigned<a name="line.678"></a>
+<span class="sourceLineNo">679</span>    //disabling the table guarantees no conflicting assign/unassign (ie SSH) happens<a name="line.679"></a>
+<span class="sourceLineNo">680</span>    admin.disableTable(tableName);<a name="line.680"></a>
+<span class="sourceLineNo">681</span>    admin.enableTable(tableName);<a name="line.681"></a>
+<span class="sourceLineNo">682</span><a name="line.682"></a>
+<span class="sourceLineNo">683</span>    //wait for region to be assigned<a name="line.683"></a>
+<span class="sourceLineNo">684</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.684"></a>
+<span class="sourceLineNo">685</span>      @Override<a name="line.685"></a>
+<span class="sourceLineNo">686</span>      public boolean evaluate() throws Exception {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>        return cluster.getClusterMetrics().getRegionStatesInTransition().isEmpty();<a name="line.687"></a>
+<span class="sourceLineNo">688</span>      }<a name="line.688"></a>
+<span class="sourceLineNo">689</span>    });<a name="line.689"></a>
+<span class="sourceLineNo">690</span><a name="line.690"></a>
+<span class="sourceLineNo">691</span>    targetServer = ServerName.parseServerName(<a name="line.691"></a>
+<span class="sourceLineNo">692</span>        newServers.iterator().next().toString());<a name="line.692"></a>
+<span class="sourceLineNo">693</span>    targetRS =<a name="line.693"></a>
+<span class="sourceLineNo">694</span>      ((ClusterConnection) admin.getConnection()).getAdmin(targetServer);<a name="line.694"></a>
+<span class="sourceLineNo">695</span>    Assert.assertEquals(1, ProtobufUtil.getOnlineRegions(targetRS).size());<a name="line.695"></a>
+<span class="sourceLineNo">696</span>    Assert.assertEquals(tableName,<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        ProtobufUtil.getOnlineRegions(targetRS).get(0).getTable());<a name="line.697"></a>
+<span class="sourceLineNo">698</span>  }<a name="line.698"></a>
+<span class="sourceLineNo">699</span><a name="line.699"></a>
+<span class="sourceLineNo">700</span>  @Test<a name="line.700"></a>
+<span class="sourceLineNo">701</span>  public void testValidGroupNames() throws IOException {<a name="line.701"></a>
+<span class="sourceLineNo">702</span>    String[] badNames = {"foo*","foo@","-"};<a name="line.702"></a>
+<span class="sourceLineNo">703</span>    String[] goodNames = {"foo_123"};<a name="line.703"></a>
+<span class="sourceLineNo">704</span><a name="line.704"></a>
+<span class="sourceLineNo">705</span>    for(String entry: badNames) {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>      try {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>        rsGroupAdmin.addRSGroup(entry);<a name="line.707"></a>
+<span class="sourceLineNo">708</span>        fail("Expected a constraint exception for: "+entry);<a name="line.708"></a>
+<span class="sourceLineNo">709</span>      } catch(ConstraintException ex) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        //expected<a name="line.710"></a>
+<span class="sourceLineNo">711</span>      }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>    }<a name="line.712"></a>
+<span class="sourceLineNo">713</span><a name="line.713"></a>
+<span class="sourceLineNo">714</span>    for(String entry: goodNames) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>      rsGroupAdmin.addRSGroup(entry);<a name="line.715"></a>
+<span class="sourceLineNo">716</span>    }<a name="line.716"></a>
+<span class="sourceLineNo">717</span>  }<a name="line.717"></a>
+<span class="sourceLineNo">718</span><a name="line.718"></a>
+<span class="sourceLineNo">719</span>  private String getGroupName(String baseName) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>    return groupPrefix+"_"+baseName+"_"+rand.nextInt(Integer.MAX_VALUE);<a name="line.720"></a>
+<span class="sourceLineNo">721</span>  }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>  @Test<a name="line.723"></a>
+<span class="sourceLineNo">724</span>  public void testMultiTableMove() throws Exception {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>    final TableName tableNameA = TableName.valueOf(tablePrefix + name.getMethodName() + "A");<a name="line.725"></a>
+<span class="sourceLineNo">726</span>    final TableName tableNameB = TableName.valueOf(tablePrefix + name.getMethodName() + "B");<a name="line.726"></a>
+<span class="sourceLineNo">727</span>    final byte[] familyNameBytes = Bytes.toBytes("f");<a name="line.727"></a>
+<span class="sourceLineNo">728</span>    String newGroupName = getGroupName(name.getMethodName());<a name="line.728"></a>
+<span class="sourceLineNo">729</span>    final RSGroupInfo newGroup = addGroup(newGroupName, 1);<a name="line.729"></a>
+<span class="sourceLineNo">730</span><a name="line.730"></a>
+<span class="sourceLineNo">731</span>    TEST_UTIL.createTable(tableNameA, familyNameBytes);<a name="line.731"></a>
+<span class="sourceLineNo">732</span>    TEST_UTIL.createTable(tableNameB, familyNameBytes);<a name="line.732"></a>
+<span class="sourceLineNo">733</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>      @Override<a name="line.734"></a>
+<span class="sourceLineNo">735</span>      public boolean evaluate() throws Exception {<a name="line.735"></a>
+<span class="sourceLineNo">736</span>        List&lt;String&gt; regionsA = getTableRegionMap().get(tableNameA);<a name="line.736"></a>
+<span class="sourceLineNo">737</span>        if (regionsA == null) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>          return false;<a name="line.738"></a>
+<span class="sourceLineNo">739</span>        }<a name="line.739"></a>
+<span class="sourceLineNo">740</span><a name="line.740"></a>
+<span class="sourceLineNo">741</span>        List&lt;String&gt; regionsB = getTableRegionMap().get(tableNameB);<a name="line.741"></a>
+<span class="sourceLineNo">742</span>        if (regionsB == null) {<a name="line.742"></a>
+<span class="sourceLineNo">743</span>          return false;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>        }<a name="line.744"></a>
+<span class="sourceLineNo">745</span><a name="line.745"></a>
+<span class="sourceLineNo">746</span>        return getTableRegionMap().get(tableNameA).size() &gt;= 1<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                &amp;&amp; getTableRegionMap().get(tableNameB).size() &gt;= 1;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>      }<a name="line.748"></a>
+<span class="sourceLineNo">749</span>    });<a name="line.749"></a>
+<span class="sourceLineNo">750</span><a name="line.750"></a>
+<span class="sourceLineNo">751</span>    RSGroupInfo tableGrpA = rsGroupAdmin.getRSGroupInfoOfTable(tableNameA);<a name="line.751"></a>
+<span class="sourceLineNo">752</span>    assertTrue(tableGrpA.getName().equals(RSGroupInfo.DEFAULT_GROUP));<a name="line.752"></a>
+<span class="sourceLineNo">753</span><a name="line.753"></a>
+<span class="sourceLineNo">754</span>    RSGroupInfo tableGrpB = rsGroupAdmin.getRSGroupInfoOfTable(tableNameB);<a name="line.754"></a>
+<span class="sourceLineNo">755</span>    assertTrue(tableGrpB.getName().equals(RSGroupInfo.DEFAULT_GROUP));<a name="line.755"></a>
 <span class="sourceLineNo">756</span>    //change table's group<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    LOG.info("Moving table "+ tableName + " to " + newGroup.getName());<a name="line.757"></a>
-<span class="sourceLineNo">758</span>    rsGroupAdmin.moveTables(Sets.newHashSet(tableName), newGroup.getName());<a name="line.758"></a>
+<span class="sourceLineNo">757</span>    LOG.info("Moving table [" + tableNameA + "," + tableNameB + "] to " + newGroup.getName());<a name="line.757"></a>
+<span class="sourceLineNo">758</span>    rsGroupAdmin.moveTables(Sets.newHashSet(tableNameA, tableNameB), newGroup.getName());<a name="line.758"></a>
 <span class="sourceLineNo">759</span><a name="line.759"></a>
 <span class="sourceLineNo">760</span>    //verify group change<a name="line.760"></a>
 <span class="sourceLineNo">761</span>    Assert.assertEquals(newGroup.getName(),<a name="line.761"></a>
-<span class="sourceLineNo">762</span>        rsGroupAdmin.getRSGroupInfoOfTable(tableName).getName());<a name="line.762"></a>
-<span class="sourceLineNo">763</span>  }<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span>  @Test<a name="line.765"></a>
-<span class="sourceLineNo">766</span>  public void testNonExistentTableMove() throws Exception {<a name="line.766"></a>
-<span class="sourceLineNo">767</span>    TableName tableName = TableName.valueOf(tablePrefix + name.getMethodName());<a name="line.767"></a>
-<span class="sourceLineNo">768</span><a name="line.768"></a>
-<span class="sourceLineNo">769</span>    RSGroupInfo tableGrp = rsGroupAdmin.getRSGroupInfoOfTable(tableName);<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    assertNull(tableGrp);<a name="line.770"></a>
-<span class="sourceLineNo">771</span><a name="line.771"></a>
-<span class="sourceLineNo">772</span>    //test if table exists already.<a name="line.772"></a>
-<span class="sourceLineNo">773</span>    boolean exist = admin.tableExists(tableName);<a name="line.773"></a>
-<span class="sourceLineNo">774</span>    assertFalse(exist);<a name="line.774"></a>
-<span class="sourceLineNo">775</span><a name="line.775"></a>
-<span class="sourceLineNo">776</span>    LOG.info("Moving table "+ tableName + " to " + RSGroupInfo.DEFAULT_GROUP);<a name="line.776"></a>
-<span class="sourceLineNo">777</span>    try {<a name="line.777"></a>
-<span class="sourceLineNo">778</span>      rsGroupAdmin.moveTables(Sets.newHashSet(tableName), RSGroupInfo.DEFAULT_GROUP);<a name="line.778"></a>
-<span class="sourceLineNo">779</span>      fail("Table " + tableName + " shouldn't have been successfully moved.");<a name="line.779"></a>
-<span class="sourceLineNo">780</span>    } catch(IOException ex) {<a name="line.780"></a>
-<span class="sourceLineNo">781</span>      assertTrue(ex instanceof TableNotFoundException);<a name="line.781"></a>
-<span class="sourceLineNo">782</span>    }<a name="line.782"></a>
-<span class="sourceLineNo">783</span><a name="line.783"></a>
-<span class="sourceLineNo">784</span>    try {<a name="line.784"></a>
-<span class="sourceLineNo">785</span>      rsGroupAdmin.moveServersAndTables(<a name="line.785"></a>
-<span class="sourceLineNo">786</span>          Sets.newHashSet(Address.fromParts("bogus",123)),<a name="line.786"></a>
-<span class="sourceLineNo">787</span>          Sets.newHashSet(tableName), RSGroupInfo.DEFAULT_GROUP);<a name="line.787"></a>
-<span class="sourceLineNo">788</span>      fail("Table " + tableName + " shouldn't have been successfully moved.");<a name="line.788"></a>
-<span class="sourceLineNo">789</span>    } catch(IOException ex) {<a name="line.789"></a>
-<span class="sourceLineNo">790</span>      assertTrue(ex instanceof TableNotFoundException);<a name="line.790"></a>
-<span class="sourceLineNo">791</span>    }<a name="line.791"></a>
-<span class="sourceLineNo">792</span>    //verify group change<a name="line.792"></a>
-<span class="sourceLineNo">793</span>    assertNull(rsGroupAdmin.getRSGroupInfoOfTable(tableName));<a name="line.793"></a>
-<span class="sourceLineNo">794</span>  }<a name="line.794"></a>
-<span class="sourceLineNo">795</span><a name="line.795"></a>
-<span class="sourceLineNo">796</span>  @Test<a name="line.796"></a>
-<span class="sourceLineNo">797</span>  public void testMoveServersAndTables() throws Exception {<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    LOG.info("testMoveServersAndTables");<a name="line.798"></a>
-<span class="sourceLineNo">799</span>    final RSGroupInfo newGroup = addGroup(getGroupName(name.getMethodName()), 1);<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    //create table<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    final byte[] familyNameBytes = Bytes.toBytes("f");<a name="line.801"></a>
-<span class="sourceLineNo">802</span>    TEST_UTIL.createMultiRegionTable(tableName, familyNameBytes, 5);<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.803"></a>
-<span class="sourceLineNo">804</span>      @Override<a name="line.804"></a>
-<span class="sourceLineNo">805</span>      public boolean evaluate() throws Exception {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>        List&lt;String&gt; regions = getTableRegionMap().get(tableName);<a name="line.806"></a>
-<span class="sourceLineNo">807</span>        if (regions == null) {<a name="line.807"></a>
-<span class="sourceLineNo">808</span>          return false;<a name="line.808"></a>
-<span class="sourceLineNo">809</span>        }<a name="line.809"></a>
-<span class="sourceLineNo">810</span><a name="line.810"></a>
-<span class="sourceLineNo">811</span>        return getTableRegionMap().get(tableName).size() &gt;= 5;<a name="line.811"></a>
-<span class="sourceLineNo">812</span>      }<a name="line.812"></a>
-<span class="sourceLineNo">813</span>    });<a name="line.813"></a>
-<span class="sourceLineNo">814</span><a name="line.814"></a>
-<span class="sourceLineNo">815</span>    //get server which is not a member of new group<a name="line.815"></a>
-<span class="sourceLineNo">816</span>    ServerName targetServer = null;<a name="line.816"></a>
-<span class="sourceLineNo">817</span>    for(ServerName server : admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.817"></a>
-<span class="sourceLineNo">818</span>      .getLiveServerMetrics().keySet()) {<a name="line.818"></a>
-<span class="sourceLineNo">819</span>      i

<TRUNCATED>

[13/16] hbase-site git commit: Published site at 4f2dfd387779968d3b76a22f1f4189d3278b202d.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.html b/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.html
index fbdfc65..68ce820 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.html
@@ -182,9 +182,9 @@
 <span class="sourceLineNo">174</span>  @Override<a name="line.174"></a>
 <span class="sourceLineNo">175</span>  public void checkOutputSpecs(JobContext context) throws IOException,<a name="line.175"></a>
 <span class="sourceLineNo">176</span>      InterruptedException {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    Configuration hConf = context.getConfiguration();<a name="line.177"></a>
+<span class="sourceLineNo">177</span>    Configuration hConf = getConf();<a name="line.177"></a>
 <span class="sourceLineNo">178</span>    if (hConf == null) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      hConf = this.conf;<a name="line.179"></a>
+<span class="sourceLineNo">179</span>      hConf = context.getConfiguration();<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>    try (Admin admin = ConnectionFactory.createConnection(hConf).getAdmin()) {<a name="line.182"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index 6714b18..15fcfae 100644
--- a/book.html
+++ b/book.html
@@ -37873,7 +37873,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-05-08 14:29:54 UTC
+Last updated 2018-05-09 15:13:57 UTC
 </div>
 </div>
 </body>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index ca7dc16..3c9604a 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 9aba02b..debf06a 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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" />
@@ -10327,12 +10327,12 @@
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#JavadocTagContinuationIndentation">JavadocTagContinuationIndentation</a>
 <ul>
 <li>offset: <tt>&quot;2&quot;</tt></li></ul></td>
-<td>797</td>
+<td>783</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#NonEmptyAtclauseDescription">NonEmptyAtclauseDescription</a></td>
-<td>3822</td>
+<td>3836</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td>misc</td>
@@ -14541,7 +14541,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 26 has parse error. Missed HTML close tag 'arg'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>44</td></tr></table></div>
 <div class="section">
@@ -15177,7 +15177,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 4 has parse error. Missed HTML close tag 'pre'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>59</td></tr></table></div>
 <div class="section">
@@ -16932,7 +16932,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 19 has parse error. Details: no viable alternative at input '&lt;code&gt;\n   *   List&lt;Future&lt;' while parsing HTML_TAG</td>
 <td>167</td></tr></table></div>
 <div class="section">
@@ -19565,49 +19565,49 @@
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>74</td></tr>
+<td>88</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
-<td>185</td></tr>
+<td>199</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
-<td>185</td></tr>
+<td>199</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
-<td>185</td></tr>
+<td>199</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
-<td>186</td></tr>
+<td>200</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
-<td>186</td></tr>
+<td>200</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
-<td>188</td></tr>
+<td>202</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
-<td>188</td></tr></table></div>
+<td>202</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestRegionRebalancing.java">org/apache/hadoop/hbase/TestRegionRebalancing.java</h3>
 <table border="0" class="table table-striped">
@@ -19938,7 +19938,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 2 has parse error. Unrecognized error from ANTLR parser: null</td>
 <td>83</td></tr>
 <tr class="b">
@@ -27674,31 +27674,31 @@
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>854</td></tr>
+<td>857</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>864</td></tr>
+<td>867</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>896</td></tr>
+<td>899</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>1036</td></tr>
+<td>1039</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>1133</td></tr></table></div>
+<td>1136</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.ScannerCallable.java">org/apache/hadoop/hbase/client/ScannerCallable.java</h3>
 <table border="0" class="table table-striped">
@@ -31814,25 +31814,25 @@
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
-<td>89</td></tr>
+<td>97</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 105).</td>
-<td>116</td></tr>
+<td>128</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 106).</td>
-<td>122</td></tr>
+<td>134</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 105).</td>
-<td>128</td></tr></table></div>
+<td>140</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.TestScannerTimeout.java">org/apache/hadoop/hbase/client/TestScannerTimeout.java</h3>
 <table border="0" class="table table-striped">
@@ -33885,7 +33885,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 37 has parse error. Details: no viable alternative at input '&lt;ColumnFamily,' while parsing HTML_ELEMENT</td>
 <td>29</td></tr></table></div>
 <div class="section">
@@ -50196,7 +50196,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 24 has parse error. Details: no viable alternative at input '&lt;key,' while parsing HTML_ELEMENT</td>
 <td>25</td></tr>
 <tr class="a">
@@ -53784,7 +53784,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 2 has parse error. Unrecognized error from ANTLR parser: null</td>
 <td>587</td></tr>
 <tr class="b">
@@ -73395,7 +73395,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 60 has parse error. Missed HTML close tag 'Comparable'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>29</td></tr>
 <tr class="a">
@@ -77577,7 +77577,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 0 has parse error. Unrecognized error from ANTLR parser: null</td>
 <td>74</td></tr>
 <tr class="a">
@@ -87507,7 +87507,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 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">
@@ -116055,7 +116055,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 23 has parse error. Details: no viable alternative at input '&lt;expected,' while parsing HTML_ELEMENT</td>
 <td>143</td></tr>
 <tr class="a">
@@ -116259,7 +116259,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 78 has parse error. Details: no viable alternative at input '&lt;Object&gt;, Map&lt;String,' while parsing HTML_TAG</td>
 <td>33</td></tr>
 <tr class="a">
@@ -116859,7 +116859,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 35 has parse error. Missed HTML close tag 'index'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>823</td></tr>
 <tr class="b">
@@ -120672,7 +120672,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 58 has parse error. Details: no viable alternative at input '&lt;byte[' while parsing HTML_ELEMENT</td>
 <td>426</td></tr>
 <tr class="b">
@@ -123507,7 +123507,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/coc.html
----------------------------------------------------------------------
diff --git a/coc.html b/coc.html
index f8bfe45..f5b5659 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index 7c53d9b..e7d98d5 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 3f36672..b3df162 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index 689be40..1c7e3e7 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index 98d10b8..f55bbd8 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="20180508" />
+    <meta name="Date-Revision-yyyymmdd" content="20180509" />
     <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-05-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-09</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index de81d02..8f19af6 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>"Tue May  8 14:39:27 UTC 2018"</code></td>
+<td class="colLast"><code>"Wed May  9 15:23:26 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>"1825af45b328cd54680c5c552f07bb12c4705fdb"</code></td>
+<td class="colLast"><code>"4f2dfd387779968d3b76a22f1f4189d3278b202d"</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>"ffc5680715ed56f21d5623cc15a65008"</code></td>
+<td class="colLast"><code>"3d3c386d39a315d3821dcd77bdbf3342"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">
@@ -24573,6 +24573,25 @@
 </li>
 <li class="blockList">
 <table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupAdminServer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.KEEP_ONE_SERVER_IN_DEFAULT_ERROR_MESSAGE">
+<!--   -->
+</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/rsgroup/RSGroupAdminServer.html#KEEP_ONE_SERVER_IN_DEFAULT_ERROR_MESSAGE">KEEP_ONE_SERVER_IN_DEFAULT_ERROR_MESSAGE</a></code></td>
+<td class="colLast"><code>"should keep at least one server in \'default\' RSGroup."</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
 <caption><span>org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index 8f2fb17..9d3e848 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -64206,6 +64206,8 @@
 &nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/ColumnFamilyDescriptorBuilder.html#KEEP_DELETED_CELLS_BYTES">KEEP_DELETED_CELLS_BYTES</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ColumnFamilyDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">ColumnFamilyDescriptorBuilder</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#KEEP_ONE_SERVER_IN_DEFAULT_ERROR_MESSAGE">KEEP_ONE_SERVER_IN_DEFAULT_ERROR_MESSAGE</a></span> - Static variable in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupAdminServer</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.html#KEEP_REGION_LOADS">KEEP_REGION_LOADS</a></span> - Static variable in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">StochasticLoadBalancer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/HConstants.html#KEEP_SEQID_PERIOD">KEEP_SEQID_PERIOD</a></span> - Static variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/HConstants.html" title="class in org.apache.hadoop.hbase">HConstants</a></dt>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/63aade82/devapidocs/org/apache/hadoop/hbase/client/Scan.ReadType.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/Scan.ReadType.html b/devapidocs/org/apache/hadoop/hbase/client/Scan.ReadType.html
index 4941451..3a922a6 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/Scan.ReadType.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/Scan.ReadType.html
@@ -123,7 +123,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Public
-public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1176">Scan.ReadType</a>
+public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.html#line.1179">Scan.ReadType</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/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a>&gt;</pre>
 </li>
 </ul>
@@ -214,7 +214,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/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html#line.1177">DEFAULT</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html#line.1180">DEFAULT</a></pre>
 </li>
 </ul>
 <a name="STREAM">
@@ -223,7 +223,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>STREAM</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html#line.1177">STREAM</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html#line.1180">STREAM</a></pre>
 </li>
 </ul>
 <a name="PREAD">
@@ -232,7 +232,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>PREAD</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html#line.1177">PREAD</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html#line.1180">PREAD</a></pre>
 </li>
 </ul>
 </li>