You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2017/08/22 15:06:55 UTC

[01/21] hbase-site git commit: Published site at .

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site 22df707f7 -> b7626a4cc


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html
index d0a132f..b449362 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html
@@ -97,312 +97,314 @@
 <span class="sourceLineNo">089</span>  @BeforeClass<a name="line.89"></a>
 <span class="sourceLineNo">090</span>  public static void setUpOnce() throws Exception {<a name="line.90"></a>
 <span class="sourceLineNo">091</span>    // Default starts one regionserver only.<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    TEST_UTIL.startMiniCluster();<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    admin = TEST_UTIL.getAdmin();<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    serverNames = admin.getClusterStatus().getServers();<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    table = createTable();<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    putData();<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    tableRegions = admin.getTableRegions(TABLE_NAME);<a name="line.97"></a>
-<span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span>    for (Metric metric : Metric.values()) {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      requestsMap.put(metric, 0L);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>      requestsMapPrev.put(metric, 0L);<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>  private static Table createTable() throws IOException {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    HTableDescriptor td = new HTableDescriptor(TABLE_NAME);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    HColumnDescriptor cd1 = new HColumnDescriptor(CF1);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    td.addFamily(cd1);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    HColumnDescriptor cd2 = new HColumnDescriptor(CF2);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    cd2.setTimeToLive(TTL);<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    td.addFamily(cd2);<a name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>    admin.createTable(td);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    return TEST_UTIL.getConnection().getTable(TABLE_NAME);<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 static void testReadRequests(long resultCount,<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    long expectedReadRequests, long expectedFilteredReadRequests)<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    throws IOException, InterruptedException {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    updateMetricsMap();<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    System.out.println("requestsMapPrev = " + requestsMapPrev);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    System.out.println("requestsMap = " + requestsMap);<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>    assertEquals(expectedReadRequests,<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      requestsMap.get(Metric.REGION_READ) - requestsMapPrev.get(Metric.REGION_READ));<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(TEST_UTIL.getConfiguration());<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    if (tablesOnMaster) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      // If NO tables on master, then the single regionserver in this test carries user-space<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      // tables and the meta table. The first time through, the read will be inflated by meta<a name="line.129"></a>
-<span class="sourceLineNo">130</span>      // lookups. We don't know which test will be first through since junit randomizes. This<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      // method is used by a bunch of tests. Just do this check if master is hosting (system)<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      // regions only.<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      assertEquals(expectedReadRequests,<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      requestsMap.get(Metric.SERVER_READ) - requestsMapPrev.get(Metric.SERVER_READ));<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    }<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    assertEquals(expectedFilteredReadRequests,<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      requestsMap.get(Metric.FILTERED_REGION_READ)<a name="line.137"></a>
-<span class="sourceLineNo">138</span>        - requestsMapPrev.get(Metric.FILTERED_REGION_READ));<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    assertEquals(expectedFilteredReadRequests,<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      requestsMap.get(Metric.FILTERED_SERVER_READ)<a name="line.140"></a>
-<span class="sourceLineNo">141</span>        - requestsMapPrev.get(Metric.FILTERED_SERVER_READ));<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    assertEquals(expectedReadRequests, resultCount);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  }<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>  private static void updateMetricsMap() throws IOException, InterruptedException {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    for (Metric metric : Metric.values()) {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      requestsMapPrev.put(metric, requestsMap.get(metric));<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>    ServerLoad serverLoad = null;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    RegionLoad regionLoadOuter = null;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    boolean metricsUpdated = false;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    for (int i = 0; i &lt; MAX_TRY; i++) {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      for (ServerName serverName : serverNames) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>        serverLoad = admin.getClusterStatus().getLoad(serverName);<a name="line.155"></a>
-<span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>        Map&lt;byte[], RegionLoad&gt; regionsLoad = serverLoad.getRegionsLoad();<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        for (HRegionInfo tableRegion : tableRegions) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>          RegionLoad regionLoad = regionsLoad.get(tableRegion.getRegionName());<a name="line.159"></a>
-<span class="sourceLineNo">160</span>          if (regionLoad != null) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>            regionLoadOuter = regionLoad;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>            for (Metric metric : Metric.values()) {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>              if (getReadRequest(serverLoad, regionLoad, metric) &gt; requestsMapPrev.get(metric)) {<a name="line.163"></a>
-<span class="sourceLineNo">164</span>                for (Metric metricInner : Metric.values()) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>                  requestsMap.put(metricInner, getReadRequest(serverLoad, regionLoad, metricInner));<a name="line.165"></a>
-<span class="sourceLineNo">166</span>                }<a name="line.166"></a>
-<span class="sourceLineNo">167</span>                metricsUpdated = true;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>                break;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>              }<a name="line.169"></a>
-<span class="sourceLineNo">170</span>            }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>          }<a name="line.171"></a>
-<span class="sourceLineNo">172</span>        }<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      }<a name="line.173"></a>
-<span class="sourceLineNo">174</span>      if (metricsUpdated) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>        break;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      }<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      Thread.sleep(SLEEP_MS);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    }<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    if (!metricsUpdated) {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      for (Metric metric : Metric.values()) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>        requestsMap.put(metric, getReadRequest(serverLoad, regionLoadOuter, metric));<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>  }<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private static long getReadRequest(ServerLoad serverLoad, RegionLoad regionLoad, Metric metric) {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    switch (metric) {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      case REGION_READ:<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        return regionLoad.getReadRequestsCount();<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      case SERVER_READ:<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        return serverLoad.getReadRequestsCount();<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      case FILTERED_REGION_READ:<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        return regionLoad.getFilteredReadRequestsCount();<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      case FILTERED_SERVER_READ:<a name="line.194"></a>
-<span class="sourceLineNo">195</span>        return serverLoad.getFilteredReadRequestsCount();<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      default:<a name="line.196"></a>
-<span class="sourceLineNo">197</span>        throw new IllegalStateException();<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    }<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  }<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private static void putData() throws IOException {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    Put put;<a name="line.202"></a>
-<span class="sourceLineNo">203</span><a name="line.203"></a>
-<span class="sourceLineNo">204</span>    put = new Put(ROW1);<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    put.addColumn(CF1, COL3, VAL3);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    table.put(put);<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    put = new Put(ROW2);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    put.addColumn(CF1, COL1, VAL2);  // put val2 instead of val1<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    table.put(put);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    put = new Put(ROW3);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    table.put(put);<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>  private static void putTTLExpiredData() throws IOException, InterruptedException {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    Put put;<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span>    put = new Put(ROW1);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    table.put(put);<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>    Thread.sleep(TTL * 1000);<a name="line.227"></a>
+<span class="sourceLineNo">092</span>    TEST_UTIL.getConfiguration().setBoolean(LoadBalancer.TABLES_ON_MASTER, true);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    TEST_UTIL.getConfiguration().setBoolean(LoadBalancer.SYSTEM_TABLES_ON_MASTER, true);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    TEST_UTIL.startMiniCluster();<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    admin = TEST_UTIL.getAdmin();<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    serverNames = admin.getClusterStatus().getServers();<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    table = createTable();<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    putData();<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    tableRegions = admin.getTableRegions(TABLE_NAME);<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>    for (Metric metric : Metric.values()) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>      requestsMap.put(metric, 0L);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      requestsMapPrev.put(metric, 0L);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    }<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>  private static Table createTable() throws IOException {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    HTableDescriptor td = new HTableDescriptor(TABLE_NAME);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    HColumnDescriptor cd1 = new HColumnDescriptor(CF1);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    td.addFamily(cd1);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    HColumnDescriptor cd2 = new HColumnDescriptor(CF2);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    cd2.setTimeToLive(TTL);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    td.addFamily(cd2);<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>    admin.createTable(td);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    return TEST_UTIL.getConnection().getTable(TABLE_NAME);<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>  private static void testReadRequests(long resultCount,<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    long expectedReadRequests, long expectedFilteredReadRequests)<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    throws IOException, InterruptedException {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    updateMetricsMap();<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    System.out.println("requestsMapPrev = " + requestsMapPrev);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    System.out.println("requestsMap = " + requestsMap);<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>    assertEquals(expectedReadRequests,<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      requestsMap.get(Metric.REGION_READ) - requestsMapPrev.get(Metric.REGION_READ));<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(TEST_UTIL.getConfiguration());<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    if (tablesOnMaster) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      // If NO tables on master, then the single regionserver in this test carries user-space<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      // tables and the meta table. The first time through, the read will be inflated by meta<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      // lookups. We don't know which test will be first through since junit randomizes. This<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      // method is used by a bunch of tests. Just do this check if master is hosting (system)<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      // regions only.<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      assertEquals(expectedReadRequests,<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      requestsMap.get(Metric.SERVER_READ) - requestsMapPrev.get(Metric.SERVER_READ));<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    }<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    assertEquals(expectedFilteredReadRequests,<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      requestsMap.get(Metric.FILTERED_REGION_READ)<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        - requestsMapPrev.get(Metric.FILTERED_REGION_READ));<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    assertEquals(expectedFilteredReadRequests,<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      requestsMap.get(Metric.FILTERED_SERVER_READ)<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        - requestsMapPrev.get(Metric.FILTERED_SERVER_READ));<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    assertEquals(expectedReadRequests, resultCount);<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>  private static void updateMetricsMap() throws IOException, InterruptedException {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    for (Metric metric : Metric.values()) {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      requestsMapPrev.put(metric, requestsMap.get(metric));<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>    ServerLoad serverLoad = null;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    RegionLoad regionLoadOuter = null;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    boolean metricsUpdated = false;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    for (int i = 0; i &lt; MAX_TRY; i++) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      for (ServerName serverName : serverNames) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        serverLoad = admin.getClusterStatus().getLoad(serverName);<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>        Map&lt;byte[], RegionLoad&gt; regionsLoad = serverLoad.getRegionsLoad();<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        for (HRegionInfo tableRegion : tableRegions) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>          RegionLoad regionLoad = regionsLoad.get(tableRegion.getRegionName());<a name="line.161"></a>
+<span class="sourceLineNo">162</span>          if (regionLoad != null) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>            regionLoadOuter = regionLoad;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>            for (Metric metric : Metric.values()) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>              if (getReadRequest(serverLoad, regionLoad, metric) &gt; requestsMapPrev.get(metric)) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                for (Metric metricInner : Metric.values()) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                  requestsMap.put(metricInner, getReadRequest(serverLoad, regionLoad, metricInner));<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                metricsUpdated = true;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                break;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>              }<a name="line.171"></a>
+<span class="sourceLineNo">172</span>            }<a name="line.172"></a>
+<span class="sourceLineNo">173</span>          }<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        }<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      }<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      if (metricsUpdated) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        break;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      }<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      Thread.sleep(SLEEP_MS);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    if (!metricsUpdated) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      for (Metric metric : Metric.values()) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        requestsMap.put(metric, getReadRequest(serverLoad, regionLoadOuter, metric));<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><a name="line.187"></a>
+<span class="sourceLineNo">188</span>  private static long getReadRequest(ServerLoad serverLoad, RegionLoad regionLoad, Metric metric) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    switch (metric) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      case REGION_READ:<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        return regionLoad.getReadRequestsCount();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      case SERVER_READ:<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        return serverLoad.getReadRequestsCount();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      case FILTERED_REGION_READ:<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        return regionLoad.getFilteredReadRequestsCount();<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      case FILTERED_SERVER_READ:<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        return serverLoad.getFilteredReadRequestsCount();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      default:<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        throw new IllegalStateException();<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    }<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  private static void putData() throws IOException {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    Put put;<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>    put = new Put(ROW1);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    put.addColumn(CF1, COL3, VAL3);<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    table.put(put);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    put = new Put(ROW2);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    put.addColumn(CF1, COL1, VAL2);  // put val2 instead of val1<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    table.put(put);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    put = new Put(ROW3);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    table.put(put);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>  }<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>  private static void putTTLExpiredData() throws IOException, InterruptedException {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    Put put;<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>    put = new Put(ROW1);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    table.put(put);<a name="line.227"></a>
 <span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span>    put = new Put(ROW2);<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    table.put(put);<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>    put = new Put(ROW3);<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    table.put(put);<a name="line.237"></a>
-<span class="sourceLineNo">238</span>  }<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>  @AfterClass<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  public static void tearDownOnce() throws Exception {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.242"></a>
-<span class="sourceLineNo">243</span>  }<a name="line.243"></a>
-<span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span>  @Test<a name="line.245"></a>
-<span class="sourceLineNo">246</span>  public void testReadRequestsCountNotFiltered() throws Exception {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    int resultCount;<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    Scan scan;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    Append append;<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    Put put;<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    Increment increment;<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    Get get;<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span>    // test for scan<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    scan = new Scan();<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      resultCount = 0;<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      for (Result ignore : scanner) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        resultCount++;<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      testReadRequests(resultCount, 3, 0);<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
-<span class="sourceLineNo">263</span><a name="line.263"></a>
-<span class="sourceLineNo">264</span>    // test for scan<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    scan = new Scan(ROW2, ROW3);<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      resultCount = 0;<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      for (Result ignore : scanner) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>        resultCount++;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      testReadRequests(resultCount, 1, 0);<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>    // test for get<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    get = new Get(ROW2);<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    Result result = table.get(get);<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    testReadRequests(resultCount, 1, 0);<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>    // test for increment<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    increment = new Increment(ROW1);<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    increment.addColumn(CF1, COL3, 1);<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    result = table.increment(increment);<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    testReadRequests(resultCount, 1, 0);<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>    // test for checkAndPut<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    put = new Put(ROW1);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    boolean checkAndPut =<a name="line.290"></a>
-<span class="sourceLineNo">291</span>      table.checkAndPut(ROW1, CF1, COL2, CompareFilter.CompareOp.EQUAL, VAL2, put);<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    resultCount = checkAndPut ? 1 : 0;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    testReadRequests(resultCount, 1, 0);<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>    // test for append<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    append = new Append(ROW1);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    append.addColumn(CF1, COL2, VAL2);<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    result = table.append(append);<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    testReadRequests(resultCount, 1, 0);<a name="line.300"></a>
-<span class="sourceLineNo">301</span><a name="line.301"></a>
-<span class="sourceLineNo">302</span>    // test for checkAndMutate<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    put = new Put(ROW1);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    RowMutations rm = new RowMutations(ROW1);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    rm.add(put);<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    boolean checkAndMutate =<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      table.checkAndMutate(ROW1, CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1, rm);<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    resultCount = checkAndMutate ? 1 : 0;<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    testReadRequests(resultCount, 1, 0);<a name="line.310"></a>
-<span class="sourceLineNo">311</span>  }<a name="line.311"></a>
-<span class="sourceLineNo">312</span><a name="line.312"></a>
-<span class="sourceLineNo">313</span>  @Test<a name="line.313"></a>
-<span class="sourceLineNo">314</span>  public void testReadRequestsCountWithFilter() throws Exception {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    int resultCount;<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    Scan scan;<a name="line.316"></a>
-<span class="sourceLineNo">317</span><a name="line.317"></a>
-<span class="sourceLineNo">318</span>    // test for scan<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    scan = new Scan();<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    scan.setFilter(new SingleColumnValueFilter(CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1));<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      resultCount = 0;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      for (Result ignore : scanner) {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>        resultCount++;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      }<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      testReadRequests(resultCount, 2, 1);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    }<a name="line.327"></a>
-<span class="sourceLineNo">328</span><a name="line.328"></a>
-<span class="sourceLineNo">329</span>    // test for scan<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    scan = new Scan();<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    scan.setFilter(new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(ROW1)));<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      resultCount = 0;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      for (Result ignore : scanner) {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        resultCount++;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      }<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      testReadRequests(resultCount, 1, 2);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    }<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    // test for scan<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    scan = new Scan(ROW2, ROW3);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    scan.setFilter(new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(ROW1)));<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      resultCount = 0;<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      for (Result ignore : scanner) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>        resultCount++;<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      }<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      testReadRequests(resultCount, 0, 1);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    }<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>    // fixme filtered get should not increase readRequestsCount<a name="line.351"></a>
-<span class="sourceLineNo">352</span>//    Get get = new Get(ROW2);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>//    get.setFilter(new SingleColumnValueFilter(CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1));<a name="line.353"></a>
-<span class="sourceLineNo">354</span>//    Result result = table.get(get);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>//    resultCount = result.isEmpty() ? 0 : 1;<a name="line.355"></a>
-<span class="sourceLineNo">356</span>//    testReadRequests(resultCount, 0, 1);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  }<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span>  @Test<a name="line.359"></a>
-<span class="sourceLineNo">360</span>  public void testReadRequestsCountWithDeletedRow() throws Exception {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    try {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      Delete delete = new Delete(ROW3);<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      table.delete(delete);<a name="line.363"></a>
-<span class="sourceLineNo">364</span><a name="line.364"></a>
-<span class="sourceLineNo">365</span>      Scan scan = new Scan();<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        int resultCount = 0;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>        for (Result ignore : scanner) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>          resultCount++;<a name="line.369"></a>
-<span class="sourceLineNo">370</span>        }<a name="line.370"></a>
-<span class="sourceLineNo">371</span>        testReadRequests(resultCount, 2, 1);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      }<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    } finally {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      Put put = new Put(ROW3);<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      put.addColumn(CF1, COL2, VAL2);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      table.put(put);<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    }<a name="line.378"></a>
-<span class="sourceLineNo">379</span>  }<a name="line.379"></a>
-<span class="sourceLineNo">380</span><a name="line.380"></a>
-<span class="sourceLineNo">381</span>  @Test<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  public void testReadRequestsCountWithTTLExpiration() throws Exception {<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    putTTLExpiredData();<a name="line.383"></a>
-<span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>    Scan scan = new Scan();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    scan.addFamily(CF2);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      int resultCount = 0;<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      for (Result ignore : scanner) {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        resultCount++;<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      }<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      testReadRequests(resultCount, 2, 1);<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>  }<a name="line.394"></a>
-<span class="sourceLineNo">395</span><a name="line.395"></a>
-<span class="sourceLineNo">396</span>  private enum Metric {REGION_READ, SERVER_READ, FILTERED_REGION_READ, FILTERED_SERVER_READ}<a name="line.396"></a>
-<span class="sourceLineNo">397</span>}<a name="line.397"></a>
+<span class="sourceLineNo">229</span>    Thread.sleep(TTL * 1000);<a name="line.229"></a>
+<span class="sourceLineNo">230</span><a name="line.230"></a>
+<span class="sourceLineNo">231</span>    put = new Put(ROW2);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    table.put(put);<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>    put = new Put(ROW3);<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    table.put(put);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>  }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>  @AfterClass<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  public static void tearDownOnce() throws Exception {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.244"></a>
+<span class="sourceLineNo">245</span>  }<a name="line.245"></a>
+<span class="sourceLineNo">246</span><a name="line.246"></a>
+<span class="sourceLineNo">247</span>  @Test<a name="line.247"></a>
+<span class="sourceLineNo">248</span>  public void testReadRequestsCountNotFiltered() throws Exception {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    int resultCount;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    Scan scan;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    Append append;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    Put put;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    Increment increment;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    Get get;<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>    // test for scan<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    scan = new Scan();<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      resultCount = 0;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      for (Result ignore : scanner) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>        resultCount++;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      testReadRequests(resultCount, 3, 0);<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>    // test for scan<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    scan = new Scan(ROW2, ROW3);<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      resultCount = 0;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      for (Result ignore : scanner) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        resultCount++;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      }<a name="line.272"></a>
+<span class="sourceLineNo">273</span>      testReadRequests(resultCount, 1, 0);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    }<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>    // test for get<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    get = new Get(ROW2);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    Result result = table.get(get);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    testReadRequests(resultCount, 1, 0);<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>    // test for increment<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    increment = new Increment(ROW1);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    increment.addColumn(CF1, COL3, 1);<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    result = table.increment(increment);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    testReadRequests(resultCount, 1, 0);<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>    // test for checkAndPut<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    put = new Put(ROW1);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    boolean checkAndPut =<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      table.checkAndPut(ROW1, CF1, COL2, CompareFilter.CompareOp.EQUAL, VAL2, put);<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    resultCount = checkAndPut ? 1 : 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    testReadRequests(resultCount, 1, 0);<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>    // test for append<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    append = new Append(ROW1);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    append.addColumn(CF1, COL2, VAL2);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    result = table.append(append);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    testReadRequests(resultCount, 1, 0);<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>    // test for checkAndMutate<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    put = new Put(ROW1);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    RowMutations rm = new RowMutations(ROW1);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    rm.add(put);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    boolean checkAndMutate =<a name="line.309"></a>
+<span class="sourceLineNo">310</span>      table.checkAndMutate(ROW1, CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1, rm);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    resultCount = checkAndMutate ? 1 : 0;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    testReadRequests(resultCount, 1, 0);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  }<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span>  @Test<a name="line.315"></a>
+<span class="sourceLineNo">316</span>  public void testReadRequestsCountWithFilter() throws Exception {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    int resultCount;<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    Scan scan;<a name="line.318"></a>
+<span class="sourceLineNo">319</span><a name="line.319"></a>
+<span class="sourceLineNo">320</span>    // test for scan<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    scan = new Scan();<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    scan.setFilter(new SingleColumnValueFilter(CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1));<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      resultCount = 0;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      for (Result ignore : scanner) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>        resultCount++;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      }<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      testReadRequests(resultCount, 2, 1);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>    // test for scan<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    scan = new Scan();<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    scan.setFilter(new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(ROW1)));<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      resultCount = 0;<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      for (Result ignore : scanner) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        resultCount++;<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      }<a name="line.338"></a>
+<span class="sourceLineNo">339</span>      testReadRequests(resultCount, 1, 2);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    }<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>    // test for scan<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    scan = new Scan(ROW2, ROW3);<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    scan.setFilter(new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(ROW1)));<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      resultCount = 0;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      for (Result ignore : scanner) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        resultCount++;<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      }<a name="line.349"></a>
+<span class="sourceLineNo">350</span>      testReadRequests(resultCount, 0, 1);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    }<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>    // fixme filtered get should not increase readRequestsCount<a name="line.353"></a>
+<span class="sourceLineNo">354</span>//    Get get = new Get(ROW2);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>//    get.setFilter(new SingleColumnValueFilter(CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1));<a name="line.355"></a>
+<span class="sourceLineNo">356</span>//    Result result = table.get(get);<a name="line.356"></a>
+<span class="sourceLineNo">357</span>//    resultCount = result.isEmpty() ? 0 : 1;<a name="line.357"></a>
+<span class="sourceLineNo">358</span>//    testReadRequests(resultCount, 0, 1);<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>  @Test<a name="line.361"></a>
+<span class="sourceLineNo">362</span>  public void testReadRequestsCountWithDeletedRow() throws Exception {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    try {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      Delete delete = new Delete(ROW3);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      table.delete(delete);<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>      Scan scan = new Scan();<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        int resultCount = 0;<a name="line.369"></a>
+<span class="sourceLineNo">370</span>        for (Result ignore : scanner) {<a name="line.370"></a>
+<span class="sourceLineNo">371</span>          resultCount++;<a name="line.371"></a>
+<span class="sourceLineNo">372</span>        }<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        testReadRequests(resultCount, 2, 1);<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    } finally {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      Put put = new Put(ROW3);<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      put.addColumn(CF1, COL2, VAL2);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      table.put(put);<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    }<a name="line.380"></a>
+<span class="sourceLineNo">381</span>  }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>  @Test<a name="line.383"></a>
+<span class="sourceLineNo">384</span>  public void testReadRequestsCountWithTTLExpiration() throws Exception {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    putTTLExpiredData();<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>    Scan scan = new Scan();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    scan.addFamily(CF2);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      int resultCount = 0;<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      for (Result ignore : scanner) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        resultCount++;<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      }<a name="line.393"></a>
+<span class="sourceLineNo">394</span>      testReadRequests(resultCount, 2, 1);<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    }<a name="line.395"></a>
+<span class="sourceLineNo">396</span>  }<a name="line.396"></a>
+<span class="sourceLineNo">397</span><a name="line.397"></a>
+<span class="sourceLineNo">398</span>  private enum Metric {REGION_READ, SERVER_READ, FILTERED_REGION_READ, FILTERED_SERVER_READ}<a name="line.398"></a>
+<span class="sourceLineNo">399</span>}<a name="line.399"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/src-html/org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html
index 47953b6..ecd1554 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html
@@ -31,88 +31,41 @@
 <span class="sourceLineNo">023</span><a name="line.23"></a>
 <span class="sourceLineNo">024</span>import java.io.IOException;<a name="line.24"></a>
 <span class="sourceLineNo">025</span><a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.commons.logging.Log;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.commons.logging.LogFactory;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.conf.Configuration;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.Abortable;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<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.EnvironmentEdgeManager;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.zookeeper.WatchedEvent;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.zookeeper.Watcher;<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>@Category({ SmallTests.class })<a name="line.39"></a>
-<span class="sourceLineNo">040</span>public class TestZooKeeperWatcher {<a name="line.40"></a>
-<span class="sourceLineNo">041</span>  private final static Log LOG = LogFactory.getLog(TestZooKeeperWatcher.class);<a name="line.41"></a>
-<span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span>  @Test<a name="line.43"></a>
-<span class="sourceLineNo">044</span>  public void testIsClientReadable() throws ZooKeeperConnectionException, IOException {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>    ZooKeeperWatcher watcher = new ZooKeeperWatcher(HBaseConfiguration.create(),<a name="line.45"></a>
-<span class="sourceLineNo">046</span>        "testIsClientReadable", null, false);<a name="line.46"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.junit.Test;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.junit.experimental.categories.Category;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>@Category({ SmallTests.class })<a name="line.32"></a>
+<span class="sourceLineNo">033</span>public class TestZooKeeperWatcher {<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>  @Test<a name="line.35"></a>
+<span class="sourceLineNo">036</span>  public void testIsClientReadable() throws ZooKeeperConnectionException, IOException {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>    ZooKeeperWatcher watcher = new ZooKeeperWatcher(HBaseConfiguration.create(),<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        "testIsClientReadable", null, false);<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>    assertTrue(watcher.isClientReadable(watcher.znodePaths.baseZNode));<a name="line.40"></a>
+<span class="sourceLineNo">041</span>    assertTrue(watcher.isClientReadable(watcher.znodePaths.getZNodeForReplica(0)));<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    assertTrue(watcher.isClientReadable(watcher.znodePaths.masterAddressZNode));<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    assertTrue(watcher.isClientReadable(watcher.znodePaths.clusterIdZNode));<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    assertTrue(watcher.isClientReadable(watcher.znodePaths.tableZNode));<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    assertTrue(watcher.isClientReadable(ZKUtil.joinZNode(watcher.znodePaths.tableZNode, "foo")));<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    assertTrue(watcher.isClientReadable(watcher.znodePaths.rsZNode));<a name="line.46"></a>
 <span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>    assertTrue(watcher.isClientReadable(watcher.znodePaths.baseZNode));<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    assertTrue(watcher.isClientReadable(watcher.znodePaths.getZNodeForReplica(0)));<a name="line.49"></a>
-<span class="sourceLineNo">050</span>    assertTrue(watcher.isClientReadable(watcher.znodePaths.masterAddressZNode));<a name="line.50"></a>
-<span class="sourceLineNo">051</span>    assertTrue(watcher.isClientReadable(watcher.znodePaths.clusterIdZNode));<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    assertTrue(watcher.isClientReadable(watcher.znodePaths.tableZNode));<a name="line.52"></a>
-<span class="sourceLineNo">053</span>    assertTrue(watcher.isClientReadable(ZKUtil.joinZNode(watcher.znodePaths.tableZNode, "foo")));<a name="line.53"></a>
-<span class="sourceLineNo">054</span>    assertTrue(watcher.isClientReadable(watcher.znodePaths.rsZNode));<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>    assertFalse(watcher.isClientReadable(watcher.znodePaths.tableLockZNode));<a name="line.56"></a>
-<span class="sourceLineNo">057</span>    assertFalse(watcher.isClientReadable(watcher.znodePaths.balancerZNode));<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    assertFalse(watcher.isClientReadable(watcher.znodePaths.regionNormalizerZNode));<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    assertFalse(watcher.isClientReadable(watcher.znodePaths.clusterStateZNode));<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    assertFalse(watcher.isClientReadable(watcher.znodePaths.drainingZNode));<a name="line.60"></a>
-<span class="sourceLineNo">061</span>    assertFalse(watcher.isClientReadable(watcher.znodePaths.recoveringRegionsZNode));<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    assertFalse(watcher.isClientReadable(watcher.znodePaths.splitLogZNode));<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    assertFalse(watcher.isClientReadable(watcher.znodePaths.backupMasterAddressesZNode));<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>    watcher.close();<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 testConnectionEvent() throws ZooKeeperConnectionException, IOException {<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    long zkSessionTimeout = 15000l;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    Configuration conf = HBaseConfiguration.create();<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    conf.set("zookeeper.session.timeout", "15000");<a name="line.72"></a>
-<span class="sourceLineNo">073</span><a name="line.73"></a>
-<span class="sourceLineNo">074</span>    Abortable abortable = new Abortable() {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      boolean aborted = false;<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>      @Override<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      public void abort(String why, Throwable e) {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>        aborted = true;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>        LOG.error(why, e);<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>      @Override<a name="line.83"></a>
-<span class="sourceLineNo">084</span>      public boolean isAborted() {<a name="line.84"></a>
-<span class="sourceLineNo">085</span>        return aborted;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      }<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    };<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    ZooKeeperWatcher watcher = new ZooKeeperWatcher(conf, "testConnectionEvent", abortable, false, true);<a name="line.88"></a>
-<span class="sourceLineNo">089</span><a name="line.89"></a>
-<span class="sourceLineNo">090</span>    WatchedEvent event =<a name="line.90"></a>
-<span class="sourceLineNo">091</span>        new WatchedEvent(Watcher.Event.EventType.None, Watcher.Event.KeeperState.Disconnected, null);<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>    long startTime = EnvironmentEdgeManager.currentTime();<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    while (!abortable.isAborted()<a name="line.94"></a>
-<span class="sourceLineNo">095</span>        &amp;&amp; (EnvironmentEdgeManager.currentTime() - startTime &lt; zkSessionTimeout)) {<a name="line.95"></a>
-<span class="sourceLineNo">096</span>      watcher.process(event);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      try {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>        Thread.sleep(1000);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>      } catch (InterruptedException e) {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>        Thread.currentThread().interrupt();<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>    assertTrue(abortable.isAborted());<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    watcher.close();<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  }<a name="line.106"></a>
-<span class="sourceLineNo">107</span>}<a name="line.107"></a>
+<span class="sourceLineNo">048</span>    assertFalse(watcher.isClientReadable(watcher.znodePaths.tableLockZNode));<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    assertFalse(watcher.isClientReadable(watcher.znodePaths.balancerZNode));<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    assertFalse(watcher.isClientReadable(watcher.znodePaths.regionNormalizerZNode));<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    assertFalse(watcher.isClientReadable(watcher.znodePaths.clusterStateZNode));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>    assertFalse(watcher.isClientReadable(watcher.znodePaths.drainingZNode));<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    assertFalse(watcher.isClientReadable(watcher.znodePaths.recoveringRegionsZNode));<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    assertFalse(watcher.isClientReadable(watcher.znodePaths.splitLogZNode));<a name="line.54"></a>
+<span class="sourceLineNo">055</span>    assertFalse(watcher.isClientReadable(watcher.znodePaths.backupMasterAddressesZNode));<a name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>    watcher.close();<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>}<a name="line.60"></a>
 
 
 

[17/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html b/devapidocs/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html
index e2300f6..e70dc7f 100644
--- a/devapidocs/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html
+++ b/devapidocs/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" target="_top">Frames</a></li>
@@ -74,7 +74,7 @@ var activeTableTab = "activeTableTab";
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
-<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
 <li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.68">ZooKeeperWatcher</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.64">ZooKeeperWatcher</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title="interface in org.apache.hadoop.hbase">Abortable</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></pre>
 <div class="block">Acts as the single ZooKeeper Watcher.  One instance of this is instantiated
@@ -142,17 +142,6 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <!--   -->
 </a>
 <h3>Nested Class Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
-<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Class and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>(package private) class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher.ZKDisconnectEventWatcher</a></span></code>&nbsp;</td>
-</tr>
-</table>
 <ul class="blockList">
 <li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.zookeeper.Watcher">
 <!--   -->
@@ -187,53 +176,37 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#conf">conf</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#connected">connected</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>private long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#connWaitTimeOut">connWaitTimeOut</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>private boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#forceAbortOnZKDisconnect">forceAbortOnZKDisconnect</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#identifier">identifier</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperListener.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperListener</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#listeners">listeners</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static org.apache.commons.logging.Log</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#NAME_PATTERN">NAME_PATTERN</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/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/zookeeper/ZooKeeperWatcher.html#prefix">prefix</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/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/zookeeper/ZooKeeperWatcher.html#quorum">quorum</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html" title="class in org.apache.hadoop.hbase.zookeeper">RecoverableZooKeeper</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#recoverableZooKeeper">recoverableZooKeeper</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CountDownLatch.html?is-external=true" title="class or interface in java.util.concurrent">CountDownLatch</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#saslLatch">saslLatch</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#zkEventWatcherExecService">zkEventWatcherExecService</a></span></code>&nbsp;</td>
-</tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZNodePaths.html" title="class in org.apache.hadoop.hbase.zookeeper">ZNodePaths</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#znodePaths">znodePaths</a></span></code>&nbsp;</td>
@@ -267,15 +240,6 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <div class="block">Instantiate a ZooKeeper connection and watcher.</div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#ZooKeeperWatcher-org.apache.hadoop.conf.Configuration-java.lang.String-org.apache.hadoop.hbase.Abortable-boolean-boolean-">ZooKeeperWatcher</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
-                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
-                <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title="interface in org.apache.hadoop.hbase">Abortable</a>&nbsp;abortable,
-                boolean&nbsp;canCreateBaseZNode,
-                boolean&nbsp;forceAbortOnZKDisconnect)</code>
-<div class="block">Instantiate a ZooKeeper connection and watcher.</div>
-</td>
-</tr>
 </table>
 </li>
 </ul>
@@ -490,7 +454,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.69">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.65">LOG</a></pre>
 </li>
 </ul>
 <a name="prefix">
@@ -499,7 +463,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>prefix</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.73">prefix</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.69">prefix</a></pre>
 </li>
 </ul>
 <a name="identifier">
@@ -508,7 +472,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>identifier</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.74">identifier</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.70">identifier</a></pre>
 </li>
 </ul>
 <a name="quorum">
@@ -517,7 +481,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>quorum</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.77">quorum</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.73">quorum</a></pre>
 </li>
 </ul>
 <a name="recoverableZooKeeper">
@@ -526,7 +490,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>recoverableZooKeeper</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html" title="class in org.apache.hadoop.hbase.zookeeper">RecoverableZooKeeper</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.80">recoverableZooKeeper</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html" title="class in org.apache.hadoop.hbase.zookeeper">RecoverableZooKeeper</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.76">recoverableZooKeeper</a></pre>
 </li>
 </ul>
 <a name="abortable">
@@ -535,7 +499,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>abortable</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title="interface in org.apache.hadoop.hbase">Abortable</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.83">abortable</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title="interface in org.apache.hadoop.hbase">Abortable</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.79">abortable</a></pre>
 </li>
 </ul>
 <a name="aborted">
@@ -544,7 +508,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>aborted</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.85">aborted</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.81">aborted</a></pre>
 </li>
 </ul>
 <a name="znodePaths">
@@ -553,7 +517,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>znodePaths</h4>
-<pre>public final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZNodePaths.html" title="class in org.apache.hadoop.hbase.zookeeper">ZNodePaths</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.87">znodePaths</a></pre>
+<pre>public final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZNodePaths.html" title="class in org.apache.hadoop.hbase.zookeeper">ZNodePaths</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.83">znodePaths</a></pre>
 </li>
 </ul>
 <a name="listeners">
@@ -562,7 +526,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>listeners</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperListener.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperListener</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.90">listeners</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperListener.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperListener</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.86">listeners</a></pre>
 </li>
 </ul>
 <a name="saslLatch">
@@ -571,43 +535,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>saslLatch</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CountDownLatch.html?is-external=true" title="class or interface in java.util.concurrent">CountDownLatch</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.94">saslLatch</a></pre>
-</li>
-</ul>
-<a name="connWaitTimeOut">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>connWaitTimeOut</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.97">connWaitTimeOut</a></pre>
-</li>
-</ul>
-<a name="connected">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>connected</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.98">connected</a></pre>
-</li>
-</ul>
-<a name="forceAbortOnZKDisconnect">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>forceAbortOnZKDisconnect</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.99">forceAbortOnZKDisconnect</a></pre>
-</li>
-</ul>
-<a name="zkEventWatcherExecService">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>zkEventWatcherExecService</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.102">zkEventWatcherExecService</a></pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CountDownLatch.html?is-external=true" title="class or interface in java.util.concurrent">CountDownLatch</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.90">saslLatch</a></pre>
 </li>
 </ul>
 <a name="conf">
@@ -616,7 +544,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>conf</h4>
-<pre>private final&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.105">conf</a></pre>
+<pre>private final&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.94">conf</a></pre>
 </li>
 </ul>
 <a name="NAME_PATTERN">
@@ -625,7 +553,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockListLast">
 <li class="blockList">
 <h4>NAME_PATTERN</h4>
-<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.108">NAME_PATTERN</a></pre>
+<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.97">NAME_PATTERN</a></pre>
 </li>
 </ul>
 </li>
@@ -642,7 +570,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>ZooKeeperWatcher</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.117">ZooKeeperWatcher</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.106">ZooKeeperWatcher</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
                         <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title="interface in org.apache.hadoop.hbase">Abortable</a>&nbsp;abortable)
                  throws <a href="../../../../../org/apache/hadoop/hbase/ZooKeeperConnectionException.html" title="class in org.apache.hadoop.hbase">ZooKeeperConnectionException</a>,
@@ -661,10 +589,10 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <a name="ZooKeeperWatcher-org.apache.hadoop.conf.Configuration-java.lang.String-org.apache.hadoop.hbase.Abortable-boolean-">
 <!--   -->
 </a>
-<ul class="blockList">
+<ul class="blockListLast">
 <li class="blockList">
 <h4>ZooKeeperWatcher</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.133">ZooKeeperWatcher</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.122">ZooKeeperWatcher</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
                         <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title="interface in org.apache.hadoop.hbase">Abortable</a>&nbsp;abortable,
                         boolean&nbsp;canCreateBaseZNode)
@@ -685,35 +613,6 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 </dl>
 </li>
 </ul>
-<a name="ZooKeeperWatcher-org.apache.hadoop.conf.Configuration-java.lang.String-org.apache.hadoop.hbase.Abortable-boolean-boolean-">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>ZooKeeperWatcher</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.151">ZooKeeperWatcher</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
-                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
-                        <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title="interface in org.apache.hadoop.hbase">Abortable</a>&nbsp;abortable,
-                        boolean&nbsp;canCreateBaseZNode,
-                        boolean&nbsp;forceAbortOnZKDisconnect)
-                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
-                        <a href="../../../../../org/apache/hadoop/hbase/ZooKeeperConnectionException.html" title="class in org.apache.hadoop.hbase">ZooKeeperConnectionException</a></pre>
-<div class="block">Instantiate a ZooKeeper connection and watcher.</div>
-<dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>conf</code> - Configuration</dd>
-<dd><code>identifier</code> - string that is passed to RecoverableZookeeper to be used as identifier for
-          this instance. Use null for default.</dd>
-<dd><code>abortable</code> - Can be null if there is on error there is no host to abort: e.g. client
-          context.</dd>
-<dd><code>canCreateBaseZNode</code> - whether create base node.</dd>
-<dd><code>forceAbortOnZKDisconnect</code> - abort the watcher if true.</dd>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - when any IO exception</dd>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/ZooKeeperConnectionException.html" title="class in org.apache.hadoop.hbase">ZooKeeperConnectionException</a></code> - when any zookeeper connection exception</dd>
-</dl>
-</li>
-</ul>
 </li>
 </ul>
 <!-- ============ METHOD DETAIL ========== -->
@@ -728,7 +627,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>createBaseZNodes</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.187">createBaseZNodes</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.151">createBaseZNodes</a>()
                        throws <a href="../../../../../org/apache/hadoop/hbase/ZooKeeperConnectionException.html" title="class in org.apache.hadoop.hbase">ZooKeeperConnectionException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -742,7 +641,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>isClientReadable</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.207">isClientReadable</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;node)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.171">isClientReadable</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;node)</pre>
 <div class="block">Returns whether the znode is supposed to be readable by the client
  and DOES NOT contain sensitive information (world readable).</div>
 </li>
@@ -753,7 +652,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndSetZNodeAcls</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.228">checkAndSetZNodeAcls</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.192">checkAndSetZNodeAcls</a>()</pre>
 <div class="block">On master start, we check the znode ACLs under the root directory and set the ACLs properly
  if needed. If the cluster goes from an unsecure setup to a secure setup, this step is needed
  so that the existing znodes created with open permissions are now changed with restrictive
@@ -766,7 +665,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>setZnodeAclsRecursive</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.257">setZnodeAclsRecursive</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;znode)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.221">setZnodeAclsRecursive</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;znode)
                             throws org.apache.zookeeper.KeeperException,
                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Set the znode perms recursively. This will do post-order recursion, so that baseZnode ACLs
@@ -786,7 +685,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>isBaseZnodeAclSetup</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.274">isBaseZnodeAclSetup</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.zookeeper.data.ACL&gt;&nbsp;acls)
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.238">isBaseZnodeAclSetup</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.zookeeper.data.ACL&gt;&nbsp;acls)
                              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Checks whether the ACLs returned from the base znode (/hbase) is set for secure setup.</div>
 <dl>
@@ -805,7 +704,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>checkACLForSuperUsers</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.350">checkACLForSuperUsers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;superUsers,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.314">checkACLForSuperUsers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;superUsers,
                                       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.zookeeper.data.ACL&gt;&nbsp;acls)</pre>
 </li>
 </ul>
@@ -815,7 +714,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>isSuperUserId</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.380">isSuperUserId</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;superUsers,
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.344">isSuperUserId</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;superUsers,
                                     org.apache.zookeeper.data.Id&nbsp;id)</pre>
 </li>
 </ul>
@@ -825,7 +724,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.391">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.355">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -838,7 +737,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>prefix</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.401">prefix</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;str)</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.365">prefix</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;str)</pre>
 <div class="block">Adds this instance's identifier as a prefix to the passed <code>str</code></div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -855,7 +754,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaReplicaNodes</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.410">getMetaReplicaNodes</a>()
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.374">getMetaReplicaNodes</a>()
                                  throws org.apache.zookeeper.KeeperException</pre>
 <div class="block">Get the znodes corresponding to the meta replicas from ZK</div>
 <dl>
@@ -872,7 +771,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>registerListener</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.426">registerListener</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperListener.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperListener</a>&nbsp;listener)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.390">registerListener</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperListener.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperListener</a>&nbsp;listener)</pre>
 <div class="block">Register the specified listener to receive ZooKeeper events.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -886,7 +785,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>registerListenerFirst</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.435">registerListenerFirst</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperListener.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperListener</a>&nbsp;listener)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.399">registerListenerFirst</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperListener.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperListener</a>&nbsp;listener)</pre>
 <div class="block">Register the specified listener to receive ZooKeeper events and add it as
  the first in the list of current listeners.</div>
 <dl>
@@ -901,7 +800,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>unregisterListener</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.439">unregisterListener</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperListener.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperListener</a>&nbsp;listener)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.403">unregisterListener</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperListener.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperListener</a>&nbsp;listener)</pre>
 </li>
 </ul>
 <a name="unregisterAllListeners--">
@@ -910,7 +809,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>unregisterAllListeners</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.446">unregisterAllListeners</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.410">unregisterAllListeners</a>()</pre>
 <div class="block">Clean all existing listeners</div>
 </li>
 </ul>
@@ -920,7 +819,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>getListeners</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperListener.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperListener</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.453">getListeners</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperListener.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperListener</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.417">getListeners</a>()</pre>
 <div class="block">Get a copy of current registered listeners</div>
 </li>
 </ul>
@@ -930,7 +829,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumberOfListeners</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.460">getNumberOfListeners</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.424">getNumberOfListeners</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The number of currently registered listeners</dd>
@@ -943,7 +842,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>getRecoverableZooKeeper</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html" title="class in org.apache.hadoop.hbase.zookeeper">RecoverableZooKeeper</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.468">getRecoverableZooKeeper</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html" title="class in org.apache.hadoop.hbase.zookeeper">RecoverableZooKeeper</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.432">getRecoverableZooKeeper</a>()</pre>
 <div class="block">Get the connection to ZooKeeper.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -957,7 +856,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>reconnectAfterExpiration</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.472">reconnectAfterExpiration</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.436">reconnectAfterExpiration</a>()
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                      org.apache.zookeeper.KeeperException,
                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
@@ -975,7 +874,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>getQuorum</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.480">getQuorum</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.444">getQuorum</a>()</pre>
 <div class="block">Get the quorum address of this instance.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -989,7 +888,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>getZNodePaths</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZNodePaths.html" title="class in org.apache.hadoop.hbase.zookeeper">ZNodePaths</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.489">getZNodePaths</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZNodePaths.html" title="class in org.apache.hadoop.hbase.zookeeper">ZNodePaths</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.453">getZNodePaths</a>()</pre>
 <div class="block">Get the znodePaths.
  <p>
  Mainly used for mocking as mockito can not mock a field access.</div>
@@ -1001,7 +900,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>process</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.500">process</a>(org.apache.zookeeper.WatchedEvent&nbsp;event)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.464">process</a>(org.apache.zookeeper.WatchedEvent&nbsp;event)</pre>
 <div class="block">Method called from ZooKeeper for events and connection status.
  <p>
  Valid events are passed along to listeners.  Connection status changes
@@ -1018,7 +917,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>connectionEvent</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.558">connectionEvent</a>(org.apache.zookeeper.WatchedEvent&nbsp;event)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.522">connectionEvent</a>(org.apache.zookeeper.WatchedEvent&nbsp;event)</pre>
 <div class="block">Called when there is a connection-related event via the Watcher callback.
  <p>
  If Disconnected or Expired, this should shutdown the cluster. But, since
@@ -1038,7 +937,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>sync</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.645">sync</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.568">sync</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
           throws org.apache.zookeeper.KeeperException</pre>
 <div class="block">Forces a synchronization of this ZooKeeper client connection.
  <p>
@@ -1062,7 +961,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>keeperException</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.659">keeperException</a>(org.apache.zookeeper.KeeperException&nbsp;ke)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.582">keeperException</a>(org.apache.zookeeper.KeeperException&nbsp;ke)
                      throws org.apache.zookeeper.KeeperException</pre>
 <div class="block">Handles KeeperExceptions in client calls.
  <p>
@@ -1084,7 +983,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>interruptedException</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.670">interruptedException</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a>&nbsp;ie)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.593">interruptedException</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a>&nbsp;ie)
                           throws org.apache.zookeeper.KeeperException</pre>
 <div class="block">Handles InterruptedExceptions in client calls.</div>
 <dl>
@@ -1101,7 +1000,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>interruptedExceptionNoThrow</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.681">interruptedExceptionNoThrow</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a>&nbsp;ie,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.604">interruptedExceptionNoThrow</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a>&nbsp;ie,
                                         boolean&nbsp;throwLater)</pre>
 <div class="block">Log the InterruptedException and interrupt current thread</div>
 <dl>
@@ -1117,7 +1016,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.694">close</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.617">close</a>()</pre>
 <div class="block">Close the connection to ZooKeeper.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1133,7 +1032,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>getConfiguration</h4>
-<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.706">getConfiguration</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.625">getConfiguration</a>()</pre>
 </li>
 </ul>
 <a name="abort-java.lang.String-java.lang.Throwable-">
@@ -1142,7 +1041,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockList">
 <li class="blockList">
 <h4>abort</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.711">abort</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.630">abort</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;e)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Abortable.html#abort-java.lang.String-java.lang.Throwable-">Abortable</a></code></span></div>
 <div class="block">Abort the server or client.</div>
@@ -1161,7 +1060,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isAborted</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.717">isAborted</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.636">isAborted</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Abortable.html#isAborted--">Abortable</a></code></span></div>
 <div class="block">Check if the server or client was aborted.</div>
 <dl>
@@ -1201,7 +1100,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" target="_top">Frames</a></li>
@@ -1225,7 +1124,7 @@ implements org.apache.zookeeper.Watcher, <a href="../../../../../org/apache/hado
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
-<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
 <li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/org/apache/hadoop/hbase/zookeeper/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/zookeeper/package-tree.html b/devapidocs/org/apache/hadoop/hbase/zookeeper/package-tree.html
index 2105b62..7433bdc 100644
--- a/devapidocs/org/apache/hadoop/hbase/zookeeper/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/zookeeper/package-tree.html
@@ -147,7 +147,6 @@
 </li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">ZooKeeperMainServer</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">ZooKeeperWatcher</span></a> (implements org.apache.hadoop.hbase.<a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title="interface in org.apache.hadoop.hbase">Abortable</a>, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, org.apache.zookeeper.Watcher)</li>
-<li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">ZooKeeperWatcher.ZKDisconnectEventWatcher</span></a> (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>)</li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/overview-tree.html b/devapidocs/overview-tree.html
index 0043561..c6eac44 100644
--- a/devapidocs/overview-tree.html
+++ b/devapidocs/overview-tree.html
@@ -4150,7 +4150,6 @@
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ZooKeeperKeepAliveConnection.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">ZooKeeperKeepAliveConnection</span></a></li>
 </ul>
 </li>
-<li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">ZooKeeperWatcher.ZKDisconnectEventWatcher</span></a> (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>)</li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/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 7fe192c..2825f44 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 = "820ee91fe895a3dc6c21b141936fbcd6d0a6bb08";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "05f07f692bf572be0829904d2b4ab48bbd611dde";<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 = "Mon Aug 21 14:41:02 UTC 2017";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Tue Aug 22 14:40:54 UTC 2017";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://asf920.gq1.ygridcore.net/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span>  public static final String srcChecksum = "87a7180001d525d6176ca94b111a2098";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "41940f16510a36f92b367030aa94c952";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 

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

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


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

Branch: refs/heads/asf-site
Commit: b7626a4cc9269fcc500d40924970c876feebb0a0
Parents: 22df707
Author: jenkins <bu...@apache.org>
Authored: Tue Aug 22 15:06:41 2017 +0000
Committer: jenkins <bu...@apache.org>
Committed: Tue Aug 22 15:06:41 2017 +0000

----------------------------------------------------------------------
 acid-semantics.html                             |    4 +-
 apache_hbase_reference_guide.pdf                |    6 +-
 book.html                                       |    2 +-
 bulk-loads.html                                 |    4 +-
 checkstyle-aggregate.html                       |  138 +-
 coc.html                                        |    4 +-
 cygwin.html                                     |    4 +-
 dependencies.html                               |    4 +-
 dependency-convergence.html                     |    4 +-
 dependency-info.html                            |    4 +-
 dependency-management.html                      |    4 +-
 devapidocs/constant-values.html                 |    6 +-
 devapidocs/index-all.html                       |   18 -
 .../hadoop/hbase/backup/package-tree.html       |    4 +-
 .../hadoop/hbase/class-use/Abortable.html       |    9 -
 .../hbase/class-use/YouAreDeadException.html    |   31 +
 .../class-use/ZooKeeperConnectionException.html |    9 -
 .../hbase/classification/package-tree.html      |    6 +-
 .../hadoop/hbase/client/package-tree.html       |   26 +-
 .../hadoop/hbase/filter/package-tree.html       |   10 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |    6 +-
 .../apache/hadoop/hbase/ipc/package-tree.html   |    2 +-
 .../hadoop/hbase/mapreduce/package-tree.html    |    4 +-
 ...signmentManager.RegionInTransitionChore.html |    6 +-
 ...ssignmentManager.RegionInTransitionStat.html |   40 +-
 .../master/assignment/AssignmentManager.html    |  330 +-
 .../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   |   12 +-
 .../org/apache/hadoop/hbase/package-use.html    |    6 +
 .../hadoop/hbase/procedure2/package-tree.html   |    4 +-
 .../hadoop/hbase/quotas/package-tree.html       |    8 +-
 .../MetricsRegionServerSourceImpl.html          |   16 +-
 .../hadoop/hbase/regionserver/package-tree.html |   22 +-
 .../regionserver/querymatcher/package-tree.html |    2 +-
 .../hbase/regionserver/wal/package-tree.html    |    2 +-
 ...ryStream.WALEntryStreamRuntimeException.html |    6 +-
 .../regionserver/WALEntryStream.html            |   24 +-
 .../replication/regionserver/package-tree.html  |    2 +-
 .../hadoop/hbase/rest/model/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  |   10 +-
 ...oKeeperWatcher.ZKDisconnectEventWatcher.html |  285 --
 .../hbase/zookeeper/ZooKeeperWatcher.html       |  215 +-
 ...oKeeperWatcher.ZKDisconnectEventWatcher.html |  125 -
 .../hadoop/hbase/zookeeper/package-tree.html    |    1 -
 devapidocs/overview-tree.html                   |    1 -
 .../org/apache/hadoop/hbase/Version.html        |    6 +-
 ...signmentManager.RegionInTransitionChore.html | 3577 +++++++++---------
 ...ssignmentManager.RegionInTransitionStat.html | 3577 +++++++++---------
 .../master/assignment/AssignmentManager.html    | 3577 +++++++++---------
 .../HRegionServer.CompactionChecker.html        |    2 +-
 .../HRegionServer.MovedRegionInfo.html          |    2 +-
 .../HRegionServer.MovedRegionsCleaner.html      |    2 +-
 .../HRegionServer.PeriodicMemstoreFlusher.html  |    2 +-
 .../hbase/regionserver/HRegionServer.html       |    2 +-
 .../MetricsRegionServerSourceImpl.html          |  336 +-
 ...ryStream.WALEntryStreamRuntimeException.html |  370 +-
 .../regionserver/WALEntryStream.html            |  370 +-
 ...oKeeperWatcher.ZKDisconnectEventWatcher.html |  792 ----
 .../hbase/zookeeper/ZooKeeperWatcher.html       | 1279 +++----
 export_control.html                             |    4 +-
 hbase-annotations/checkstyle.html               |    4 +-
 hbase-annotations/dependencies.html             |    4 +-
 hbase-annotations/dependency-convergence.html   |    4 +-
 hbase-annotations/dependency-info.html          |    4 +-
 hbase-annotations/dependency-management.html    |    4 +-
 hbase-annotations/index.html                    |    4 +-
 hbase-annotations/integration.html              |    4 +-
 hbase-annotations/issue-tracking.html           |    4 +-
 hbase-annotations/license.html                  |    4 +-
 hbase-annotations/mail-lists.html               |    4 +-
 hbase-annotations/plugin-management.html        |    4 +-
 hbase-annotations/plugins.html                  |    4 +-
 hbase-annotations/project-info.html             |    4 +-
 hbase-annotations/project-reports.html          |    4 +-
 hbase-annotations/project-summary.html          |    4 +-
 hbase-annotations/source-repository.html        |    4 +-
 hbase-annotations/team-list.html                |    4 +-
 hbase-archetypes/dependencies.html              |    4 +-
 hbase-archetypes/dependency-convergence.html    |    4 +-
 hbase-archetypes/dependency-info.html           |    4 +-
 hbase-archetypes/dependency-management.html     |    4 +-
 .../hbase-archetype-builder/dependencies.html   |    4 +-
 .../dependency-convergence.html                 |    4 +-
 .../dependency-info.html                        |    4 +-
 .../dependency-management.html                  |    4 +-
 .../hbase-archetype-builder/index.html          |    4 +-
 .../hbase-archetype-builder/integration.html    |    4 +-
 .../hbase-archetype-builder/issue-tracking.html |    4 +-
 .../hbase-archetype-builder/license.html        |    4 +-
 .../hbase-archetype-builder/mail-lists.html     |    4 +-
 .../plugin-management.html                      |    4 +-
 .../hbase-archetype-builder/plugins.html        |    4 +-
 .../hbase-archetype-builder/project-info.html   |    4 +-
 .../project-summary.html                        |    4 +-
 .../source-repository.html                      |    4 +-
 .../hbase-archetype-builder/team-list.html      |    4 +-
 .../hbase-client-project/checkstyle.html        |    4 +-
 .../hbase-client-project/dependencies.html      |    4 +-
 .../dependency-convergence.html                 |    4 +-
 .../hbase-client-project/dependency-info.html   |    4 +-
 .../dependency-management.html                  |    4 +-
 .../hbase-client-project/index.html             |    4 +-
 .../hbase-client-project/integration.html       |    4 +-
 .../hbase-client-project/issue-tracking.html    |    4 +-
 .../hbase-client-project/license.html           |    4 +-
 .../hbase-client-project/mail-lists.html        |    4 +-
 .../hbase-client-project/plugin-management.html |    4 +-
 .../hbase-client-project/plugins.html           |    4 +-
 .../hbase-client-project/project-info.html      |    4 +-
 .../hbase-client-project/project-reports.html   |    4 +-
 .../hbase-client-project/project-summary.html   |    4 +-
 .../hbase-client-project/source-repository.html |    4 +-
 .../hbase-client-project/team-list.html         |    4 +-
 .../hbase-shaded-client-project/checkstyle.html |    4 +-
 .../dependencies.html                           |    4 +-
 .../dependency-convergence.html                 |    4 +-
 .../dependency-info.html                        |    4 +-
 .../dependency-management.html                  |    4 +-
 .../hbase-shaded-client-project/index.html      |    4 +-
 .../integration.html                            |    4 +-
 .../issue-tracking.html                         |    4 +-
 .../hbase-shaded-client-project/license.html    |    4 +-
 .../hbase-shaded-client-project/mail-lists.html |    4 +-
 .../plugin-management.html                      |    4 +-
 .../hbase-shaded-client-project/plugins.html    |    4 +-
 .../project-info.html                           |    4 +-
 .../project-reports.html                        |    4 +-
 .../project-summary.html                        |    4 +-
 .../source-repository.html                      |    4 +-
 .../hbase-shaded-client-project/team-list.html  |    4 +-
 hbase-archetypes/index.html                     |    4 +-
 hbase-archetypes/integration.html               |    4 +-
 hbase-archetypes/issue-tracking.html            |    4 +-
 hbase-archetypes/license.html                   |    4 +-
 hbase-archetypes/mail-lists.html                |    4 +-
 hbase-archetypes/plugin-management.html         |    4 +-
 hbase-archetypes/plugins.html                   |    4 +-
 hbase-archetypes/project-info.html              |    4 +-
 hbase-archetypes/project-summary.html           |    4 +-
 hbase-archetypes/source-repository.html         |    4 +-
 hbase-archetypes/team-list.html                 |    4 +-
 hbase-spark/checkstyle.html                     |    4 +-
 hbase-spark/dependencies.html                   |    4 +-
 hbase-spark/dependency-convergence.html         |    4 +-
 hbase-spark/dependency-info.html                |    4 +-
 hbase-spark/dependency-management.html          |    4 +-
 hbase-spark/index.html                          |    4 +-
 hbase-spark/integration.html                    |    4 +-
 hbase-spark/issue-tracking.html                 |    4 +-
 hbase-spark/license.html                        |  208 +-
 hbase-spark/mail-lists.html                     |    4 +-
 hbase-spark/plugin-management.html              |    4 +-
 hbase-spark/plugins.html                        |    4 +-
 hbase-spark/project-info.html                   |    4 +-
 hbase-spark/project-reports.html                |    4 +-
 hbase-spark/project-summary.html                |    4 +-
 hbase-spark/source-repository.html              |    4 +-
 hbase-spark/team-list.html                      |    4 +-
 index.html                                      |    4 +-
 integration.html                                |    4 +-
 issue-tracking.html                             |    4 +-
 license.html                                    |  208 +-
 mail-lists.html                                 |    4 +-
 metrics.html                                    |    4 +-
 old_news.html                                   |    4 +-
 plugin-management.html                          |    4 +-
 plugins.html                                    |    4 +-
 poweredbyhbase.html                             |    4 +-
 project-info.html                               |    4 +-
 project-reports.html                            |    4 +-
 project-summary.html                            |    4 +-
 pseudo-distributed.html                         |    4 +-
 replication.html                                |    4 +-
 resources.html                                  |    4 +-
 source-repository.html                          |    4 +-
 sponsors.html                                   |    4 +-
 supportingprojects.html                         |    4 +-
 team-list.html                                  |    4 +-
 testdevapidocs/allclasses-frame.html            |    1 +
 testdevapidocs/allclasses-noframe.html          |    1 +
 testdevapidocs/constant-values.html             |   19 +
 testdevapidocs/index-all.html                   |   52 +-
 .../hbase/chaos/util/ChaosMonkeyRunner.html     |   56 +-
 .../hbase/class-use/HBaseTestingUtility.html    |    4 +
 .../hbase/class-use/MiniHBaseCluster.html       |   30 +-
 .../hbase/client/TestClientClusterStatus.html   |    6 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |    2 +-
 ...MockMasterServices.MockRegionStateStore.html |   10 +-
 .../master/assignment/MockMasterServices.html   |   64 +-
 .../master/assignment/TestRegionStates.html     |    4 +-
 .../assignment/TestRogueRSAssignment.html       |  573 +++
 .../TestSplitTableRegionProcedure.html          |    4 +-
 .../class-use/TestRogueRSAssignment.html        |  125 +
 .../hbase/master/assignment/package-frame.html  |    1 +
 .../master/assignment/package-summary.html      |    6 +
 .../hbase/master/assignment/package-tree.html   |    1 +
 .../org/apache/hadoop/hbase/package-tree.html   |   10 +-
 .../org/apache/hadoop/hbase/package-use.html    |    5 +
 .../hadoop/hbase/procedure2/package-tree.html   |    2 +-
 ...stRegionServerReadRequestMetrics.Metric.html |   14 +-
 .../TestRegionServerReadRequestMetrics.html     |   22 +-
 .../hadoop/hbase/regionserver/package-tree.html |    4 +-
 .../apache/hadoop/hbase/test/package-tree.html  |    2 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |    2 +-
 .../hbase/zookeeper/TestZooKeeperWatcher.html   |   74 +-
 testdevapidocs/overview-tree.html               |    1 +
 .../hbase/chaos/util/ChaosMonkeyRunner.html     |  236 +-
 .../hbase/client/TestClientClusterStatus.html   |  134 +-
 ...MockMasterServices.MockRegionStateStore.html |  555 +--
 .../master/assignment/MockMasterServices.html   |  555 +--
 .../assignment/TestRogueRSAssignment.html       |  264 ++
 ...stRegionServerReadRequestMetrics.Metric.html |  612 +--
 .../TestRegionServerReadRequestMetrics.html     |  612 +--
 .../hbase/zookeeper/TestZooKeeperWatcher.html   |  115 +-
 218 files changed, 10030 insertions(+), 10366 deletions(-)
----------------------------------------------------------------------


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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 84fd4b0..e6cb780 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:20170821144558+00'00')
-/CreationDate (D:20170821144558+00'00')
+/ModDate (D:20170822144551+00'00')
+/CreationDate (D:20170822144551+00'00')
 >>
 endobj
 2 0 obj
@@ -27334,7 +27334,7 @@ endobj
 endobj
 136 0 obj
 << /Limits [(__anchor-top) (adding.new.node)]
-/Names [(__anchor-top) 25 0 R (__indexterm-6961680) 3263 0 R (__indexterm-6963930) 3265 0 R (__indexterm-6965992) 3266 0 R (__indexterm-6967866) 3267 0 R (acid) 891 0 R (add-metric-name-and-function-to-hadoop-compat-interface) 3362 0 R (add-the-implementation-to-both-hadoop-1-and-hadoop-2-compat-modules) 3363 0 R (add.metrics) 3360 0 R (adding-a-new-chapter-to-the-hbase-reference-guide) 3601 0 R (adding.new.node) 2860 0 R]
+/Names [(__anchor-top) 25 0 R (__indexterm-6961678) 3263 0 R (__indexterm-6963928) 3265 0 R (__indexterm-6965990) 3266 0 R (__indexterm-6967864) 3267 0 R (acid) 891 0 R (add-metric-name-and-function-to-hadoop-compat-interface) 3362 0 R (add-the-implementation-to-both-hadoop-1-and-hadoop-2-compat-modules) 3363 0 R (add.metrics) 3360 0 R (adding-a-new-chapter-to-the-hbase-reference-guide) 3601 0 R (adding.new.node) 2860 0 R]
 >>
 endobj
 137 0 obj

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index 9dd278d..a8ed76f 100644
--- a/book.html
+++ b/book.html
@@ -35069,7 +35069,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 2017-08-21 14:29:37 UTC
+Last updated 2017-08-22 14:29:49 UTC
 </div>
 </div>
 </body>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 7faf2d0..e935d7a 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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <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" />
@@ -7111,12 +7111,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>769</td>
+<td>764</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>3232</td>
+<td>3237</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td>misc</td>
@@ -13017,7 +13017,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 43 has parse error. Missed HTML close tag 'TableName'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>179</td></tr>
 <tr class="a">
@@ -16884,7 +16884,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 64 has parse error. Missed HTML close tag 'code'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>2118</td></tr>
 <tr class="b">
@@ -22467,7 +22467,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">
@@ -45488,199 +45488,199 @@
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.favored.FavoredNodesManager' import.</td>
-<td>53</td></tr>
+<td>54</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.shaded.com.google.common.annotations.VisibleForTesting' import.</td>
-<td>90</td></tr>
+<td>91</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - org.apache.hadoop.hbase.shaded.com.google.common.collect.Lists.</td>
-<td>91</td></tr>
+<td>92</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
-<td>573</td></tr>
+<td>574</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>581</td></tr>
+<td>582</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>582</td></tr>
+<td>583</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>605</td></tr>
+<td>606</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>619</td></tr>
+<td>620</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>622</td></tr>
+<td>623</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>624</td></tr>
+<td>625</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>MissingSwitchDefault</td>
 <td>switch without &quot;default&quot; clause.</td>
-<td>745</td></tr>
+<td>746</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>779</td></tr>
+<td>780</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>822</td></tr>
+<td>823</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 107).</td>
-<td>860</td></tr>
+<td>861</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>899</td></tr>
+<td>900</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>966</td></tr>
+<td>968</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>1101</td></tr>
+<td>1104</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1103</td></tr>
+<td>1106</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>1320</td></tr>
+<td>1323</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>1338</td></tr>
+<td>1341</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>1340</td></tr>
+<td>1343</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1343</td></tr>
+<td>1346</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>1348</td></tr>
+<td>1351</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>1356</td></tr>
+<td>1359</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>1361</td></tr>
+<td>1364</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1366</td></tr>
+<td>1369</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'else' construct must use '{}'s.</td>
-<td>1367</td></tr>
+<td>1370</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>EmptyBlock</td>
 <td>Must have at least one statement.</td>
-<td>1448</td></tr>
+<td>1451</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 101).</td>
-<td>1475</td></tr>
+<td>1478</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1631</td></tr>
+<td>1634</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>1758</td></tr>
+<td>1761</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'lambda arguments' have incorrect indentation level 8, expected level should be 6.</td>
-<td>1803</td></tr>
+<td>1806</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>1820</td></tr></table></div>
+<td>1823</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.assignment.GCMergedRegionsProcedure.java">org/apache/hadoop/hbase/master/assignment/GCMergedRegionsProcedure.java</h3>
 <table border="0" class="table table-striped">
@@ -52782,7 +52782,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>28</td></tr>
 <tr class="a">
@@ -55719,7 +55719,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 0 has parse error. Unrecognized error from ANTLR parser: null</td>
 <td>73</td></tr>
 <tr class="b">
@@ -61282,7 +61282,7 @@
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
-<td>Method length is 200 lines (max allowed is 150).</td>
+<td>Method length is 198 lines (max allowed is 150).</td>
 <td>330</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
@@ -70394,13 +70394,13 @@
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>302</td></tr>
+<td>304</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>345</td></tr></table></div>
+<td>347</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.rest.Constants.java">org/apache/hadoop/hbase/rest/Constants.java</h3>
 <table border="0" class="table table-striped">
@@ -95717,145 +95717,145 @@
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - org.apache.hadoop.hbase.HConstants.</td>
-<td>40</td></tr>
+<td>37</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - org.apache.hadoop.hbase.HRegionInfo.</td>
-<td>41</td></tr>
+<td>38</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'znodePaths' must be private and have accessor methods.</td>
-<td>87</td></tr>
+<td>83</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'saslLatch' must be private and have accessor methods.</td>
-<td>94</td></tr>
+<td>90</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>113</td></tr>
+<td>102</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>114</td></tr>
+<td>103</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>115</td></tr>
+<td>104</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>124</td></tr>
+<td>113</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>129</td></tr>
+<td>118</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>130</td></tr>
+<td>119</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>131</td></tr>
+<td>120</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>255</td></tr>
+<td>219</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>272</td></tr>
+<td>236</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>399</td></tr>
+<td>363</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>408</td></tr>
+<td>372</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>416</td></tr>
+<td>380</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>424</td></tr>
+<td>388</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>433</td></tr>
+<td>397</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>MissingSwitchDefault</td>
 <td>switch without &quot;default&quot; clause.</td>
-<td>506</td></tr>
+<td>470</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>556</td></tr>
+<td>520</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>656</td></tr>
+<td>579</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>657</td></tr>
+<td>580</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>712</td></tr>
+<td>631</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'else' construct must use '{}'s.</td>
-<td>713</td></tr></table></div>
+<td>632</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.metrics2.MetricHistogram.java">org/apache/hadoop/metrics2/MetricHistogram.java</h3>
 <table border="0" class="table table-striped">
@@ -96117,7 +96117,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index 095053a..d6fe9bc 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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <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" />
@@ -527,7 +527,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 84b908a..2b40cad 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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <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" />
@@ -741,7 +741,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index 5b73e66..883432f 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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <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" />
@@ -906,7 +906,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index f7c533a..609507b 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3836,21 +3836,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Mon Aug 21 14:41:02 UTC 2017"</code></td>
+<td class="colLast"><code>"Tue Aug 22 14:40:54 UTC 2017"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#revision">revision</a></code></td>
-<td class="colLast"><code>"820ee91fe895a3dc6c21b141936fbcd6d0a6bb08"</code></td>
+<td class="colLast"><code>"05f07f692bf572be0829904d2b4ab48bbd611dde"</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.srcChecksum">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#srcChecksum">srcChecksum</a></code></td>
-<td class="colLast"><code>"87a7180001d525d6176ca94b111a2098"</code></td>
+<td class="colLast"><code>"41940f16510a36f92b367030aa94c952"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index 4cc436b..8111757 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -16059,8 +16059,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/ClusterStatusPublisher.html#connected">connected</a></span> - Variable in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/ClusterStatusPublisher.html" title="class in org.apache.hadoop.hbase.master">ClusterStatusPublisher</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#connected">connected</a></span> - Variable in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/BackupHFileCleaner.html#connection">connection</a></span> - Variable in class org.apache.hadoop.hbase.backup.<a href="org/apache/hadoop/hbase/backup/BackupHFileCleaner.html" title="class in org.apache.hadoop.hbase.backup">BackupHFileCleaner</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/example/ZKTableArchiveClient.html#connection">connection</a></span> - Variable in class org.apache.hadoop.hbase.backup.example.<a href="org/apache/hadoop/hbase/backup/example/ZKTableArchiveClient.html" title="class in org.apache.hadoop.hbase.backup.example">ZKTableArchiveClient</a></dt>
@@ -16294,8 +16292,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/HBaseInterClusterReplicationEndpoint.html#connectToPeers--">connectToPeers()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/HBaseInterClusterReplicationEndpoint.html" title="class in org.apache.hadoop.hbase.replication.regionserver">HBaseInterClusterReplicationEndpoint</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#connWaitTimeOut">connWaitTimeOut</a></span> - Variable in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#consecutiveLogRolls">consecutiveLogRolls</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/FSHLog.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSHLog</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a> - Enum in <a href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
@@ -31067,8 +31063,6 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/UnassignProcedure.html#force">force</a></span> - Variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/UnassignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">UnassignProcedure</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#forceAbortOnZKDisconnect">forceAbortOnZKDisconnect</a></span> - Variable in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#forceEvict-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">forceEvict(BlockCacheKey)</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/HBaseFsck.html#forceExclusive">forceExclusive</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/HBaseFsck.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck</a></dt>
@@ -92909,8 +92903,6 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZkAclReset.html#run-java.lang.String:A-">run(String[])</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZkAclReset.html" title="class in org.apache.hadoop.hbase.zookeeper">ZkAclReset</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html#run--">run()</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher.ZKDisconnectEventWatcher</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/metrics2/impl/JmxCacheBuster.JmxCacheBusterRunnable.html#run--">run()</a></span> - Method in class org.apache.hadoop.metrics2.impl.<a href="org/apache/hadoop/metrics2/impl/JmxCacheBuster.JmxCacheBusterRunnable.html" title="class in org.apache.hadoop.metrics2.impl">JmxCacheBuster.JmxCacheBusterRunnable</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.html#RUN_MAX_STEPS_KEY">RUN_MAX_STEPS_KEY</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>
@@ -118074,12 +118066,8 @@ the order they are declared.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ZKDataMigrator.html#ZKDataMigrator--">ZKDataMigrator()</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ZKDataMigrator.html" title="class in org.apache.hadoop.hbase.util">ZKDataMigrator</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html#ZKDisconnectEventWatcher--">ZKDisconnectEventWatcher()</a></span> - Constructor for class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher.ZKDisconnectEventWatcher</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKUtil.html#zkDumpConnectionTimeOut">zkDumpConnectionTimeOut</a></span> - Static variable in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKUtil.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKUtil</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#zkEventWatcherExecService">zkEventWatcherExecService</a></span> - Variable in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/example/ZooKeeperScanPolicyObserver.html#zkkey">zkkey</a></span> - Static variable in class org.apache.hadoop.hbase.coprocessor.example.<a href="org/apache/hadoop/hbase/coprocessor/example/ZooKeeperScanPolicyObserver.html" title="class in org.apache.hadoop.hbase.coprocessor.example">ZooKeeperScanPolicyObserver</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/token/AuthenticationTokenSecretManager.LeaderElector.html#zkLeader">zkLeader</a></span> - Variable in class org.apache.hadoop.hbase.security.token.<a href="org/apache/hadoop/hbase/security/token/AuthenticationTokenSecretManager.LeaderElector.html" title="class in org.apache.hadoop.hbase.security.token">AuthenticationTokenSecretManager.LeaderElector</a></dt>
@@ -118454,12 +118442,6 @@ the order they are declared.</div>
 <dd>
 <div class="block">Instantiate a ZooKeeper connection and watcher.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#ZooKeeperWatcher-org.apache.hadoop.conf.Configuration-java.lang.String-org.apache.hadoop.hbase.Abortable-boolean-boolean-">ZooKeeperWatcher(Configuration, String, Abortable, boolean, boolean)</a></span> - Constructor for class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a></dt>
-<dd>
-<div class="block">Instantiate a ZooKeeper connection and watcher.</div>
-</dd>
-<dt><a href="org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">ZooKeeperWatcher.ZKDisconnectEventWatcher</span></a> - Class in <a href="org/apache/hadoop/hbase/zookeeper/package-summary.html">org.apache.hadoop.hbase.zookeeper</a></dt>
-<dd>&nbsp;</dd>
 </dl>
 <a name="I:Z:Z_">
 <!--   -->

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/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 f89a768..e7821df 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="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/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/b7626a4c/devapidocs/org/apache/hadoop/hbase/class-use/Abortable.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/Abortable.html b/devapidocs/org/apache/hadoop/hbase/class-use/Abortable.html
index c9d1e70..dc2069a 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/Abortable.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/Abortable.html
@@ -1128,15 +1128,6 @@
 <div class="block">Instantiate a ZooKeeper connection and watcher.</div>
 </td>
 </tr>
-<tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#ZooKeeperWatcher-org.apache.hadoop.conf.Configuration-java.lang.String-org.apache.hadoop.hbase.Abortable-boolean-boolean-">ZooKeeperWatcher</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
-                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
-                <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title="interface in org.apache.hadoop.hbase">Abortable</a>&nbsp;abortable,
-                boolean&nbsp;canCreateBaseZNode,
-                boolean&nbsp;forceAbortOnZKDisconnect)</code>
-<div class="block">Instantiate a ZooKeeper connection and watcher.</div>
-</td>
-</tr>
 </tbody>
 </table>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/org/apache/hadoop/hbase/class-use/YouAreDeadException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/YouAreDeadException.html b/devapidocs/org/apache/hadoop/hbase/class-use/YouAreDeadException.html
index 39b0a96..b65e8db 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/YouAreDeadException.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/YouAreDeadException.html
@@ -86,6 +86,10 @@
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.master">org.apache.hadoop.hbase.master</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.master.assignment">org.apache.hadoop.hbase.master.assignment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
 </tbody>
 </table>
 </li>
@@ -117,6 +121,33 @@
 </tbody>
 </table>
 </li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.master.assignment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/hadoop/hbase/YouAreDeadException.html" title="class in org.apache.hadoop.hbase">YouAreDeadException</a> in <a href="../../../../../org/apache/hadoop/hbase/master/assignment/package-summary.html">org.apache.hadoop.hbase.master.assignment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/hadoop/hbase/master/assignment/package-summary.html">org.apache.hadoop.hbase.master.assignment</a> that throw <a href="../../../../../org/apache/hadoop/hbase/YouAreDeadException.html" title="class in org.apache.hadoop.hbase">YouAreDeadException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) void</code></td>
+<td class="colLast"><span class="typeNameLabel">AssignmentManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#checkOnlineRegionsReport-org.apache.hadoop.hbase.master.assignment.RegionStates.ServerStateNode-java.util.Set-">checkOnlineRegionsReport</a></span>(<a href="../../../../../org/apache/hadoop/hbase/master/assignment/RegionStates.ServerStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStates.ServerStateNode</a>&nbsp;serverNode,
+                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;&nbsp;regionNames)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">AssignmentManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#reportOnlineRegions-org.apache.hadoop.hbase.ServerName-int-java.util.Set-">reportOnlineRegions</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+                   int&nbsp;versionNumber,
+                   <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;&nbsp;regionNames)</code>
+<div class="block">the master will call this method when the RS send the regionServerReport().</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/org/apache/hadoop/hbase/class-use/ZooKeeperConnectionException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/ZooKeeperConnectionException.html b/devapidocs/org/apache/hadoop/hbase/class-use/ZooKeeperConnectionException.html
index a353b29..cefa1c3 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/ZooKeeperConnectionException.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/ZooKeeperConnectionException.html
@@ -287,15 +287,6 @@
 <div class="block">Instantiate a ZooKeeper connection and watcher.</div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#ZooKeeperWatcher-org.apache.hadoop.conf.Configuration-java.lang.String-org.apache.hadoop.hbase.Abortable-boolean-boolean-">ZooKeeperWatcher</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
-                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
-                <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title="interface in org.apache.hadoop.hbase">Abortable</a>&nbsp;abortable,
-                boolean&nbsp;canCreateBaseZNode,
-                boolean&nbsp;forceAbortOnZKDisconnect)</code>
-<div class="block">Instantiate a ZooKeeper connection and watcher.</div>
-</td>
-</tr>
 </tbody>
 </table>
 </li>

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/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 ff7cc7b..b29ee87 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -175,14 +175,14 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/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/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/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/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/b7626a4c/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 4ffb7a9..83556d9 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -273,12 +273,12 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/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/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
+<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/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
 </ul>
 </li>
 </ul>

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

[02/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html
index d0a132f..b449362 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html
@@ -97,312 +97,314 @@
 <span class="sourceLineNo">089</span>  @BeforeClass<a name="line.89"></a>
 <span class="sourceLineNo">090</span>  public static void setUpOnce() throws Exception {<a name="line.90"></a>
 <span class="sourceLineNo">091</span>    // Default starts one regionserver only.<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    TEST_UTIL.startMiniCluster();<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    admin = TEST_UTIL.getAdmin();<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    serverNames = admin.getClusterStatus().getServers();<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    table = createTable();<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    putData();<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    tableRegions = admin.getTableRegions(TABLE_NAME);<a name="line.97"></a>
-<span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span>    for (Metric metric : Metric.values()) {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      requestsMap.put(metric, 0L);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>      requestsMapPrev.put(metric, 0L);<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>  private static Table createTable() throws IOException {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    HTableDescriptor td = new HTableDescriptor(TABLE_NAME);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    HColumnDescriptor cd1 = new HColumnDescriptor(CF1);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    td.addFamily(cd1);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    HColumnDescriptor cd2 = new HColumnDescriptor(CF2);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    cd2.setTimeToLive(TTL);<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    td.addFamily(cd2);<a name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>    admin.createTable(td);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    return TEST_UTIL.getConnection().getTable(TABLE_NAME);<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 static void testReadRequests(long resultCount,<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    long expectedReadRequests, long expectedFilteredReadRequests)<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    throws IOException, InterruptedException {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    updateMetricsMap();<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    System.out.println("requestsMapPrev = " + requestsMapPrev);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    System.out.println("requestsMap = " + requestsMap);<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>    assertEquals(expectedReadRequests,<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      requestsMap.get(Metric.REGION_READ) - requestsMapPrev.get(Metric.REGION_READ));<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(TEST_UTIL.getConfiguration());<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    if (tablesOnMaster) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      // If NO tables on master, then the single regionserver in this test carries user-space<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      // tables and the meta table. The first time through, the read will be inflated by meta<a name="line.129"></a>
-<span class="sourceLineNo">130</span>      // lookups. We don't know which test will be first through since junit randomizes. This<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      // method is used by a bunch of tests. Just do this check if master is hosting (system)<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      // regions only.<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      assertEquals(expectedReadRequests,<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      requestsMap.get(Metric.SERVER_READ) - requestsMapPrev.get(Metric.SERVER_READ));<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    }<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    assertEquals(expectedFilteredReadRequests,<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      requestsMap.get(Metric.FILTERED_REGION_READ)<a name="line.137"></a>
-<span class="sourceLineNo">138</span>        - requestsMapPrev.get(Metric.FILTERED_REGION_READ));<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    assertEquals(expectedFilteredReadRequests,<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      requestsMap.get(Metric.FILTERED_SERVER_READ)<a name="line.140"></a>
-<span class="sourceLineNo">141</span>        - requestsMapPrev.get(Metric.FILTERED_SERVER_READ));<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    assertEquals(expectedReadRequests, resultCount);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  }<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>  private static void updateMetricsMap() throws IOException, InterruptedException {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    for (Metric metric : Metric.values()) {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      requestsMapPrev.put(metric, requestsMap.get(metric));<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>    ServerLoad serverLoad = null;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    RegionLoad regionLoadOuter = null;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    boolean metricsUpdated = false;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    for (int i = 0; i &lt; MAX_TRY; i++) {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      for (ServerName serverName : serverNames) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>        serverLoad = admin.getClusterStatus().getLoad(serverName);<a name="line.155"></a>
-<span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>        Map&lt;byte[], RegionLoad&gt; regionsLoad = serverLoad.getRegionsLoad();<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        for (HRegionInfo tableRegion : tableRegions) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>          RegionLoad regionLoad = regionsLoad.get(tableRegion.getRegionName());<a name="line.159"></a>
-<span class="sourceLineNo">160</span>          if (regionLoad != null) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>            regionLoadOuter = regionLoad;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>            for (Metric metric : Metric.values()) {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>              if (getReadRequest(serverLoad, regionLoad, metric) &gt; requestsMapPrev.get(metric)) {<a name="line.163"></a>
-<span class="sourceLineNo">164</span>                for (Metric metricInner : Metric.values()) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>                  requestsMap.put(metricInner, getReadRequest(serverLoad, regionLoad, metricInner));<a name="line.165"></a>
-<span class="sourceLineNo">166</span>                }<a name="line.166"></a>
-<span class="sourceLineNo">167</span>                metricsUpdated = true;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>                break;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>              }<a name="line.169"></a>
-<span class="sourceLineNo">170</span>            }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>          }<a name="line.171"></a>
-<span class="sourceLineNo">172</span>        }<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      }<a name="line.173"></a>
-<span class="sourceLineNo">174</span>      if (metricsUpdated) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>        break;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      }<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      Thread.sleep(SLEEP_MS);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    }<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    if (!metricsUpdated) {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      for (Metric metric : Metric.values()) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>        requestsMap.put(metric, getReadRequest(serverLoad, regionLoadOuter, metric));<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>  }<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private static long getReadRequest(ServerLoad serverLoad, RegionLoad regionLoad, Metric metric) {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    switch (metric) {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      case REGION_READ:<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        return regionLoad.getReadRequestsCount();<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      case SERVER_READ:<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        return serverLoad.getReadRequestsCount();<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      case FILTERED_REGION_READ:<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        return regionLoad.getFilteredReadRequestsCount();<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      case FILTERED_SERVER_READ:<a name="line.194"></a>
-<span class="sourceLineNo">195</span>        return serverLoad.getFilteredReadRequestsCount();<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      default:<a name="line.196"></a>
-<span class="sourceLineNo">197</span>        throw new IllegalStateException();<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    }<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  }<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private static void putData() throws IOException {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    Put put;<a name="line.202"></a>
-<span class="sourceLineNo">203</span><a name="line.203"></a>
-<span class="sourceLineNo">204</span>    put = new Put(ROW1);<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    put.addColumn(CF1, COL3, VAL3);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    table.put(put);<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    put = new Put(ROW2);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    put.addColumn(CF1, COL1, VAL2);  // put val2 instead of val1<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    table.put(put);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    put = new Put(ROW3);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    table.put(put);<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>  private static void putTTLExpiredData() throws IOException, InterruptedException {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    Put put;<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span>    put = new Put(ROW1);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    table.put(put);<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>    Thread.sleep(TTL * 1000);<a name="line.227"></a>
+<span class="sourceLineNo">092</span>    TEST_UTIL.getConfiguration().setBoolean(LoadBalancer.TABLES_ON_MASTER, true);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    TEST_UTIL.getConfiguration().setBoolean(LoadBalancer.SYSTEM_TABLES_ON_MASTER, true);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    TEST_UTIL.startMiniCluster();<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    admin = TEST_UTIL.getAdmin();<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    serverNames = admin.getClusterStatus().getServers();<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    table = createTable();<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    putData();<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    tableRegions = admin.getTableRegions(TABLE_NAME);<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>    for (Metric metric : Metric.values()) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>      requestsMap.put(metric, 0L);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      requestsMapPrev.put(metric, 0L);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    }<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>  private static Table createTable() throws IOException {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    HTableDescriptor td = new HTableDescriptor(TABLE_NAME);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    HColumnDescriptor cd1 = new HColumnDescriptor(CF1);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    td.addFamily(cd1);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    HColumnDescriptor cd2 = new HColumnDescriptor(CF2);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    cd2.setTimeToLive(TTL);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    td.addFamily(cd2);<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>    admin.createTable(td);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    return TEST_UTIL.getConnection().getTable(TABLE_NAME);<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>  private static void testReadRequests(long resultCount,<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    long expectedReadRequests, long expectedFilteredReadRequests)<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    throws IOException, InterruptedException {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    updateMetricsMap();<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    System.out.println("requestsMapPrev = " + requestsMapPrev);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    System.out.println("requestsMap = " + requestsMap);<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>    assertEquals(expectedReadRequests,<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      requestsMap.get(Metric.REGION_READ) - requestsMapPrev.get(Metric.REGION_READ));<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(TEST_UTIL.getConfiguration());<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    if (tablesOnMaster) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      // If NO tables on master, then the single regionserver in this test carries user-space<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      // tables and the meta table. The first time through, the read will be inflated by meta<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      // lookups. We don't know which test will be first through since junit randomizes. This<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      // method is used by a bunch of tests. Just do this check if master is hosting (system)<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      // regions only.<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      assertEquals(expectedReadRequests,<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      requestsMap.get(Metric.SERVER_READ) - requestsMapPrev.get(Metric.SERVER_READ));<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    }<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    assertEquals(expectedFilteredReadRequests,<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      requestsMap.get(Metric.FILTERED_REGION_READ)<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        - requestsMapPrev.get(Metric.FILTERED_REGION_READ));<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    assertEquals(expectedFilteredReadRequests,<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      requestsMap.get(Metric.FILTERED_SERVER_READ)<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        - requestsMapPrev.get(Metric.FILTERED_SERVER_READ));<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    assertEquals(expectedReadRequests, resultCount);<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>  private static void updateMetricsMap() throws IOException, InterruptedException {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    for (Metric metric : Metric.values()) {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      requestsMapPrev.put(metric, requestsMap.get(metric));<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>    ServerLoad serverLoad = null;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    RegionLoad regionLoadOuter = null;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    boolean metricsUpdated = false;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    for (int i = 0; i &lt; MAX_TRY; i++) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      for (ServerName serverName : serverNames) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        serverLoad = admin.getClusterStatus().getLoad(serverName);<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>        Map&lt;byte[], RegionLoad&gt; regionsLoad = serverLoad.getRegionsLoad();<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        for (HRegionInfo tableRegion : tableRegions) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>          RegionLoad regionLoad = regionsLoad.get(tableRegion.getRegionName());<a name="line.161"></a>
+<span class="sourceLineNo">162</span>          if (regionLoad != null) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>            regionLoadOuter = regionLoad;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>            for (Metric metric : Metric.values()) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>              if (getReadRequest(serverLoad, regionLoad, metric) &gt; requestsMapPrev.get(metric)) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                for (Metric metricInner : Metric.values()) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                  requestsMap.put(metricInner, getReadRequest(serverLoad, regionLoad, metricInner));<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                metricsUpdated = true;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                break;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>              }<a name="line.171"></a>
+<span class="sourceLineNo">172</span>            }<a name="line.172"></a>
+<span class="sourceLineNo">173</span>          }<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        }<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      }<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      if (metricsUpdated) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        break;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      }<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      Thread.sleep(SLEEP_MS);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    if (!metricsUpdated) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      for (Metric metric : Metric.values()) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        requestsMap.put(metric, getReadRequest(serverLoad, regionLoadOuter, metric));<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><a name="line.187"></a>
+<span class="sourceLineNo">188</span>  private static long getReadRequest(ServerLoad serverLoad, RegionLoad regionLoad, Metric metric) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    switch (metric) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      case REGION_READ:<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        return regionLoad.getReadRequestsCount();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      case SERVER_READ:<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        return serverLoad.getReadRequestsCount();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      case FILTERED_REGION_READ:<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        return regionLoad.getFilteredReadRequestsCount();<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      case FILTERED_SERVER_READ:<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        return serverLoad.getFilteredReadRequestsCount();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      default:<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        throw new IllegalStateException();<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    }<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  private static void putData() throws IOException {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    Put put;<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>    put = new Put(ROW1);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    put.addColumn(CF1, COL3, VAL3);<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    table.put(put);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    put = new Put(ROW2);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    put.addColumn(CF1, COL1, VAL2);  // put val2 instead of val1<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    table.put(put);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    put = new Put(ROW3);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    table.put(put);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>  }<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>  private static void putTTLExpiredData() throws IOException, InterruptedException {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    Put put;<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>    put = new Put(ROW1);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    table.put(put);<a name="line.227"></a>
 <span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span>    put = new Put(ROW2);<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    table.put(put);<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>    put = new Put(ROW3);<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    table.put(put);<a name="line.237"></a>
-<span class="sourceLineNo">238</span>  }<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>  @AfterClass<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  public static void tearDownOnce() throws Exception {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.242"></a>
-<span class="sourceLineNo">243</span>  }<a name="line.243"></a>
-<span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span>  @Test<a name="line.245"></a>
-<span class="sourceLineNo">246</span>  public void testReadRequestsCountNotFiltered() throws Exception {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    int resultCount;<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    Scan scan;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    Append append;<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    Put put;<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    Increment increment;<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    Get get;<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span>    // test for scan<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    scan = new Scan();<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      resultCount = 0;<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      for (Result ignore : scanner) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        resultCount++;<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      testReadRequests(resultCount, 3, 0);<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
-<span class="sourceLineNo">263</span><a name="line.263"></a>
-<span class="sourceLineNo">264</span>    // test for scan<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    scan = new Scan(ROW2, ROW3);<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      resultCount = 0;<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      for (Result ignore : scanner) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>        resultCount++;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      testReadRequests(resultCount, 1, 0);<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>    // test for get<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    get = new Get(ROW2);<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    Result result = table.get(get);<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    testReadRequests(resultCount, 1, 0);<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>    // test for increment<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    increment = new Increment(ROW1);<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    increment.addColumn(CF1, COL3, 1);<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    result = table.increment(increment);<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    testReadRequests(resultCount, 1, 0);<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>    // test for checkAndPut<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    put = new Put(ROW1);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    boolean checkAndPut =<a name="line.290"></a>
-<span class="sourceLineNo">291</span>      table.checkAndPut(ROW1, CF1, COL2, CompareFilter.CompareOp.EQUAL, VAL2, put);<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    resultCount = checkAndPut ? 1 : 0;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    testReadRequests(resultCount, 1, 0);<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>    // test for append<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    append = new Append(ROW1);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    append.addColumn(CF1, COL2, VAL2);<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    result = table.append(append);<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    testReadRequests(resultCount, 1, 0);<a name="line.300"></a>
-<span class="sourceLineNo">301</span><a name="line.301"></a>
-<span class="sourceLineNo">302</span>    // test for checkAndMutate<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    put = new Put(ROW1);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    RowMutations rm = new RowMutations(ROW1);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    rm.add(put);<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    boolean checkAndMutate =<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      table.checkAndMutate(ROW1, CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1, rm);<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    resultCount = checkAndMutate ? 1 : 0;<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    testReadRequests(resultCount, 1, 0);<a name="line.310"></a>
-<span class="sourceLineNo">311</span>  }<a name="line.311"></a>
-<span class="sourceLineNo">312</span><a name="line.312"></a>
-<span class="sourceLineNo">313</span>  @Test<a name="line.313"></a>
-<span class="sourceLineNo">314</span>  public void testReadRequestsCountWithFilter() throws Exception {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    int resultCount;<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    Scan scan;<a name="line.316"></a>
-<span class="sourceLineNo">317</span><a name="line.317"></a>
-<span class="sourceLineNo">318</span>    // test for scan<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    scan = new Scan();<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    scan.setFilter(new SingleColumnValueFilter(CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1));<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      resultCount = 0;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      for (Result ignore : scanner) {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>        resultCount++;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      }<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      testReadRequests(resultCount, 2, 1);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    }<a name="line.327"></a>
-<span class="sourceLineNo">328</span><a name="line.328"></a>
-<span class="sourceLineNo">329</span>    // test for scan<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    scan = new Scan();<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    scan.setFilter(new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(ROW1)));<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      resultCount = 0;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      for (Result ignore : scanner) {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        resultCount++;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      }<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      testReadRequests(resultCount, 1, 2);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    }<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    // test for scan<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    scan = new Scan(ROW2, ROW3);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    scan.setFilter(new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(ROW1)));<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      resultCount = 0;<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      for (Result ignore : scanner) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>        resultCount++;<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      }<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      testReadRequests(resultCount, 0, 1);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    }<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>    // fixme filtered get should not increase readRequestsCount<a name="line.351"></a>
-<span class="sourceLineNo">352</span>//    Get get = new Get(ROW2);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>//    get.setFilter(new SingleColumnValueFilter(CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1));<a name="line.353"></a>
-<span class="sourceLineNo">354</span>//    Result result = table.get(get);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>//    resultCount = result.isEmpty() ? 0 : 1;<a name="line.355"></a>
-<span class="sourceLineNo">356</span>//    testReadRequests(resultCount, 0, 1);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  }<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span>  @Test<a name="line.359"></a>
-<span class="sourceLineNo">360</span>  public void testReadRequestsCountWithDeletedRow() throws Exception {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    try {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      Delete delete = new Delete(ROW3);<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      table.delete(delete);<a name="line.363"></a>
-<span class="sourceLineNo">364</span><a name="line.364"></a>
-<span class="sourceLineNo">365</span>      Scan scan = new Scan();<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        int resultCount = 0;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>        for (Result ignore : scanner) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>          resultCount++;<a name="line.369"></a>
-<span class="sourceLineNo">370</span>        }<a name="line.370"></a>
-<span class="sourceLineNo">371</span>        testReadRequests(resultCount, 2, 1);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      }<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    } finally {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      Put put = new Put(ROW3);<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      put.addColumn(CF1, COL2, VAL2);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      table.put(put);<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    }<a name="line.378"></a>
-<span class="sourceLineNo">379</span>  }<a name="line.379"></a>
-<span class="sourceLineNo">380</span><a name="line.380"></a>
-<span class="sourceLineNo">381</span>  @Test<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  public void testReadRequestsCountWithTTLExpiration() throws Exception {<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    putTTLExpiredData();<a name="line.383"></a>
-<span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>    Scan scan = new Scan();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    scan.addFamily(CF2);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      int resultCount = 0;<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      for (Result ignore : scanner) {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        resultCount++;<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      }<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      testReadRequests(resultCount, 2, 1);<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>  }<a name="line.394"></a>
-<span class="sourceLineNo">395</span><a name="line.395"></a>
-<span class="sourceLineNo">396</span>  private enum Metric {REGION_READ, SERVER_READ, FILTERED_REGION_READ, FILTERED_SERVER_READ}<a name="line.396"></a>
-<span class="sourceLineNo">397</span>}<a name="line.397"></a>
+<span class="sourceLineNo">229</span>    Thread.sleep(TTL * 1000);<a name="line.229"></a>
+<span class="sourceLineNo">230</span><a name="line.230"></a>
+<span class="sourceLineNo">231</span>    put = new Put(ROW2);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    table.put(put);<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>    put = new Put(ROW3);<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    table.put(put);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>  }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>  @AfterClass<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  public static void tearDownOnce() throws Exception {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.244"></a>
+<span class="sourceLineNo">245</span>  }<a name="line.245"></a>
+<span class="sourceLineNo">246</span><a name="line.246"></a>
+<span class="sourceLineNo">247</span>  @Test<a name="line.247"></a>
+<span class="sourceLineNo">248</span>  public void testReadRequestsCountNotFiltered() throws Exception {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    int resultCount;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    Scan scan;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    Append append;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    Put put;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    Increment increment;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    Get get;<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>    // test for scan<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    scan = new Scan();<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      resultCount = 0;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      for (Result ignore : scanner) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>        resultCount++;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      testReadRequests(resultCount, 3, 0);<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>    // test for scan<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    scan = new Scan(ROW2, ROW3);<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      resultCount = 0;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      for (Result ignore : scanner) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        resultCount++;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      }<a name="line.272"></a>
+<span class="sourceLineNo">273</span>      testReadRequests(resultCount, 1, 0);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    }<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>    // test for get<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    get = new Get(ROW2);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    Result result = table.get(get);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    testReadRequests(resultCount, 1, 0);<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>    // test for increment<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    increment = new Increment(ROW1);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    increment.addColumn(CF1, COL3, 1);<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    result = table.increment(increment);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    testReadRequests(resultCount, 1, 0);<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>    // test for checkAndPut<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    put = new Put(ROW1);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    boolean checkAndPut =<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      table.checkAndPut(ROW1, CF1, COL2, CompareFilter.CompareOp.EQUAL, VAL2, put);<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    resultCount = checkAndPut ? 1 : 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    testReadRequests(resultCount, 1, 0);<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>    // test for append<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    append = new Append(ROW1);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    append.addColumn(CF1, COL2, VAL2);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    result = table.append(append);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    testReadRequests(resultCount, 1, 0);<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>    // test for checkAndMutate<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    put = new Put(ROW1);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    RowMutations rm = new RowMutations(ROW1);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    rm.add(put);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    boolean checkAndMutate =<a name="line.309"></a>
+<span class="sourceLineNo">310</span>      table.checkAndMutate(ROW1, CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1, rm);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    resultCount = checkAndMutate ? 1 : 0;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    testReadRequests(resultCount, 1, 0);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  }<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span>  @Test<a name="line.315"></a>
+<span class="sourceLineNo">316</span>  public void testReadRequestsCountWithFilter() throws Exception {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    int resultCount;<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    Scan scan;<a name="line.318"></a>
+<span class="sourceLineNo">319</span><a name="line.319"></a>
+<span class="sourceLineNo">320</span>    // test for scan<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    scan = new Scan();<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    scan.setFilter(new SingleColumnValueFilter(CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1));<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      resultCount = 0;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      for (Result ignore : scanner) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>        resultCount++;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      }<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      testReadRequests(resultCount, 2, 1);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>    // test for scan<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    scan = new Scan();<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    scan.setFilter(new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(ROW1)));<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      resultCount = 0;<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      for (Result ignore : scanner) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        resultCount++;<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      }<a name="line.338"></a>
+<span class="sourceLineNo">339</span>      testReadRequests(resultCount, 1, 2);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    }<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>    // test for scan<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    scan = new Scan(ROW2, ROW3);<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    scan.setFilter(new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(ROW1)));<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      resultCount = 0;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      for (Result ignore : scanner) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        resultCount++;<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      }<a name="line.349"></a>
+<span class="sourceLineNo">350</span>      testReadRequests(resultCount, 0, 1);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    }<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>    // fixme filtered get should not increase readRequestsCount<a name="line.353"></a>
+<span class="sourceLineNo">354</span>//    Get get = new Get(ROW2);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>//    get.setFilter(new SingleColumnValueFilter(CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1));<a name="line.355"></a>
+<span class="sourceLineNo">356</span>//    Result result = table.get(get);<a name="line.356"></a>
+<span class="sourceLineNo">357</span>//    resultCount = result.isEmpty() ? 0 : 1;<a name="line.357"></a>
+<span class="sourceLineNo">358</span>//    testReadRequests(resultCount, 0, 1);<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>  @Test<a name="line.361"></a>
+<span class="sourceLineNo">362</span>  public void testReadRequestsCountWithDeletedRow() throws Exception {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    try {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      Delete delete = new Delete(ROW3);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      table.delete(delete);<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>      Scan scan = new Scan();<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        int resultCount = 0;<a name="line.369"></a>
+<span class="sourceLineNo">370</span>        for (Result ignore : scanner) {<a name="line.370"></a>
+<span class="sourceLineNo">371</span>          resultCount++;<a name="line.371"></a>
+<span class="sourceLineNo">372</span>        }<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        testReadRequests(resultCount, 2, 1);<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    } finally {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      Put put = new Put(ROW3);<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      put.addColumn(CF1, COL2, VAL2);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      table.put(put);<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    }<a name="line.380"></a>
+<span class="sourceLineNo">381</span>  }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>  @Test<a name="line.383"></a>
+<span class="sourceLineNo">384</span>  public void testReadRequestsCountWithTTLExpiration() throws Exception {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    putTTLExpiredData();<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>    Scan scan = new Scan();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    scan.addFamily(CF2);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      int resultCount = 0;<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      for (Result ignore : scanner) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        resultCount++;<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      }<a name="line.393"></a>
+<span class="sourceLineNo">394</span>      testReadRequests(resultCount, 2, 1);<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    }<a name="line.395"></a>
+<span class="sourceLineNo">396</span>  }<a name="line.396"></a>
+<span class="sourceLineNo">397</span><a name="line.397"></a>
+<span class="sourceLineNo">398</span>  private enum Metric {REGION_READ, SERVER_READ, FILTERED_REGION_READ, FILTERED_SERVER_READ}<a name="line.398"></a>
+<span class="sourceLineNo">399</span>}<a name="line.399"></a>
 
 
 


[05/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html
index 91bba23..3af30ba 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html
@@ -597,7 +597,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createTable</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.client.Table&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.105">createTable</a>()
+<pre>private static&nbsp;org.apache.hadoop.hbase.client.Table&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.107">createTable</a>()
                                                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -611,7 +611,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReadRequests</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.117">testReadRequests</a>(long&nbsp;resultCount,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.119">testReadRequests</a>(long&nbsp;resultCount,
                                      long&nbsp;expectedReadRequests,
                                      long&nbsp;expectedFilteredReadRequests)
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
@@ -629,7 +629,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>updateMetricsMap</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.145">updateMetricsMap</a>()
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.147">updateMetricsMap</a>()
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>
@@ -645,7 +645,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadRequest</h4>
-<pre>private static&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.186">getReadRequest</a>(org.apache.hadoop.hbase.ServerLoad&nbsp;serverLoad,
+<pre>private static&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.188">getReadRequest</a>(org.apache.hadoop.hbase.ServerLoad&nbsp;serverLoad,
                                    org.apache.hadoop.hbase.RegionLoad&nbsp;regionLoad,
                                    <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a>&nbsp;metric)</pre>
 </li>
@@ -656,7 +656,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>putData</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.201">putData</a>()
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.203">putData</a>()
                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -670,7 +670,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>putTTLExpiredData</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.219">putTTLExpiredData</a>()
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.221">putTTLExpiredData</a>()
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>
@@ -686,7 +686,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDownOnce</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.241">tearDownOnce</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.243">tearDownOnce</a>()
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -700,7 +700,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReadRequestsCountNotFiltered</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.246">testReadRequestsCountNotFiltered</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.248">testReadRequestsCountNotFiltered</a>()
                                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -714,7 +714,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReadRequestsCountWithFilter</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.314">testReadRequestsCountWithFilter</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.316">testReadRequestsCountWithFilter</a>()
                                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -728,7 +728,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReadRequestsCountWithDeletedRow</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.360">testReadRequestsCountWithDeletedRow</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.362">testReadRequestsCountWithDeletedRow</a>()
                                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -742,7 +742,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>testReadRequestsCountWithTTLExpiration</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.382">testReadRequestsCountWithTTLExpiration</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.384">testReadRequestsCountWithTTLExpiration</a>()
                                             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/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 944d41f..7556c15 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -626,9 +626,9 @@
 <ul>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestCacheOnWriteInSchema.CacheOnWriteType</span></a></li>
-<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/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/b7626a4c/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 48d8abf..a5f4c09 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
@@ -248,10 +248,10 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/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>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Generator.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Generator.Counts</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Verify.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
 </ul>
 </li>
 </ul>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html b/testdevapidocs/org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html
index b95de2d..a38ac1c 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10};
+var methods = {"i0":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -75,13 +75,13 @@ var activeTableTab = "activeTableTab";
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
-<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
 <li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.detail">Method</a></li>
 </ul>
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html#line.40">TestZooKeeperWatcher</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html#line.33">TestZooKeeperWatcher</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -117,25 +117,6 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <div class="summary">
 <ul class="blockList">
 <li class="blockList">
-<!-- =========== FIELD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="field.summary">
-<!--   -->
-</a>
-<h3>Field Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
-<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Field and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>private static org.apache.commons.logging.Log</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html#LOG">LOG</a></span></code>&nbsp;</td>
-</tr>
-</table>
-</li>
-</ul>
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
 <ul class="blockList">
 <li class="blockList"><a name="constructor.summary">
@@ -167,10 +148,6 @@ extends <a href="http://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/zookeeper/TestZooKeeperWatcher.html#testConnectionEvent--">testConnectionEvent</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/zookeeper/TestZooKeeperWatcher.html#testIsClientReadable--">testIsClientReadable</a></span>()</code>&nbsp;</td>
 </tr>
 </table>
@@ -189,23 +166,6 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <div class="details">
 <ul class="blockList">
 <li class="blockList">
-<!-- ============ FIELD DETAIL =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="field.detail">
-<!--   -->
-</a>
-<h3>Field Detail</h3>
-<a name="LOG">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>LOG</h4>
-<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html#line.41">LOG</a></pre>
-</li>
-</ul>
-</li>
-</ul>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
 <ul class="blockList">
 <li class="blockList"><a name="constructor.detail">
@@ -218,7 +178,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestZooKeeperWatcher</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html#line.40">TestZooKeeperWatcher</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html#line.33">TestZooKeeperWatcher</a>()</pre>
 </li>
 </ul>
 </li>
@@ -232,10 +192,10 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <a name="testIsClientReadable--">
 <!--   -->
 </a>
-<ul class="blockList">
+<ul class="blockListLast">
 <li class="blockList">
 <h4>testIsClientReadable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html#line.44">testIsClientReadable</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html#line.36">testIsClientReadable</a>()
                           throws org.apache.hadoop.hbase.ZooKeeperConnectionException,
                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -245,22 +205,6 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </dl>
 </li>
 </ul>
-<a name="testConnectionEvent--">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>testConnectionEvent</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html#line.69">testConnectionEvent</a>()
-                         throws org.apache.hadoop.hbase.ZooKeeperConnectionException,
-                                <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code>org.apache.hadoop.hbase.ZooKeeperConnectionException</code></dd>
-<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
-</dl>
-</li>
-</ul>
 </li>
 </ul>
 </li>
@@ -315,13 +259,13 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
-<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
 <li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.detail">Method</a></li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/overview-tree.html b/testdevapidocs/overview-tree.html
index 3a462a4..51d9626 100644
--- a/testdevapidocs/overview-tree.html
+++ b/testdevapidocs/overview-tree.html
@@ -3151,6 +3151,7 @@
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestResultFromCoprocessor.MyObserver.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestResultFromCoprocessor.MyObserver</span></a> (implements org.apache.hadoop.hbase.coprocessor.RegionObserver)</li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestResultSizeEstimation.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestResultSizeEstimation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestReversibleScanners.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestReversibleScanners</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">TestRogueRSAssignment</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/TestRollingRestart.html" title="class in org.apache.hadoop.hbase.master"><span class="typeNameLink">TestRollingRestart</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TestRowCounter.html" title="class in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TestRowCounter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapred.<a href="org/apache/hadoop/hbase/mapred/TestRowCounter.html" title="class in org.apache.hadoop.hbase.mapred"><span class="typeNameLink">TestRowCounter</span></a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html
index 2d153d1..dba064b 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html
@@ -60,113 +60,135 @@
 <span class="sourceLineNo">052</span>  protected boolean noClusterCleanUp = false;<a name="line.52"></a>
 <span class="sourceLineNo">053</span>  private String tableName = "ChaosMonkeyRunner.tableName";<a name="line.53"></a>
 <span class="sourceLineNo">054</span>  private String familyName = "ChaosMonkeyRunner.familyName";<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>  @Override<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  public void addOptions() {<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    addOptWithArg("m", MONKEY_LONG_OPT, "Which chaos monkey to run");<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    addOptWithArg(CHAOS_MONKEY_PROPS, "The properties file for specifying chaos "<a name="line.59"></a>
-<span class="sourceLineNo">060</span>        + "monkey properties.");<a name="line.60"></a>
-<span class="sourceLineNo">061</span>    addOptWithArg(TABLE_NAME_OPT, "Table name in the test to run chaos monkey against");<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    addOptWithArg(FAMILY_NAME_OPT, "Family name in the test to run chaos monkey against");<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  }<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>  @Override<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  protected void processOptions(CommandLine cmd) {<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    if (cmd.hasOption(MONKEY_LONG_OPT)) {<a name="line.67"></a>
-<span class="sourceLineNo">068</span>      monkeyToUse = cmd.getOptionValue(MONKEY_LONG_OPT);<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    }<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    monkeyProps = new Properties();<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    if (cmd.hasOption(CHAOS_MONKEY_PROPS)) {<a name="line.71"></a>
-<span class="sourceLineNo">072</span>      String chaosMonkeyPropsFile = cmd.getOptionValue(CHAOS_MONKEY_PROPS);<a name="line.72"></a>
-<span class="sourceLineNo">073</span>      if (StringUtils.isNotEmpty(chaosMonkeyPropsFile)) {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>        try {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>          monkeyProps.load(this.getClass().getClassLoader()<a name="line.75"></a>
-<span class="sourceLineNo">076</span>              .getResourceAsStream(chaosMonkeyPropsFile));<a name="line.76"></a>
-<span class="sourceLineNo">077</span>        } catch (IOException e) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>          LOG.warn(e);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>          System.exit(EXIT_FAILURE);<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>    }<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    if (cmd.hasOption(TABLE_NAME_OPT)) {<a name="line.83"></a>
-<span class="sourceLineNo">084</span>      this.tableName = cmd.getOptionValue(TABLE_NAME_OPT);<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    }<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    if (cmd.hasOption(FAMILY_NAME_OPT)) {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>      this.familyName = cmd.getOptionValue(FAMILY_NAME_OPT);<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><a name="line.90"></a>
-<span class="sourceLineNo">091</span>  @Override<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  protected int doWork() throws Exception {<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    setUpCluster();<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    getAndStartMonkey();<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    while (true) {// loop here until got killed<a name="line.95"></a>
-<span class="sourceLineNo">096</span>      Thread.sleep(10000);<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>  public void setUpCluster() throws Exception {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    util = getTestingUtil(getConf());<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    boolean isDistributed = isDistributedCluster(getConf());<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    if (isDistributed) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      util.createDistributedHBaseCluster();<a name="line.104"></a>
-<span class="sourceLineNo">105</span>      util.checkNodeCount(1);// make sure there's at least 1 alive rs<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    } else {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      throw new RuntimeException("ChaosMonkeyRunner must run againt a distributed cluster,"<a name="line.107"></a>
-<span class="sourceLineNo">108</span>          + " please check and point to the right configuration dir");<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    }<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    this.setConf(util.getConfiguration());<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>  private boolean isDistributedCluster(Configuration conf) {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    return conf.getBoolean(HConstants.CLUSTER_DISTRIBUTED, 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>  public void getAndStartMonkey() throws Exception {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    util = getTestingUtil(getConf());<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    MonkeyFactory fact = MonkeyFactory.getFactory(monkeyToUse);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    if (fact == null) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>      fact = getDefaultMonkeyFactory();<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    monkey =<a name="line.123"></a>
-<span class="sourceLineNo">124</span>        fact.setUtil(util).setTableName(getTablename()).setProperties(monkeyProps)<a name="line.124"></a>
-<span class="sourceLineNo">125</span>            .setColumnFamilies(getColumnFamilies()).build();<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    monkey.start();<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>  protected IntegrationTestingUtility getTestingUtil(Configuration conf) {<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    if (this.util == null) {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      if (conf == null) {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>        this.util = new IntegrationTestingUtility();<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        this.setConf(util.getConfiguration());<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      } else {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>        this.util = new IntegrationTestingUtility(conf);<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>    return util;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  }<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span>  protected MonkeyFactory getDefaultMonkeyFactory() {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    // Run with slow deterministic monkey by default<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    return MonkeyFactory.getFactory(MonkeyFactory.SLOW_DETERMINISTIC);<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>  public TableName getTablename() {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    return TableName.valueOf(tableName);<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>  protected Set&lt;String&gt; getColumnFamilies() {<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    return Sets.newHashSet(familyName);<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>  public static void main(String[] args) throws Exception {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    Configuration conf = HBaseConfiguration.create();<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    IntegrationTestingUtility.setUseDistributedCluster(conf);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    int ret = ToolRunner.run(conf, new ChaosMonkeyRunner(), args);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    System.exit(ret);<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>}<a name="line.161"></a>
+<span class="sourceLineNo">055</span>  private volatile boolean stop = false;<a name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>  @Override<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  public void addOptions() {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    addOptWithArg("m", MONKEY_LONG_OPT, "Which chaos monkey to run");<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    addOptWithArg(CHAOS_MONKEY_PROPS, "The properties file for specifying chaos "<a name="line.60"></a>
+<span class="sourceLineNo">061</span>        + "monkey properties.");<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    addOptWithArg(TABLE_NAME_OPT, "Table name in the test to run chaos monkey against");<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    addOptWithArg(FAMILY_NAME_OPT, "Family name in the test to run chaos monkey against");<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>  @Override<a name="line.66"></a>
+<span class="sourceLineNo">067</span>  protected void processOptions(CommandLine cmd) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    if (cmd.hasOption(MONKEY_LONG_OPT)) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      monkeyToUse = cmd.getOptionValue(MONKEY_LONG_OPT);<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    }<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    monkeyProps = new Properties();<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    if (cmd.hasOption(CHAOS_MONKEY_PROPS)) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      String chaosMonkeyPropsFile = cmd.getOptionValue(CHAOS_MONKEY_PROPS);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>      if (StringUtils.isNotEmpty(chaosMonkeyPropsFile)) {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        try {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>          monkeyProps.load(this.getClass().getClassLoader()<a name="line.76"></a>
+<span class="sourceLineNo">077</span>              .getResourceAsStream(chaosMonkeyPropsFile));<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        } catch (IOException e) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>          LOG.warn(e);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>          System.exit(EXIT_FAILURE);<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>    }<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    if (cmd.hasOption(TABLE_NAME_OPT)) {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>      this.tableName = cmd.getOptionValue(TABLE_NAME_OPT);<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    }<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    if (cmd.hasOption(FAMILY_NAME_OPT)) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>      this.familyName = cmd.getOptionValue(FAMILY_NAME_OPT);<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><a name="line.91"></a>
+<span class="sourceLineNo">092</span>  @Override<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  protected int doWork() throws Exception {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    setUpCluster();<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    getAndStartMonkey();<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    while (!stop) {// loop here until got killed<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      Thread.sleep(10000);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    }<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    return 0;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  }<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>  public void stopRunner() {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    stop = true;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>  }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>  public void setUpCluster() throws Exception {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    util = getTestingUtil(getConf());<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    boolean isDistributed = isDistributedCluster(getConf());<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    if (isDistributed) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      util.createDistributedHBaseCluster();<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      util.checkNodeCount(1);// make sure there's at least 1 alive rs<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    } else {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      throw new RuntimeException("ChaosMonkeyRunner must run againt a distributed cluster,"<a name="line.113"></a>
+<span class="sourceLineNo">114</span>          + " please check and point to the right configuration dir");<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    }<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    this.setConf(util.getConfiguration());<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>  private boolean isDistributedCluster(Configuration conf) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    return conf.getBoolean(HConstants.CLUSTER_DISTRIBUTED, false);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>  }<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>  public void getAndStartMonkey() throws Exception {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    util = getTestingUtil(getConf());<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    MonkeyFactory fact = MonkeyFactory.getFactory(monkeyToUse);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    if (fact == null) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      fact = getDefaultMonkeyFactory();<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    monkey =<a name="line.129"></a>
+<span class="sourceLineNo">130</span>        fact.setUtil(util).setTableName(getTablename()).setProperties(monkeyProps)<a name="line.130"></a>
+<span class="sourceLineNo">131</span>            .setColumnFamilies(getColumnFamilies()).build();<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    monkey.start();<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>  protected IntegrationTestingUtility getTestingUtil(Configuration conf) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    if (this.util == null) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      if (conf == null) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        this.util = new IntegrationTestingUtility();<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        this.setConf(util.getConfiguration());<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      } else {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        this.util = new IntegrationTestingUtility(conf);<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>    return util;<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>  protected MonkeyFactory getDefaultMonkeyFactory() {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    // Run with slow deterministic monkey by default<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    return MonkeyFactory.getFactory(MonkeyFactory.SLOW_DETERMINISTIC);<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>  public TableName getTablename() {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    return TableName.valueOf(tableName);<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>  protected Set&lt;String&gt; getColumnFamilies() {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    return Sets.newHashSet(familyName);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>  }<a name="line.158"></a>
+<span class="sourceLineNo">159</span><a name="line.159"></a>
+<span class="sourceLineNo">160</span>  /*<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   * If caller wants to add config parameters contained in a file, the path of conf file<a name="line.161"></a>
+<span class="sourceLineNo">162</span>   * can be passed as the first two arguments like this:<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   *   -c &lt;path-to-conf&gt;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>   */<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  public static void main(String[] args) throws Exception {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    Configuration conf = HBaseConfiguration.create();<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    String[] actualArgs = args;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    if (args.length &gt; 0 &amp;&amp; "-c".equals(args[0])) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      int argCount = args.length - 2;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      if (argCount &lt; 0) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>        throw new IllegalArgumentException("Missing path for -c parameter");<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      }<a name="line.172"></a>
+<span class="sourceLineNo">173</span>      // load the resource specified by the second parameter<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      conf.addResource(args[1]);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      actualArgs = new String[argCount];<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      System.arraycopy(args, 2, actualArgs, 0, argCount);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    }<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    IntegrationTestingUtility.setUseDistributedCluster(conf);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    int ret = ToolRunner.run(conf, new ChaosMonkeyRunner(), actualArgs);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    System.exit(ret);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>  }<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>}<a name="line.183"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestClientClusterStatus.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestClientClusterStatus.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestClientClusterStatus.html
index b031108..a9e0d0b 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestClientClusterStatus.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestClientClusterStatus.html
@@ -73,7 +73,7 @@
 <span class="sourceLineNo">065</span>    RegionServerThread rst = rsts.get(rsts.size() - 1);<a name="line.65"></a>
 <span class="sourceLineNo">066</span>    DEAD = rst.getRegionServer();<a name="line.66"></a>
 <span class="sourceLineNo">067</span>    DEAD.stop("Test dead servers status");<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    while (!DEAD.isStopped()) {<a name="line.68"></a>
+<span class="sourceLineNo">068</span>    while (rst.isAlive()) {<a name="line.68"></a>
 <span class="sourceLineNo">069</span>      Thread.sleep(500);<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>
@@ -163,71 +163,73 @@
 <span class="sourceLineNo">155</span>    Assert.assertNotNull(status);<a name="line.155"></a>
 <span class="sourceLineNo">156</span>    Assert.assertNotNull(status.getServers());<a name="line.156"></a>
 <span class="sourceLineNo">157</span>    // exclude a dead region server<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    Assert.assertEquals(SLAVES, numRs);<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    // live servers = primary master + nums of regionservers<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    Assert.assertEquals(status.getServers().size() + 1 /*Master*/, numRs);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    Assert.assertTrue(status.getRegionsCount() &gt; 0);<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    Assert.assertNotNull(status.getDeadServerNames());<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    Assert.assertEquals(1, status.getDeadServersSize());<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    ServerName deadServerName = status.getDeadServerNames().iterator().next();<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    Assert.assertEquals(DEAD.getServerName(), deadServerName);<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>  @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public void testMasterAndBackupMastersStatus() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    // get all the master threads<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    List&lt;MasterThread&gt; masterThreads = CLUSTER.getMasterThreads();<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    int numActive = 0;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    int activeIndex = 0;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    ServerName activeName = null;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    HMaster active = null;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    for (int i = 0; i &lt; masterThreads.size(); i++) {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      if (masterThreads.get(i).getMaster().isActiveMaster()) {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>        numActive++;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>        activeIndex = i;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>        active = masterThreads.get(activeIndex).getMaster();<a name="line.180"></a>
-<span class="sourceLineNo">181</span>        activeName = active.getServerName();<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>    Assert.assertNotNull(active);<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    Assert.assertEquals(1, numActive);<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    Assert.assertEquals(MASTERS, masterThreads.size());<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    // Retrieve master and backup masters infos only.<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    ClusterStatus.Options options = Options.getDefaultOptions();<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    options.excludeHBaseVersion()<a name="line.189"></a>
-<span class="sourceLineNo">190</span>           .excludeBalancerOn()<a name="line.190"></a>
-<span class="sourceLineNo">191</span>           .excludeClusterId()<a name="line.191"></a>
-<span class="sourceLineNo">192</span>           .excludeLiveServers()<a name="line.192"></a>
-<span class="sourceLineNo">193</span>           .excludeDeadServers()<a name="line.193"></a>
-<span class="sourceLineNo">194</span>           .excludeMasterCoprocessors()<a name="line.194"></a>
-<span class="sourceLineNo">195</span>           .excludeRegionState();<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    ClusterStatus status = ADMIN.getClusterStatus(options);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    Assert.assertTrue(status.getMaster().equals(activeName));<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    Assert.assertEquals(MASTERS - 1, status.getBackupMastersSize());<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  }<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  @Test<a name="line.201"></a>
-<span class="sourceLineNo">202</span>  public void testOtherStatusInfos() throws Exception {<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    ClusterStatus.Options options = Options.getDefaultOptions();<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    options.excludeMaster()<a name="line.204"></a>
-<span class="sourceLineNo">205</span>           .excludeBackupMasters()<a name="line.205"></a>
-<span class="sourceLineNo">206</span>           .excludeRegionState()<a name="line.206"></a>
-<span class="sourceLineNo">207</span>           .excludeLiveServers()<a name="line.207"></a>
-<span class="sourceLineNo">208</span>           .excludeBackupMasters();<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    ClusterStatus status = ADMIN.getClusterStatus(options);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    Assert.assertTrue(status.getMasterCoprocessors().length == 0);<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    Assert.assertNotNull(status.getHBaseVersion());<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    Assert.assertNotNull(status.getClusterId());<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    Assert.assertTrue(status.getAverageLoad() == 0.0);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    Assert.assertNotNull(status.getBalancerOn() &amp;&amp; !status.getBalancerOn());<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>  @AfterClass<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  public static void tearDownAfterClass() throws Exception {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    if (ADMIN != null) ADMIN.close();<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    UTIL.shutdownMiniCluster();<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">158</span>    Assert.assertEquals(SLAVES -1, numRs);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    // live servers = nums of regionservers<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    // By default, HMaster don't carry any regions so it won't report its load.<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    // Hence, it won't be in the server list.<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    Assert.assertEquals(status.getServers().size(), numRs);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    Assert.assertTrue(status.getRegionsCount() &gt; 0);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    Assert.assertNotNull(status.getDeadServerNames());<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    Assert.assertEquals(1, status.getDeadServersSize());<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    ServerName deadServerName = status.getDeadServerNames().iterator().next();<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    Assert.assertEquals(DEAD.getServerName(), deadServerName);<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 testMasterAndBackupMastersStatus() throws Exception {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    // get all the master threads<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    List&lt;MasterThread&gt; masterThreads = CLUSTER.getMasterThreads();<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    int numActive = 0;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    int activeIndex = 0;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    ServerName activeName = null;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    HMaster active = null;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    for (int i = 0; i &lt; masterThreads.size(); i++) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      if (masterThreads.get(i).getMaster().isActiveMaster()) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        numActive++;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        activeIndex = i;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        active = masterThreads.get(activeIndex).getMaster();<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        activeName = active.getServerName();<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>    Assert.assertNotNull(active);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    Assert.assertEquals(1, numActive);<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    Assert.assertEquals(MASTERS, masterThreads.size());<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    // Retrieve master and backup masters infos only.<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    ClusterStatus.Options options = Options.getDefaultOptions();<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    options.excludeHBaseVersion()<a name="line.191"></a>
+<span class="sourceLineNo">192</span>           .excludeBalancerOn()<a name="line.192"></a>
+<span class="sourceLineNo">193</span>           .excludeClusterId()<a name="line.193"></a>
+<span class="sourceLineNo">194</span>           .excludeLiveServers()<a name="line.194"></a>
+<span class="sourceLineNo">195</span>           .excludeDeadServers()<a name="line.195"></a>
+<span class="sourceLineNo">196</span>           .excludeMasterCoprocessors()<a name="line.196"></a>
+<span class="sourceLineNo">197</span>           .excludeRegionState();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    ClusterStatus status = ADMIN.getClusterStatus(options);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    Assert.assertTrue(status.getMaster().equals(activeName));<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    Assert.assertEquals(MASTERS - 1, status.getBackupMastersSize());<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  public void testOtherStatusInfos() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    ClusterStatus.Options options = Options.getDefaultOptions();<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    options.excludeMaster()<a name="line.206"></a>
+<span class="sourceLineNo">207</span>           .excludeBackupMasters()<a name="line.207"></a>
+<span class="sourceLineNo">208</span>           .excludeRegionState()<a name="line.208"></a>
+<span class="sourceLineNo">209</span>           .excludeLiveServers()<a name="line.209"></a>
+<span class="sourceLineNo">210</span>           .excludeBackupMasters();<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    ClusterStatus status = ADMIN.getClusterStatus(options);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    Assert.assertTrue(status.getMasterCoprocessors().length == 0);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    Assert.assertNotNull(status.getHBaseVersion());<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    Assert.assertNotNull(status.getClusterId());<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    Assert.assertTrue(status.getAverageLoad() == 0.0);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    Assert.assertNotNull(status.getBalancerOn() &amp;&amp; !status.getBalancerOn());<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>  @AfterClass<a name="line.219"></a>
+<span class="sourceLineNo">220</span>  public static void tearDownAfterClass() throws Exception {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    if (ADMIN != null) ADMIN.close();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    UTIL.shutdownMiniCluster();<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>
 
 
 

[18/21] hbase-site git commit: Published site at .

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

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

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/org/apache/hadoop/hbase/package-use.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/package-use.html b/devapidocs/org/apache/hadoop/hbase/package-use.html
index 42a31e3..623ce50 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-use.html
@@ -2269,6 +2269,12 @@ service.</div>
 <div class="block">Immutable POJO class for representing a table name.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/hadoop/hbase/class-use/YouAreDeadException.html#org.apache.hadoop.hbase.master.assignment">YouAreDeadException</a>
+<div class="block">This exception is thrown by the master when a region server reports and is
+ already being processed as dead.</div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html
index 78ff5df..a8330b7 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html
@@ -1490,7 +1490,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>incInfoThresholdExceeded</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.533">incInfoThresholdExceeded</a>(int&nbsp;count)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.531">incInfoThresholdExceeded</a>(int&nbsp;count)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/metrics/JvmPauseMonitorSource.html#incInfoThresholdExceeded-int-">JvmPauseMonitorSource</a></code></span></div>
 <div class="block">Increment the INFO level threshold exceeded count</div>
 <dl>
@@ -1507,7 +1507,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>incWarnThresholdExceeded</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.538">incWarnThresholdExceeded</a>(int&nbsp;count)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.536">incWarnThresholdExceeded</a>(int&nbsp;count)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/metrics/JvmPauseMonitorSource.html#incWarnThresholdExceeded-int-">JvmPauseMonitorSource</a></code></span></div>
 <div class="block">Increment the WARN level threshold exceeded count</div>
 <dl>
@@ -1524,7 +1524,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updatePauseTimeWithGc</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.543">updatePauseTimeWithGc</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.541">updatePauseTimeWithGc</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/metrics/JvmPauseMonitorSource.html#updatePauseTimeWithGc-long-">JvmPauseMonitorSource</a></code></span></div>
 <div class="block">Update the pause time histogram where GC activity was detected.</div>
 <dl>
@@ -1541,7 +1541,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updatePauseTimeWithoutGc</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.548">updatePauseTimeWithoutGc</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.546">updatePauseTimeWithoutGc</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/metrics/JvmPauseMonitorSource.html#updatePauseTimeWithoutGc-long-">JvmPauseMonitorSource</a></code></span></div>
 <div class="block">Update the pause time histogram where GC activity was not detected.</div>
 <dl>
@@ -1558,7 +1558,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateDeleteBatch</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.553">updateDeleteBatch</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.551">updateDeleteBatch</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateDeleteBatch-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the Delete time histogram if a batch contains a delete op</div>
 <dl>
@@ -1575,7 +1575,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCheckAndDelete</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.558">updateCheckAndDelete</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.556">updateCheckAndDelete</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateCheckAndDelete-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update checkAndDelete histogram</div>
 <dl>
@@ -1592,7 +1592,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCheckAndPut</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.563">updateCheckAndPut</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.561">updateCheckAndPut</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateCheckAndPut-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update checkAndPut histogram</div>
 <dl>
@@ -1609,7 +1609,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockListLast">
 <li class="blockList">
 <h4>updatePutBatch</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.568">updatePutBatch</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#line.566">updatePutBatch</a>(long&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updatePutBatch-long-">MetricsRegionServerSource</a></code></span></div>
 <div class="block">Update the PutBatch time histogram if a batch contains a Put op</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/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 c6e17d3..45f9bf5 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -693,20 +693,20 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionOpeningState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">RegionOpeningState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/StoreScanner.StoreScannerCompactionRace.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">StoreScanner.StoreScannerCompactionRace</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactor.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactor.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.FlushResult.Result</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/MemStoreCompactor.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactor.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/RegionOpeningState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">RegionOpeningState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.StoreScannerCompactionRace.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">StoreScanner.StoreScannerCompactionRace</span></a></li>
 </ul>
 </li>
 </ul>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/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 33cb6b6..7cba16c 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
@@ -248,8 +248,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.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/b7626a4c/devapidocs/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.WALEntryStreamRuntimeException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.WALEntryStreamRuntimeException.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.WALEntryStreamRuntimeException.html
index a5cd2c8..76429dd 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.WALEntryStreamRuntimeException.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.WALEntryStreamRuntimeException.html
@@ -127,7 +127,7 @@
 <hr>
 <br>
 <pre><a href="../../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.411">WALEntryStream.WALEntryStreamRuntimeException</a>
+public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.413">WALEntryStream.WALEntryStreamRuntimeException</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang">RuntimeException</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -215,7 +215,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeExcep
 <ul class="blockListLast">
 <li class="blockList">
 <h4>serialVersionUID</h4>
-<pre>private static final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.WALEntryStreamRuntimeException.html#line.412">serialVersionUID</a></pre>
+<pre>private static final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.WALEntryStreamRuntimeException.html#line.414">serialVersionUID</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.replication.regionserver.WALEntryStream.WALEntryStreamRuntimeException.serialVersionUID">Constant Field Values</a></dd>
@@ -236,7 +236,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeExcep
 <ul class="blockListLast">
 <li class="blockList">
 <h4>WALEntryStreamRuntimeException</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.WALEntryStreamRuntimeException.html#line.414">WALEntryStreamRuntimeException</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;e)</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.WALEntryStreamRuntimeException.html#line.416">WALEntryStreamRuntimeException</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;e)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html
index fc02962..8faface 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html
@@ -712,7 +712,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.
 <ul class="blockList">
 <li class="blockList">
 <h4>dequeueCurrentLog</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.261">dequeueCurrentLog</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.263">dequeueCurrentLog</a>()
                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -726,7 +726,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.
 <ul class="blockList">
 <li class="blockList">
 <h4>readNextEntryAndSetPosition</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.271">readNextEntryAndSetPosition</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.273">readNextEntryAndSetPosition</a>()
                                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -740,7 +740,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.
 <ul class="blockList">
 <li class="blockList">
 <h4>closeReader</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.282">closeReader</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.284">closeReader</a>()
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -754,7 +754,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.
 <ul class="blockList">
 <li class="blockList">
 <h4>checkReader</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.290">checkReader</a>()
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.292">checkReader</a>()
                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -768,7 +768,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.
 <ul class="blockList">
 <li class="blockList">
 <h4>openNextLog</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.298">openNextLog</a>()
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.300">openNextLog</a>()
                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -782,7 +782,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.
 <ul class="blockList">
 <li class="blockList">
 <h4>getArchivedLog</h4>
-<pre>private&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.307">getArchivedLog</a>(org.apache.hadoop.fs.Path&nbsp;path)
+<pre>private&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.309">getArchivedLog</a>(org.apache.hadoop.fs.Path&nbsp;path)
                                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -796,7 +796,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.
 <ul class="blockList">
 <li class="blockList">
 <h4>handleFileNotFound</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.320">handleFileNotFound</a>(org.apache.hadoop.fs.Path&nbsp;path,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.322">handleFileNotFound</a>(org.apache.hadoop.fs.Path&nbsp;path,
                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io">FileNotFoundException</a>&nbsp;fnfe)
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -811,7 +811,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.
 <ul class="blockList">
 <li class="blockList">
 <h4>openReader</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.329">openReader</a>(org.apache.hadoop.fs.Path&nbsp;path)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.331">openReader</a>(org.apache.hadoop.fs.Path&nbsp;path)
                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -825,7 +825,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.
 <ul class="blockList">
 <li class="blockList">
 <h4>recoverLease</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.362">recoverLease</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.364">recoverLease</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                           org.apache.hadoop.fs.Path&nbsp;path)</pre>
 </li>
 </ul>
@@ -835,7 +835,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.
 <ul class="blockList">
 <li class="blockList">
 <h4>resetReader</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.378">resetReader</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.380">resetReader</a>()
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -849,7 +849,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.
 <ul class="blockList">
 <li class="blockList">
 <h4>seek</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.395">seek</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.397">seek</a>()
            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -863,7 +863,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>currentTrailerSize</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.401">currentTrailerSize</a>()</pre>
+<pre>private&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html#line.403">currentTrailerSize</a>()</pre>
 </li>
 </ul>
 </li>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html b/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
index dc2f127..91776e4 100644
--- a/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
@@ -110,8 +110,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.FilterType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.FilterType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType</span></a></li>
 </ul>
 </li>
 </ul>

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html b/devapidocs/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html
deleted file mode 100644
index a705818..0000000
--- a/devapidocs/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html
+++ /dev/null
@@ -1,285 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<!-- Generated by javadoc -->
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ZooKeeperWatcher.ZKDisconnectEventWatcher (Apache HBase 3.0.0-SNAPSHOT API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../../script.js"></script>
-</head>
-<body>
-<script type="text/javascript"><!--
-    try {
-        if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ZooKeeperWatcher.ZKDisconnectEventWatcher (Apache HBase 3.0.0-SNAPSHOT API)";
-        }
-    }
-    catch(err) {
-    }
-//-->
-var methods = {"i0":10};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
-var altColor = "altColor";
-var rowColor = "rowColor";
-var tableTab = "tableTab";
-var activeTableTab = "activeTableTab";
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/ZooKeeperWatcher.ZKDisconnectEventWatcher.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li>Next&nbsp;Class</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html" target="_top">Frames</a></li>
-<li><a href="ZooKeeperWatcher.ZKDisconnectEventWatcher.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_top");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.detail">Method</a></li>
-</ul>
-</div>
-<a name="skip.navbar.top">
-<!--   -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<!-- ======== START OF CLASS DATA ======== -->
-<div class="header">
-<div class="subTitle">org.apache.hadoop.hbase.zookeeper</div>
-<h2 title="Class ZooKeeperWatcher.ZKDisconnectEventWatcher" class="title">Class ZooKeeperWatcher.ZKDisconnectEventWatcher</h2>
-</div>
-<div class="contentContainer">
-<ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
-<li>
-<ul class="inheritance">
-<li>org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.ZKDisconnectEventWatcher</li>
-</ul>
-</li>
-</ul>
-<div class="description">
-<ul class="blockList">
-<li class="blockList">
-<dl>
-<dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></dd>
-</dl>
-<dl>
-<dt>Enclosing class:</dt>
-<dd><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a></dd>
-</dl>
-<hr>
-<br>
-<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html#line.603">ZooKeeperWatcher.ZKDisconnectEventWatcher</a>
-extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></pre>
-</li>
-</ul>
-</div>
-<div class="summary">
-<ul class="blockList">
-<li class="blockList">
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
-<!--   -->
-</a>
-<h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
-<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colOne" scope="col">Constructor and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html#ZKDisconnectEventWatcher--">ZKDisconnectEventWatcher</a></span>()</code>&nbsp;</td>
-</tr>
-</table>
-</li>
-</ul>
-<!-- ========== METHOD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.summary">
-<!--   -->
-</a>
-<h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tr id="i0" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html#run--">run</a></span>()</code>&nbsp;</td>
-</tr>
-</table>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
-<!--   -->
-</a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang
 /Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="details">
-<ul class="blockList">
-<li class="blockList">
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
-<!--   -->
-</a>
-<h3>Constructor Detail</h3>
-<a name="ZKDisconnectEventWatcher--">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>ZKDisconnectEventWatcher</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html#line.603">ZKDisconnectEventWatcher</a>()</pre>
-</li>
-</ul>
-</li>
-</ul>
-<!-- ============ METHOD DETAIL ========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.detail">
-<!--   -->
-</a>
-<h3>Method Detail</h3>
-<a name="run--">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html#line.605">run</a>()</pre>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
-</dl>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-<!-- ========= END OF CLASS DATA ========= -->
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/ZooKeeperWatcher.ZKDisconnectEventWatcher.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li>Next&nbsp;Class</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html" target="_top">Frames</a></li>
-<li><a href="ZooKeeperWatcher.ZKDisconnectEventWatcher.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_bottom");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.detail">Method</a></li>
-</ul>
-</div>
-<a name="skip.navbar.bottom">
-<!--   -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
-</body>
-</html>


[14/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html
index 883a87d..6eb57fa 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html
@@ -54,1801 +54,1804 @@
 <span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.RegionStateListener;<a name="line.46"></a>
 <span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.ServerName;<a name="line.47"></a>
 <span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.TableName;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.exceptions.UnexpectedStateException;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.master.balancer.FavoredStochasticBalancer;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.master.AssignmentListener;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.master.LoadBalancer;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.master.MetricsAssignmentManager;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.master.NoSuchProcedureException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.master.RegionPlan;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.master.RegionState;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.master.RegionState.State;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.master.ServerListener;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.master.TableStateManager;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.ServerState;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.ServerStateNode;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>// TODO: why are they here?<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.master.procedure.ProcedureSyncWait;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.master.procedure.ServerCrashProcedure;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.procedure2.ProcedureEvent;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.procedure2.ProcedureInMemoryChore;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.procedure2.util.StringUtils;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionRequest;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionResponse;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.util.VersionInfo;<a name="line.88"></a>
-<span class="sourceLineNo">089</span><a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.com.google.common.annotations.VisibleForTesting;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Lists;<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>/**<a name="line.93"></a>
-<span class="sourceLineNo">094</span> * The AssignmentManager is the coordinator for region assign/unassign operations.<a name="line.94"></a>
-<span class="sourceLineNo">095</span> * &lt;ul&gt;<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * &lt;li&gt;In-memory states of regions and servers are stored in {@link RegionStates}.&lt;/li&gt;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> * &lt;li&gt;hbase:meta state updates are handled by {@link RegionStateStore}.&lt;/li&gt;<a name="line.97"></a>
-<span class="sourceLineNo">098</span> * &lt;/ul&gt;<a name="line.98"></a>
-<span class="sourceLineNo">099</span> * Regions are created by CreateTable, Split, Merge.<a name="line.99"></a>
-<span class="sourceLineNo">100</span> * Regions are deleted by DeleteTable, Split, Merge.<a name="line.100"></a>
-<span class="sourceLineNo">101</span> * Assigns are triggered by CreateTable, EnableTable, Split, Merge, ServerCrash.<a name="line.101"></a>
-<span class="sourceLineNo">102</span> * Unassigns are triggered by DisableTable, Split, Merge<a name="line.102"></a>
-<span class="sourceLineNo">103</span> */<a name="line.103"></a>
-<span class="sourceLineNo">104</span>@InterfaceAudience.Private<a name="line.104"></a>
-<span class="sourceLineNo">105</span>public class AssignmentManager implements ServerListener {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  private static final Log LOG = LogFactory.getLog(AssignmentManager.class);<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>  // TODO: AMv2<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  //  - handle region migration from hbase1 to hbase2.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>  //  - handle sys table assignment first (e.g. acl, namespace)<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  //  - handle table priorities<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  //  - If ServerBusyException trying to update hbase:meta, we abort the Master<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  //   See updateRegionLocation in RegionStateStore.<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  //<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  // See also<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  // https://docs.google.com/document/d/1eVKa7FHdeoJ1-9o8yZcOTAQbv0u0bblBlCCzVSIn69g/edit#heading=h.ystjyrkbtoq5<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  // for other TODOs.<a name="line.117"></a>
-<span class="sourceLineNo">118</span><a name="line.118"></a>
-<span class="sourceLineNo">119</span>  public static final String BOOTSTRAP_THREAD_POOL_SIZE_CONF_KEY =<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      "hbase.assignment.bootstrap.thread.pool.size";<a name="line.120"></a>
-<span class="sourceLineNo">121</span><a name="line.121"></a>
-<span class="sourceLineNo">122</span>  public static final String ASSIGN_DISPATCH_WAIT_MSEC_CONF_KEY =<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      "hbase.assignment.dispatch.wait.msec";<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  private static final int DEFAULT_ASSIGN_DISPATCH_WAIT_MSEC = 150;<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>  public static final String ASSIGN_DISPATCH_WAITQ_MAX_CONF_KEY =<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      "hbase.assignment.dispatch.wait.queue.max.size";<a name="line.127"></a>
-<span class="sourceLineNo">128</span>  private static final int DEFAULT_ASSIGN_DISPATCH_WAITQ_MAX = 100;<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span>  public static final String RIT_CHORE_INTERVAL_MSEC_CONF_KEY =<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      "hbase.assignment.rit.chore.interval.msec";<a name="line.131"></a>
-<span class="sourceLineNo">132</span>  private static final int DEFAULT_RIT_CHORE_INTERVAL_MSEC = 5 * 1000;<a name="line.132"></a>
-<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>  public static final String ASSIGN_MAX_ATTEMPTS =<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      "hbase.assignment.maximum.attempts";<a name="line.135"></a>
-<span class="sourceLineNo">136</span>  private static final int DEFAULT_ASSIGN_MAX_ATTEMPTS = 10;<a name="line.136"></a>
-<span class="sourceLineNo">137</span><a name="line.137"></a>
-<span class="sourceLineNo">138</span>  /** Region in Transition metrics threshold time */<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  public static final String METRICS_RIT_STUCK_WARNING_THRESHOLD =<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      "hbase.metrics.rit.stuck.warning.threshold";<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  private static final int DEFAULT_RIT_STUCK_WARNING_THRESHOLD = 60 * 1000;<a name="line.141"></a>
-<span class="sourceLineNo">142</span><a name="line.142"></a>
-<span class="sourceLineNo">143</span>  private final ProcedureEvent&lt;?&gt; metaInitializedEvent = new ProcedureEvent&lt;&gt;("meta initialized");<a name="line.143"></a>
-<span class="sourceLineNo">144</span>  private final ProcedureEvent&lt;?&gt; metaLoadEvent = new ProcedureEvent&lt;&gt;("meta load");<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>   * Indicator that AssignmentManager has recovered the region states so<a name="line.147"></a>
-<span class="sourceLineNo">148</span>   * that ServerCrashProcedure can be fully enabled and re-assign regions<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   * of dead servers. So that when re-assignment happens, AssignmentManager<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   * has proper region states.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   */<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  private final ProcedureEvent&lt;?&gt; failoverCleanupDone = new ProcedureEvent&lt;&gt;("failover cleanup");<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>  /** Listeners that are called on assignment events. */<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  private final CopyOnWriteArrayList&lt;AssignmentListener&gt; listeners =<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      new CopyOnWriteArrayList&lt;AssignmentListener&gt;();<a name="line.156"></a>
-<span class="sourceLineNo">157</span><a name="line.157"></a>
-<span class="sourceLineNo">158</span>  // TODO: why is this different from the listeners (carried over from the old AM)<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  private RegionStateListener regionStateListener;<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  private RegionNormalizer regionNormalizer;<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>  private final MetricsAssignmentManager metrics;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  private final RegionInTransitionChore ritChore;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private final MasterServices master;<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  private final AtomicBoolean running = new AtomicBoolean(false);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private final RegionStates regionStates = new RegionStates();<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  private final RegionStateStore regionStateStore;<a name="line.169"></a>
-<span class="sourceLineNo">170</span><a name="line.170"></a>
-<span class="sourceLineNo">171</span>  private final boolean shouldAssignRegionsWithFavoredNodes;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>  private final int assignDispatchWaitQueueMaxSize;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  private final int assignDispatchWaitMillis;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  private final int assignMaxAttempts;<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>  private final Object checkIfShouldMoveSystemRegionLock = new Object();<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>  private Thread assignThread;<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>  public AssignmentManager(final MasterServices master) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    this(master, new RegionStateStore(master));<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>  public AssignmentManager(final MasterServices master, final RegionStateStore stateStore) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    this.master = master;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    this.regionStateStore = stateStore;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    this.metrics = new MetricsAssignmentManager();<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>    final Configuration conf = master.getConfiguration();<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>    // Only read favored nodes if using the favored nodes load balancer.<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    this.shouldAssignRegionsWithFavoredNodes = FavoredStochasticBalancer.class.isAssignableFrom(<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        conf.getClass(HConstants.HBASE_MASTER_LOADBALANCER_CLASS, Object.class));<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>    this.assignDispatchWaitMillis = conf.getInt(ASSIGN_DISPATCH_WAIT_MSEC_CONF_KEY,<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        DEFAULT_ASSIGN_DISPATCH_WAIT_MSEC);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    this.assignDispatchWaitQueueMaxSize = conf.getInt(ASSIGN_DISPATCH_WAITQ_MAX_CONF_KEY,<a name="line.197"></a>
-<span class="sourceLineNo">198</span>        DEFAULT_ASSIGN_DISPATCH_WAITQ_MAX);<a name="line.198"></a>
-<span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span>    this.assignMaxAttempts = Math.max(1, conf.getInt(ASSIGN_MAX_ATTEMPTS,<a name="line.200"></a>
-<span class="sourceLineNo">201</span>        DEFAULT_ASSIGN_MAX_ATTEMPTS));<a name="line.201"></a>
-<span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>    int ritChoreInterval = conf.getInt(RIT_CHORE_INTERVAL_MSEC_CONF_KEY,<a name="line.203"></a>
-<span class="sourceLineNo">204</span>        DEFAULT_RIT_CHORE_INTERVAL_MSEC);<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    this.ritChore = new RegionInTransitionChore(ritChoreInterval);<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>    // Used for region related procedure.<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    setRegionNormalizer(master.getRegionNormalizer());<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>  public void start() throws IOException {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    if (!running.compareAndSet(false, true)) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      return;<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>    LOG.info("Starting assignment manager");<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>    // Register Server Listener<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    master.getServerManager().registerListener(this);<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>    // Start the RegionStateStore<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    regionStateStore.start();<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span>    // Start the Assignment Thread<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    startAssignmentThread();<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  }<a name="line.226"></a>
-<span class="sourceLineNo">227</span><a name="line.227"></a>
-<span class="sourceLineNo">228</span>  public void stop() {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    if (!running.compareAndSet(true, false)) {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      return;<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>    LOG.info("Stopping assignment manager");<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>    // The AM is started before the procedure executor,<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    // but the actual work will be loaded/submitted only once we have the executor<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    final boolean hasProcExecutor = master.getMasterProcedureExecutor() != null;<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>    // Remove the RIT chore<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    if (hasProcExecutor) {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      master.getMasterProcedureExecutor().removeChore(this.ritChore);<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>    // Stop the Assignment Thread<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    stopAssignmentThread();<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>    // Stop the RegionStateStore<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    regionStates.clear();<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    regionStateStore.stop();<a name="line.249"></a>
-<span class="sourceLineNo">250</span><a name="line.250"></a>
-<span class="sourceLineNo">251</span>    // Unregister Server Listener<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    master.getServerManager().unregisterListener(this);<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span>    // Update meta events (for testing)<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    if (hasProcExecutor) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      getProcedureScheduler().suspendEvent(metaLoadEvent);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      setFailoverCleanupDone(false);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      for (HRegionInfo hri: getMetaRegionSet()) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        setMetaInitialized(hri, false);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    }<a name="line.261"></a>
-<span class="sourceLineNo">262</span>  }<a name="line.262"></a>
-<span class="sourceLineNo">263</span><a name="line.263"></a>
-<span class="sourceLineNo">264</span>  public boolean isRunning() {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    return running.get();<a name="line.265"></a>
-<span class="sourceLineNo">266</span>  }<a name="line.266"></a>
-<span class="sourceLineNo">267</span><a name="line.267"></a>
-<span class="sourceLineNo">268</span>  public Configuration getConfiguration() {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    return master.getConfiguration();<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>  public MetricsAssignmentManager getAssignmentManagerMetrics() {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    return metrics;<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  }<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>  private LoadBalancer getBalancer() {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    return master.getLoadBalancer();<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  }<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  private MasterProcedureEnv getProcedureEnvironment() {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    return master.getMasterProcedureExecutor().getEnvironment();<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>  private MasterProcedureScheduler getProcedureScheduler() {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    return getProcedureEnvironment().getProcedureScheduler();<a name="line.285"></a>
-<span class="sourceLineNo">286</span>  }<a name="line.286"></a>
-<span class="sourceLineNo">287</span><a name="line.287"></a>
-<span class="sourceLineNo">288</span>  protected int getAssignMaxAttempts() {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    return assignMaxAttempts;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>  }<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>  /**<a name="line.292"></a>
-<span class="sourceLineNo">293</span>   * Add the listener to the notification list.<a name="line.293"></a>
-<span class="sourceLineNo">294</span>   * @param listener The AssignmentListener to register<a name="line.294"></a>
-<span class="sourceLineNo">295</span>   */<a name="line.295"></a>
-<span class="sourceLineNo">296</span>  public void registerListener(final AssignmentListener listener) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    this.listeners.add(listener);<a name="line.297"></a>
-<span class="sourceLineNo">298</span>  }<a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>  /**<a name="line.300"></a>
-<span class="sourceLineNo">301</span>   * Remove the listener from the notification list.<a name="line.301"></a>
-<span class="sourceLineNo">302</span>   * @param listener The AssignmentListener to unregister<a name="line.302"></a>
-<span class="sourceLineNo">303</span>   */<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  public boolean unregisterListener(final AssignmentListener listener) {<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return this.listeners.remove(listener);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  public void setRegionStateListener(final RegionStateListener listener) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    this.regionStateListener = listener;<a name="line.309"></a>
-<span class="sourceLineNo">310</span>  }<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>  public void setRegionNormalizer(final RegionNormalizer normalizer) {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    this.regionNormalizer = normalizer;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>  }<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>  public RegionNormalizer getRegionNormalizer() {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    return regionNormalizer;<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>  public RegionStates getRegionStates() {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    return regionStates;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span>  public RegionStateStore getRegionStateStore() {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    return regionStateStore;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>  }<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>  public List&lt;ServerName&gt; getFavoredNodes(final HRegionInfo regionInfo) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    return this.shouldAssignRegionsWithFavoredNodes?<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        ((FavoredStochasticBalancer)getBalancer()).getFavoredNodes(regionInfo):<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          ServerName.EMPTY_SERVER_LIST;<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>  // ============================================================================================<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  //  Table State Manager helpers<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  // ============================================================================================<a name="line.336"></a>
-<span class="sourceLineNo">337</span>  TableStateManager getTableStateManager() {<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    return master.getTableStateManager();<a name="line.338"></a>
-<span class="sourceLineNo">339</span>  }<a name="line.339"></a>
-<span class="sourceLineNo">340</span><a name="line.340"></a>
-<span class="sourceLineNo">341</span>  public boolean isTableEnabled(final TableName tableName) {<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    return getTableStateManager().isTableState(tableName, TableState.State.ENABLED);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  }<a name="line.343"></a>
-<span class="sourceLineNo">344</span><a name="line.344"></a>
-<span class="sourceLineNo">345</span>  public boolean isTableDisabled(final TableName tableName) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    return getTableStateManager().isTableState(tableName,<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      TableState.State.DISABLED, TableState.State.DISABLING);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
-<span class="sourceLineNo">349</span><a name="line.349"></a>
-<span class="sourceLineNo">350</span>  // ============================================================================================<a name="line.350"></a>
-<span class="sourceLineNo">351</span>  //  META Helpers<a name="line.351"></a>
-<span class="sourceLineNo">352</span>  // ============================================================================================<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  private boolean isMetaRegion(final HRegionInfo regionInfo) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return regionInfo.isMetaRegion();<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>  public boolean isMetaRegion(final byte[] regionName) {<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    return getMetaRegionFromName(regionName) != null;<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>  public HRegionInfo getMetaRegionFromName(final byte[] regionName) {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    for (HRegionInfo hri: getMetaRegionSet()) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      if (Bytes.equals(hri.getRegionName(), regionName)) {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>        return hri;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      }<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    }<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    return null;<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>  public boolean isCarryingMeta(final ServerName serverName) {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    for (HRegionInfo hri: getMetaRegionSet()) {<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      if (isCarryingRegion(serverName, hri)) {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>        return true;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      }<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return false;<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  private boolean isCarryingRegion(final ServerName serverName, final HRegionInfo regionInfo) {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    // TODO: check for state?<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    final RegionStateNode node = regionStates.getRegionNode(regionInfo);<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    return(node != null &amp;&amp; serverName.equals(node.getRegionLocation()));<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>  private HRegionInfo getMetaForRegion(final HRegionInfo regionInfo) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    //if (regionInfo.isMetaRegion()) return regionInfo;<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    // TODO: handle multiple meta. if the region provided is not meta lookup<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    // which meta the region belongs to.<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    return HRegionInfo.FIRST_META_REGIONINFO;<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>  // TODO: handle multiple meta.<a name="line.392"></a>
-<span class="sourceLineNo">393</span>  private static final Set&lt;HRegionInfo&gt; META_REGION_SET =<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      Collections.singleton(HRegionInfo.FIRST_META_REGIONINFO);<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  public Set&lt;HRegionInfo&gt; getMetaRegionSet() {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    return META_REGION_SET;<a name="line.396"></a>
-<span class="sourceLineNo">397</span>  }<a name="line.397"></a>
-<span class="sourceLineNo">398</span><a name="line.398"></a>
-<span class="sourceLineNo">399</span>  // ============================================================================================<a name="line.399"></a>
-<span class="sourceLineNo">400</span>  //  META Event(s) helpers<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  // ============================================================================================<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  public boolean isMetaInitialized() {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    return metaInitializedEvent.isReady();<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>  public boolean isMetaRegionInTransition() {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    return !isMetaInitialized();<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>  public boolean waitMetaInitialized(final Procedure proc) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    // TODO: handle multiple meta. should this wait on all meta?<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    // this is used by the ServerCrashProcedure...<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    return waitMetaInitialized(proc, HRegionInfo.FIRST_META_REGIONINFO);<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>  public boolean waitMetaInitialized(final Procedure proc, final HRegionInfo regionInfo) {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    return getProcedureScheduler().waitEvent(<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      getMetaInitializedEvent(getMetaForRegion(regionInfo)), proc);<a name="line.418"></a>
-<span class="sourceLineNo">419</span>  }<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>  private void setMetaInitialized(final HRegionInfo metaRegionInfo, final boolean isInitialized) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    assert isMetaRegion(metaRegionInfo) : "unexpected non-meta region " + metaRegionInfo;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    final ProcedureEvent metaInitEvent = getMetaInitializedEvent(metaRegionInfo);<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    if (isInitialized) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      getProcedureScheduler().wakeEvent(metaInitEvent);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    } else {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      getProcedureScheduler().suspendEvent(metaInitEvent);<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>  private ProcedureEvent getMetaInitializedEvent(final HRegionInfo metaRegionInfo) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    assert isMetaRegion(metaRegionInfo) : "unexpected non-meta region " + metaRegionInfo;<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    // TODO: handle multiple meta.<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    return metaInitializedEvent;<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>  public boolean waitMetaLoaded(final Procedure proc) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    return getProcedureScheduler().waitEvent(metaLoadEvent, proc);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  }<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>  protected void wakeMetaLoadedEvent() {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    getProcedureScheduler().wakeEvent(metaLoadEvent);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    assert isMetaLoaded() : "expected meta to be loaded";<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>  public boolean isMetaLoaded() {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    return metaLoadEvent.isReady();<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>  //  TODO: Sync helpers<a name="line.451"></a>
-<span class="sourceLineNo">452</span>  // ============================================================================================<a name="line.452"></a>
-<span class="sourceLineNo">453</span>  public void assignMeta(final HRegionInfo metaRegionInfo) throws IOException {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    assignMeta(metaRegionInfo, null);<a name="line.454"></a>
-<span class="sourceLineNo">455</span>  }<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>  public void assignMeta(final HRegionInfo metaRegionInfo, final ServerName serverName)<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      throws IOException {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    assert isMetaRegion(metaRegionInfo) : "unexpected non-meta region " + metaRegionInfo;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    AssignProcedure proc;<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    if (serverName != null) {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      LOG.debug("Try assigning Meta " + metaRegionInfo + " to " + serverName);<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      proc = createAssignProcedure(metaRegionInfo, serverName);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    } else {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      LOG.debug("Assigning " + metaRegionInfo.getRegionNameAsString());<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      proc = createAssignProcedure(metaRegionInfo, false);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    ProcedureSyncWait.submitAndWaitProcedure(master.getMasterProcedureExecutor(), proc);<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>   * Start a new thread to check if there are region servers whose versions are higher than others.<a name="line.472"></a>
-<span class="sourceLineNo">473</span>   * If so, move all system table regions to RS with the highest version to keep compatibility.<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   * The reason is, RS in new version may not be able to access RS in old version when there are<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   * some incompatible changes.<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   */<a name="line.476"></a>
-<span class="sourceLineNo">477</span>  public void checkIfShouldMoveSystemRegionAsync() {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    new Thread(() -&gt; {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      try {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        synchronized (checkIfShouldMoveSystemRegionLock) {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>          List&lt;RegionPlan&gt; plans = new ArrayList&lt;&gt;();<a name="line.481"></a>
-<span class="sourceLineNo">482</span>          for (ServerName server : getExcludedServersForSystemTable()) {<a name="line.482"></a>
-<span class="sourceLineNo">483</span>            if (master.getServerManager().isServerDead(server)) {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>              // TODO: See HBASE-18494 and HBASE-18495. Though getExcludedServersForSystemTable()<a name="line.484"></a>
-<span class="sourceLineNo">485</span>              // considers only online servers, the server could be queued for dead server<a name="line.485"></a>
-<span class="sourceLineNo">486</span>              // processing. As region assignments for crashed server is handled by<a name="line.486"></a>
-<span class="sourceLineNo">487</span>              // ServerCrashProcedure, do NOT handle them here. The goal is to handle this through<a name="line.487"></a>
-<span class="sourceLineNo">488</span>              // regular flow of LoadBalancer as a favored node and not to have this special<a name="line.488"></a>
-<span class="sourceLineNo">489</span>              // handling.<a name="line.489"></a>
-<span class="sourceLineNo">490</span>              continue;<a name="line.490"></a>
-<span class="sourceLineNo">491</span>            }<a name="line.491"></a>
-<span class="sourceLineNo">492</span>            List&lt;HRegionInfo&gt; regionsShouldMove = getCarryingSystemTables(server);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>            if (!regionsShouldMove.isEmpty()) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>              for (HRegionInfo regionInfo : regionsShouldMove) {<a name="line.494"></a>
-<span class="sourceLineNo">495</span>                // null value for dest forces destination server to be selected by balancer<a name="line.495"></a>
-<span class="sourceLineNo">496</span>                RegionPlan plan = new RegionPlan(regionInfo, server, null);<a name="line.496"></a>
-<span class="sourceLineNo">497</span>                if (regionInfo.isMetaRegion()) {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>                  // Must move meta region first.<a name="line.498"></a>
-<span class="sourceLineNo">499</span>                  moveAsync(plan);<a name="line.499"></a>
-<span class="sourceLineNo">500</span>                } else {<a name="line.500"></a>
-<span class="sourceLineNo">501</span>                  plans.add(plan);<a name="line.501"></a>
-<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
-<span class="sourceLineNo">503</span>              }<a name="line.503"></a>
-<span class="sourceLineNo">504</span>            }<a name="line.504"></a>
-<span class="sourceLineNo">505</span>            for (RegionPlan plan : plans) {<a name="line.505"></a>
-<span class="sourceLineNo">506</span>              moveAsync(plan);<a name="line.506"></a>
-<span class="sourceLineNo">507</span>            }<a name="line.507"></a>
-<span class="sourceLineNo">508</span>          }<a name="line.508"></a>
-<span class="sourceLineNo">509</span>        }<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      } catch (Throwable t) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>        LOG.error(t);<a name="line.511"></a>
-<span class="sourceLineNo">512</span>      }<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    }).start();<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>  private List&lt;HRegionInfo&gt; getCarryingSystemTables(ServerName serverName) {<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    Set&lt;RegionStateNode&gt; regions = this.getRegionStates().getServerNode(serverName).getRegions();<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    if (regions == null) {<a name="line.518"></a>
-<span class="sourceLineNo">519</span>      return new ArrayList&lt;&gt;();<a name="line.519"></a>
-<span class="sourceLineNo">520</span>    }<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    return regions.stream()<a name="line.521"></a>
-<span class="sourceLineNo">522</span>        .map(RegionStateNode::getRegionInfo)<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        .filter(HRegionInfo::isSystemTable)<a name="line.523"></a>
-<span class="sourceLineNo">524</span>        .collect(Collectors.toList());<a name="line.524"></a>
-<span class="sourceLineNo">525</span>  }<a name="line.525"></a>
-<span class="sourceLineNo">526</span><a name="line.526"></a>
-<span class="sourceLineNo">527</span>  public void assign(final HRegionInfo regionInfo) throws IOException {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    assign(regionInfo, true);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>  }<a name="line.529"></a>
-<span class="sourceLineNo">530</span><a name="line.530"></a>
-<span class="sourceLineNo">531</span>  public void assign(final HRegionInfo regionInfo, final boolean forceNewPlan) throws IOException {<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    AssignProcedure proc = createAssignProcedure(regionInfo, forceNewPlan);<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    ProcedureSyncWait.submitAndWaitProcedure(master.getMasterProcedureExecutor(), proc);<a name="line.533"></a>
-<span class="sourceLineNo">534</span>  }<a name="line.534"></a>
-<span class="sourceLineNo">535</span><a name="line.535"></a>
-<span class="sourceLineNo">536</span>  public void unassign(final HRegionInfo regionInfo) throws IOException {<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    unassign(regionInfo, false);<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span>  public void unassign(final HRegionInfo regionInfo, final boolean forceNewPlan)<a name="line.540"></a>
-<span class="sourceLineNo">541</span>  throws IOException {<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    // TODO: rename this reassign<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    RegionStateNode node = this.regionStates.getRegionNode(regionInfo);<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    ServerName destinationServer = node.getRegionLocation();<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    if (destinationServer == null) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      throw new UnexpectedStateException("DestinationServer is null; Assigned? " + node.toString());<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    }<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    assert destinationServer != null; node.toString();<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    UnassignProcedure proc = createUnassignProcedure(regionInfo, destinationServer, forceNewPlan);<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    ProcedureSyncWait.submitAndWaitProcedure(master.getMasterProcedureExecutor(), proc);<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>  public Future&lt;byte[]&gt; moveAsync(final RegionPlan regionPlan) {<a name="line.553"></a>
-<span class="sourceLineNo">554</span>    MoveRegionProcedure proc = createMoveRegionProcedure(regionPlan);<a name="line.554"></a>
-<span class="sourceLineNo">555</span>    return ProcedureSyncWait.submitProcedure(master.getMasterProcedureExecutor(), proc);<a name="line.555"></a>
-<span class="sourceLineNo">556</span>  }<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>  @VisibleForTesting<a name="line.558"></a>
-<span class="sourceLineNo">559</span>  public boolean waitForAssignment(final HRegionInfo regionInfo) throws IOException {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    return waitForAssignment(regionInfo, Long.MAX_VALUE);<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>  @VisibleForTesting<a name="line.563"></a>
-<span class="sourceLineNo">564</span>  // TODO: Remove this?<a name="line.564"></a>
-<span class="sourceLineNo">565</span>  public boolean waitForAssignment(final HRegionInfo regionInfo, final long timeout)<a name="line.565"></a>
-<span class="sourceLineNo">566</span>  throws IOException {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    RegionStateNode node = null;<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    // This method can be called before the regionInfo has made it into the regionStateMap<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    // so wait around here a while.<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    long startTime = System.currentTimeMillis();<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    // Something badly wrong if takes ten seconds to register a region.<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    long endTime = startTime + 10000;<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    while ((node = regionStates.getRegionNode(regionInfo)) == null &amp;&amp; isRunning() &amp;&amp;<a name="line.573"></a>
-<span class="sourceLineNo">574</span>        System.currentTimeMillis() &lt; endTime) {<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      // Presume it not yet added but will be added soon. Let it spew a lot so we can tell if<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      // we are waiting here alot.<a name="line.576"></a>
-<span class="sourceLineNo">577</span>      LOG.debug("Waiting on " + regionInfo + " to be added to regionStateMap");<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      Threads.sleep(10);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    if (node == null) {<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      if (!isRunning()) return false;<a name="line.581"></a>
-<span class="sourceLineNo">582</span>      throw new RegionException(regionInfo.getRegionNameAsString() + " never registered with Assigment.");<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    }<a name="line.583"></a>
-<span class="sourceLineNo">584</span><a name="line.584"></a>
-<span class="sourceLineNo">585</span>    RegionTransitionProcedure proc = node.getProcedure();<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    if (proc == null) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      throw new NoSuchProcedureException(node.toString());<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>    ProcedureSyncWait.waitForProcedureToCompleteIOE(<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      master.getMasterProcedureExecutor(), proc.getProcId(), timeout);<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    return true;<a name="line.592"></a>
-<span class="sourceLineNo">593</span>  }<a name="line.593"></a>
-<span class="sourceLineNo">594</span><a name="line.594"></a>
-<span class="sourceLineNo">595</span>  // ============================================================================================<a name="line.595"></a>
-<span class="sourceLineNo">596</span>  //  RegionTransition procedures helpers<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>  public AssignProcedure[] createAssignProcedures(final Collection&lt;HRegionInfo&gt; regionInfo) {<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    return createAssignProcedures(regionInfo, false);<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>  public AssignProcedure[] createAssignProcedures(final Collection&lt;HRegionInfo&gt; regionInfo,<a name="line.603"></a>
-<span class="sourceLineNo">604</span>      final boolean forceNewPlan) {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    if (regionInfo.isEmpty()) return null;<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    final AssignProcedure[] procs = new AssignProcedure[regionInfo.size()];<a name="line.606"></a>
-<span class="sourceLineNo">607</span>    int index = 0;<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    for (HRegionInfo hri: regionInfo) {<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      procs[index++] = createAssignProcedure(hri, forceNewPlan);<a name="line.609"></a>
-<span class="sourceLineNo">610</span>    }<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    return procs;<a name="line.611"></a>
-<span class="sourceLineNo">612</span>  }<a name="line.612"></a>
-<span class="sourceLineNo">613</span><a name="line.613"></a>
-<span class="sourceLineNo">614</span>  // Needed for the following method so it can type the created Array we return<a name="line.614"></a>
-<span class="sourceLineNo">615</span>  private static final UnassignProcedure [] UNASSIGNED_PROCEDURE_FOR_TYPE_INFO =<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      new UnassignProcedure[0];<a name="line.616"></a>
-<span class="sourceLineNo">617</span><a name="line.617"></a>
-<span class="sourceLineNo">618</span>  UnassignProcedure[] createUnassignProcedures(final Collection&lt;RegionStateNode&gt; nodes) {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    if (nodes.isEmpty()) return null;<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    final List&lt;UnassignProcedure&gt; procs = new ArrayList&lt;UnassignProcedure&gt;(nodes.size());<a name="line.620"></a>
-<span class="sourceLineNo">621</span>    for (RegionStateNode node: nodes) {<a name="line.621"></a>
-<span class="sourceLineNo">622</span>      if (!this.regionStates.include(node, false)) continue;<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      // Look for regions that are offline/closed; i.e. already unassigned.<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      if (this.regionStates.isRegionOffline(node.getRegionInfo())) continue;<a name="line.624"></a>
-<span class="sourceLineNo">625</span>      assert node.getRegionLocation() != null: node.toString();<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      procs.add(createUnassignProcedure(node.getRegionInfo(), node.getRegionLocation(), false));<a name="line.626"></a>
-<span class="sourceLineNo">627</span>    }<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    return procs.toArray(UNASSIGNED_PROCEDURE_FOR_TYPE_INFO);<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>  public MoveRegionProcedure[] createReopenProcedures(final Collection&lt;HRegionInfo&gt; regionInfo) {<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    final MoveRegionProcedure[] procs = new MoveRegionProcedure[regionInfo.size()];<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    int index = 0;<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    for (HRegionInfo hri: regionInfo) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      final ServerName serverName = regionStates.getRegionServerOfRegion(hri);<a name="line.635"></a>
-<span class="sourceLineNo">636</span>      final RegionPlan plan = new RegionPlan(hri, serverName, serverName);<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      procs[index++] = createMoveRegionProcedure(plan);<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    }<a name="line.638"></a>
-<span class="sourceLineNo">639</span>    return procs;<a name="line.639"></a>
-<span class="sourceLineNo">640</span>  }<a name="line.640"></a>
-<span class="sourceLineNo">641</span><a name="line.641"></a>
-<span class="sourceLineNo">642</span>  /**<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * Called by things like EnableTableProcedure to get a list of AssignProcedure<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   * to assign the regions of the table.<a name="line.644"></a>
-<span class="sourceLineNo">645</span>   */<a name="line.645"></a>
-<span class="sourceLineNo">646</span>  public AssignProcedure[] createAssignProcedures(final TableName tableName) {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    return createAssignProcedures(regionStates.getRegionsOfTable(tableName));<a name="line.647"></a>
-<span class="sourceLineNo">648</span>  }<a name="line.648"></a>
-<span class="sourceLineNo">649</span><a name="line.649"></a>
-<span class="sourceLineNo">650</span>  /**<a name="line.650"></a>
-<span class="sourceLineNo">651</span>   * Called by things like DisableTableProcedure to get a list of UnassignProcedure<a name="line.651"></a>
-<span class="sourceLineNo">652</span>   * to unassign the regions of the table.<a name="line.652"></a>
-<span class="sourceLineNo">653</span>   */<a name="line.653"></a>
-<span class="sourceLineNo">654</span>  public UnassignProcedure[] createUnassignProcedures(final TableName tableName) {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    return createUnassignProcedures(regionStates.getTableRegionStateNodes(tableName));<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
-<span class="sourceLineNo">657</span><a name="line.657"></a>
-<span class="sourceLineNo">658</span>  /**<a name="line.658"></a>
-<span class="sourceLineNo">659</span>   * Called by things like ModifyColumnFamilyProcedure to get a list of MoveRegionProcedure<a name="line.659"></a>
-<span class="sourceLineNo">660</span>   * to reopen the regions of the table.<a name="line.660"></a>
-<span class="sourceLineNo">661</span>   */<a name="line.661"></a>
-<span class="sourceLineNo">662</span>  public MoveRegionProcedure[] createReopenProcedures(final TableName tableName) {<a name="line.662"></a>
-<span class="sourceLineNo">663</span>    return createReopenProcedures(regionStates.getRegionsOfTable(tableName));<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>  public AssignProcedure createAssignProcedure(final HRegionInfo regionInfo,<a name="line.666"></a>
-<span class="sourceLineNo">667</span>      final boolean forceNewPlan) {<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    AssignProcedure proc = new AssignProcedure(regionInfo, forceNewPlan);<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    proc.setOwner(getProcedureEnvironment().getRequestUser().getShortName());<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    return proc;<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>  public AssignProcedure createAssignProcedure(final HRegionInfo regionInfo,<a name="line.673"></a>
-<span class="sourceLineNo">674</span>      final ServerName targetServer) {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>    AssignProcedure proc = new AssignProcedure(regionInfo, targetServer);<a name="line.675"></a>
-<span class="sourceLineNo">676</span>    proc.setOwner(getProcedureEnvironment().getRequestUser().getShortName());<a name="line.676"></a>
-<span class="sourceLineNo">677</span>    return proc;<a name="line.677"></a>
-<span class="sourceLineNo">678</span>  }<a name="line.678"></a>
-<span class="sourceLineNo">679</span><a name="line.679"></a>
-<span class="sourceLineNo">680</span>  public UnassignProcedure createUnassignProcedure(final HRegionInfo regionInfo,<a name="line.680"></a>
-<span class="sourceLineNo">681</span>      final ServerName destinationServer, final boolean force) {<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    // If destinationServer is null, figure it.<a name="line.682"></a>
-<span class="sourceLineNo">683</span>    ServerName sn = destinationServer != null? destinationServer:<a name="line.683"></a>
-<span class="sourceLineNo">684</span>      getRegionStates().getRegionState(regionInfo).getServerName();<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    assert sn != null;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    UnassignProcedure proc = new UnassignProcedure(regionInfo, sn, force);<a name="line.686"></a>
-<span class="sourceLineNo">687</span>    proc.setOwner(getProcedureEnvironment().getRequestUser().getShortName());<a name="line.687"></a>
-<span class="sourceLineNo">688</span>    return proc;<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>  public MoveRegionProcedure createMoveRegionProcedure(final RegionPlan plan) {<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    if (plan.getRegionInfo().isSystemTable()) {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>      List&lt;ServerName&gt; exclude = getExcludedServersForSystemTable();<a name="line.693"></a>
-<span class="sourceLineNo">694</span>      if (plan.getDestination() != null &amp;&amp; exclude.contains(plan.getDestination())) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>        try {<a name="line.695"></a>
-<span class="sourceLineNo">696</span>          LOG.info("Can not move " + plan.getRegionInfo() + " to " + plan.getDestination()<a name="line.696"></a>
-<span class="sourceLineNo">697</span>              + " because the server is not with highest version");<a name="line.697"></a>
-<span class="sourceLineNo">698</span>          plan.setDestination(getBalancer().randomAssignment(plan.getRegionInfo(),<a name="line.698"></a>
-<span class="sourceLineNo">699</span>              this.master.getServerManager().createDestinationServersList(exclude)));<a name="line.699"></a>
-<span class="sourceLineNo">700</span>        } catch (HBaseIOException e) {<a name="line.700"></a>
-<span class="sourceLineNo">701</span>          LOG.warn(e);<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>    }<a name="line.704"></a>
-<span class="sourceLineNo">705</span>    return new MoveRegionProcedure(getProcedureEnvironment(), plan);<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">049</span>import org.apache.hadoop.hbase.YouAreDeadException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.exceptions.UnexpectedStateException;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.master.balancer.FavoredStochasticBalancer;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.master.AssignmentListener;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.master.LoadBalancer;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.master.MetricsAssignmentManager;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.master.NoSuchProcedureException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.master.RegionPlan;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.master.RegionState;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.master.RegionState.State;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.master.ServerListener;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.master.TableStateManager;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.ServerState;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.ServerStateNode;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>// TODO: why are they here?<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.master.procedure.ProcedureSyncWait;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.master.procedure.ServerCrashProcedure;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.procedure2.ProcedureEvent;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.procedure2.ProcedureInMemoryChore;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.procedure2.util.StringUtils;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.util.VersionInfo;<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.com.google.common.annotations.VisibleForTesting;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Lists;<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> * The AssignmentManager is the coordinator for region assign/unassign operations.<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * &lt;ul&gt;<a name="line.96"></a>
+<span class="sourceLineNo">097</span> * &lt;li&gt;In-memory states of regions and servers are stored in {@link RegionStates}.&lt;/li&gt;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> * &lt;li&gt;hbase:meta state updates are handled by {@link RegionStateStore}.&lt;/li&gt;<a name="line.98"></a>
+<span class="sourceLineNo">099</span> * &lt;/ul&gt;<a name="line.99"></a>
+<span class="sourceLineNo">100</span> * Regions are created by CreateTable, Split, Merge.<a name="line.100"></a>
+<span class="sourceLineNo">101</span> * Regions are deleted by DeleteTable, Split, Merge.<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * Assigns are triggered by CreateTable, EnableTable, Split, Merge, ServerCrash.<a name="line.102"></a>
+<span class="sourceLineNo">103</span> * Unassigns are triggered by DisableTable, Split, Merge<a name="line.103"></a>
+<span class="sourceLineNo">104</span> */<a name="line.104"></a>
+<span class="sourceLineNo">105</span>@InterfaceAudience.Private<a name="line.105"></a>
+<span class="sourceLineNo">106</span>public class AssignmentManager implements ServerListener {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  private static final Log LOG = LogFactory.getLog(AssignmentManager.class);<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  // TODO: AMv2<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  //  - handle region migration from hbase1 to hbase2.<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  //  - handle sys table assignment first (e.g. acl, namespace)<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  //  - handle table priorities<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  //  - If ServerBusyException trying to update hbase:meta, we abort the Master<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  //   See updateRegionLocation in RegionStateStore.<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  //<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  // See also<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  // https://docs.google.com/document/d/1eVKa7FHdeoJ1-9o8yZcOTAQbv0u0bblBlCCzVSIn69g/edit#heading=h.ystjyrkbtoq5<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  // for other TODOs.<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>  public static final String BOOTSTRAP_THREAD_POOL_SIZE_CONF_KEY =<a name="line.120"></a>
+<span class="sourceLineNo">121</span>      "hbase.assignment.bootstrap.thread.pool.size";<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>  public static final String ASSIGN_DISPATCH_WAIT_MSEC_CONF_KEY =<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      "hbase.assignment.dispatch.wait.msec";<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  private static final int DEFAULT_ASSIGN_DISPATCH_WAIT_MSEC = 150;<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>  public static final String ASSIGN_DISPATCH_WAITQ_MAX_CONF_KEY =<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      "hbase.assignment.dispatch.wait.queue.max.size";<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  private static final int DEFAULT_ASSIGN_DISPATCH_WAITQ_MAX = 100;<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>  public static final String RIT_CHORE_INTERVAL_MSEC_CONF_KEY =<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      "hbase.assignment.rit.chore.interval.msec";<a name="line.132"></a>
+<span class="sourceLineNo">133</span>  private static final int DEFAULT_RIT_CHORE_INTERVAL_MSEC = 5 * 1000;<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>  public static final String ASSIGN_MAX_ATTEMPTS =<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      "hbase.assignment.maximum.attempts";<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  private static final int DEFAULT_ASSIGN_MAX_ATTEMPTS = 10;<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>  /** Region in Transition metrics threshold time */<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  public static final String METRICS_RIT_STUCK_WARNING_THRESHOLD =<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      "hbase.metrics.rit.stuck.warning.threshold";<a name="line.141"></a>
+<span class="sourceLineNo">142</span>  private static final int DEFAULT_RIT_STUCK_WARNING_THRESHOLD = 60 * 1000;<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>  private final ProcedureEvent&lt;?&gt; metaInitializedEvent = new ProcedureEvent&lt;&gt;("meta initialized");<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  private final ProcedureEvent&lt;?&gt; metaLoadEvent = new ProcedureEvent&lt;&gt;("meta load");<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>   * Indicator that AssignmentManager has recovered the region states so<a name="line.148"></a>
+<span class="sourceLineNo">149</span>   * that ServerCrashProcedure can be fully enabled and re-assign regions<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   * of dead servers. So that when re-assignment happens, AssignmentManager<a name="line.150"></a>
+<span class="sourceLineNo">151</span>   * has proper region states.<a name="line.151"></a>
+<span class="sourceLineNo">152</span>   */<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  private final ProcedureEvent&lt;?&gt; failoverCleanupDone = new ProcedureEvent&lt;&gt;("failover cleanup");<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  /** Listeners that are called on assignment events. */<a name="line.155"></a>
+<span class="sourceLineNo">156</span>  private final CopyOnWriteArrayList&lt;AssignmentListener&gt; listeners =<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      new CopyOnWriteArrayList&lt;AssignmentListener&gt;();<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  // TODO: why is this different from the listeners (carried over from the old AM)<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  private RegionStateListener regionStateListener;<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>  private RegionNormalizer regionNormalizer;<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>  private final MetricsAssignmentManager metrics;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  private final RegionInTransitionChore ritChore;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  private final MasterServices master;<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>  private final AtomicBoolean running = new AtomicBoolean(false);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  private final RegionStates regionStates = new RegionStates();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  private final RegionStateStore regionStateStore;<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>  private final boolean shouldAssignRegionsWithFavoredNodes;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  private final int assignDispatchWaitQueueMaxSize;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  private final int assignDispatchWaitMillis;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  private final int assignMaxAttempts;<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>  private final Object checkIfShouldMoveSystemRegionLock = new Object();<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>  private Thread assignThread;<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>  public AssignmentManager(final MasterServices master) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    this(master, new RegionStateStore(master));<a name="line.182"></a>
+<span class="sourceLineNo">183</span>  }<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>  public AssignmentManager(final MasterServices master, final RegionStateStore stateStore) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    this.master = master;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    this.regionStateStore = stateStore;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    this.metrics = new MetricsAssignmentManager();<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>    final Configuration conf = master.getConfiguration();<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>    // Only read favored nodes if using the favored nodes load balancer.<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    this.shouldAssignRegionsWithFavoredNodes = FavoredStochasticBalancer.class.isAssignableFrom(<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        conf.getClass(HConstants.HBASE_MASTER_LOADBALANCER_CLASS, Object.class));<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>    this.assignDispatchWaitMillis = conf.getInt(ASSIGN_DISPATCH_WAIT_MSEC_CONF_KEY,<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        DEFAULT_ASSIGN_DISPATCH_WAIT_MSEC);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    this.assignDispatchWaitQueueMaxSize = conf.getInt(ASSIGN_DISPATCH_WAITQ_MAX_CONF_KEY,<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        DEFAULT_ASSIGN_DISPATCH_WAITQ_MAX);<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>    this.assignMaxAttempts = Math.max(1, conf.getInt(ASSIGN_MAX_ATTEMPTS,<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        DEFAULT_ASSIGN_MAX_ATTEMPTS));<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>    int ritChoreInterval = conf.getInt(RIT_CHORE_INTERVAL_MSEC_CONF_KEY,<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        DEFAULT_RIT_CHORE_INTERVAL_MSEC);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    this.ritChore = new RegionInTransitionChore(ritChoreInterval);<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>    // Used for region related procedure.<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    setRegionNormalizer(master.getRegionNormalizer());<a name="line.209"></a>
+<span class="sourceLineNo">210</span>  }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>  public void start() throws IOException {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    if (!running.compareAndSet(false, true)) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      return;<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>    LOG.info("Starting assignment manager");<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>    // Register Server Listener<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    master.getServerManager().registerListener(this);<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>    // Start the RegionStateStore<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    regionStateStore.start();<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>    // Start the Assignment Thread<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    startAssignmentThread();<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  }<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>  public void stop() {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    if (!running.compareAndSet(true, false)) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      return;<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>    LOG.info("Stopping assignment manager");<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>    // The AM is started before the procedure executor,<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    // but the actual work will be loaded/submitted only once we have the executor<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    final boolean hasProcExecutor = master.getMasterProcedureExecutor() != null;<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span>    // Remove the RIT chore<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    if (hasProcExecutor) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      master.getMasterProcedureExecutor().removeChore(this.ritChore);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    }<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>    // Stop the Assignment Thread<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    stopAssignmentThread();<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>    // Stop the RegionStateStore<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    regionStates.clear();<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    regionStateStore.stop();<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span>    // Unregister Server Listener<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    master.getServerManager().unregisterListener(this);<a name="line.253"></a>
+<span class="sourceLineNo">254</span><a name="line.254"></a>
+<span class="sourceLin

<TRUNCATED>

[04/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.MockRegionStateStore.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.MockRegionStateStore.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.MockRegionStateStore.html
index 925744f..67bf8be 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.MockRegionStateStore.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.MockRegionStateStore.html
@@ -42,328 +42,333 @@
 <span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.ServerName;<a name="line.34"></a>
 <span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.TableDescriptors;<a name="line.35"></a>
 <span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.TableName;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.client.HConnectionTestingUtility;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.master.LoadBalancer;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.master.MasterFileSystem;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.master.MasterWalManager;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.master.MockNoopMasterServices;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.master.RegionState.State;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.master.ServerManager;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.master.procedure.RSProcedureDispatcher;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.procedure2.ProcedureEvent;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.procedure2.store.NoopProcedureStore;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.security.Superusers;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiRequest;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiResponse;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateRequest;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateResponse;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionAction;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionActionResult;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ResultOrException;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.util.FSUtils;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.mockito.Mockito;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.mockito.invocation.InvocationOnMock;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.mockito.stubbing.Answer;<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> * A mocked master services.<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * Tries to fake it. May not always work.<a name="line.75"></a>
-<span class="sourceLineNo">076</span> */<a name="line.76"></a>
-<span class="sourceLineNo">077</span>public class MockMasterServices extends MockNoopMasterServices {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  private final MasterFileSystem fileSystemManager;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  private final MasterWalManager walManager;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private final AssignmentManager assignmentManager;<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  private MasterProcedureEnv procedureEnv;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  private ProcedureExecutor&lt;MasterProcedureEnv&gt; procedureExecutor;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  private ProcedureStore procedureStore;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  private final ClusterConnection connection;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  private final LoadBalancer balancer;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  private final ServerManager serverManager;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  // Set of regions on a 'server'. Populated externally. Used in below faking 'cluster'.<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  private final NavigableMap&lt;ServerName, SortedSet&lt;byte []&gt;&gt; regionsToRegionServers;<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>  private final ProcedureEvent initialized = new ProcedureEvent("master initialized");<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  public static final String DEFAULT_COLUMN_FAMILY_NAME = "cf";<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  public static final ServerName MOCK_MASTER_SERVERNAME =<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      ServerName.valueOf("mockmaster.example.org", 1234, -1L);<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  public MockMasterServices(Configuration conf,<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      NavigableMap&lt;ServerName, SortedSet&lt;byte []&gt;&gt; regionsToRegionServers)<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  throws IOException {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    super(conf);<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    this.regionsToRegionServers = regionsToRegionServers;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    Superusers.initialize(conf);<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    this.fileSystemManager = new MasterFileSystem(this);<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    this.walManager = new MasterWalManager(this);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    // Mock an AM.<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    this.assignmentManager = new AssignmentManager(this, new MockRegionStateStore(this)) {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      public boolean isTableEnabled(final TableName tableName) {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>        return true;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      }<a name="line.108"></a>
-<span class="sourceLineNo">109</span><a name="line.109"></a>
-<span class="sourceLineNo">110</span>      public boolean isTableDisabled(final TableName tableName) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>        return false;<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>      @Override<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      protected boolean waitServerReportEvent(ServerName serverName, Procedure proc) {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>        // Make a report with current state of the server 'serverName' before we call wait..<a name="line.116"></a>
-<span class="sourceLineNo">117</span>        SortedSet&lt;byte []&gt; regions = regionsToRegionServers.get(serverName);<a name="line.117"></a>
-<span class="sourceLineNo">118</span>        getAssignmentManager().reportOnlineRegions(serverName, 0,<a name="line.118"></a>
-<span class="sourceLineNo">119</span>            regions == null? new HashSet&lt;byte []&gt;(): regions);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>        return super.waitServerReportEvent(serverName, proc);<a name="line.120"></a>
-<span class="sourceLineNo">121</span>      }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    };<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    this.balancer = LoadBalancerFactory.getLoadBalancer(conf);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    this.serverManager = new ServerManager(this);<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>    // Mock up a Client Interface<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    ClientProtos.ClientService.BlockingInterface ri =<a name="line.127"></a>
-<span class="sourceLineNo">128</span>        Mockito.mock(ClientProtos.ClientService.BlockingInterface.class);<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    MutateResponse.Builder builder = MutateResponse.newBuilder();<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    builder.setProcessed(true);<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    try {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      Mockito.when(ri.mutate((RpcController)Mockito.any(), (MutateRequest)Mockito.any())).<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        thenReturn(builder.build());<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    } catch (ServiceException se) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      throw ProtobufUtil.handleRemoteException(se);<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    try {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      Mockito.when(ri.multi((RpcController)Mockito.any(), (MultiRequest)Mockito.any())).<a name="line.138"></a>
-<span class="sourceLineNo">139</span>        thenAnswer(new Answer&lt;MultiResponse&gt;() {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>          @Override<a name="line.140"></a>
-<span class="sourceLineNo">141</span>          public MultiResponse answer(InvocationOnMock invocation) throws Throwable {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>            return buildMultiResponse( (MultiRequest)invocation.getArguments()[1]);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>          }<a name="line.143"></a>
-<span class="sourceLineNo">144</span>        });<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    } catch (ServiceException se) {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      throw ProtobufUtil.getRemoteException(se);<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    }<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    // Mock n ClusterConnection and an AdminProtocol implementation. Have the<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    // ClusterConnection return the HRI.  Have the HRI return a few mocked up responses<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    // to make our test work.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    this.connection =<a name="line.151"></a>
-<span class="sourceLineNo">152</span>        HConnectionTestingUtility.getMockedConnectionAndDecorate(getConfiguration(),<a name="line.152"></a>
-<span class="sourceLineNo">153</span>          Mockito.mock(AdminProtos.AdminService.BlockingInterface.class), ri, MOCK_MASTER_SERVERNAME,<a name="line.153"></a>
-<span class="sourceLineNo">154</span>          HRegionInfo.FIRST_META_REGIONINFO);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    // Set hbase.rootdir into test dir.<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    Path rootdir = FSUtils.getRootDir(getConfiguration());<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    FSUtils.setRootDir(getConfiguration(), rootdir);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    Mockito.mock(AdminProtos.AdminService.BlockingInterface.class);<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>  public void start(final int numServes, final RSProcedureDispatcher remoteDispatcher)<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      throws IOException {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    startProcedureExecutor(remoteDispatcher);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    this.assignmentManager.start();<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    for (int i = 0; i &lt; numServes; ++i) {<a name="line.165"></a>
-<span class="sourceLineNo">166</span>      serverManager.regionServerReport(<a name="line.166"></a>
-<span class="sourceLineNo">167</span>        ServerName.valueOf("localhost", 100 + i, 1), ServerLoad.EMPTY_SERVERLOAD);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    this.procedureExecutor.getEnvironment().setEventReady(initialized, true);<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  }<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>  @Override<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public void stop(String why) {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    stopProcedureExecutor();<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    this.assignmentManager.stop();<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>  private void startProcedureExecutor(final RSProcedureDispatcher remoteDispatcher)<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      throws IOException {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    final Configuration conf = getConfiguration();<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    final Path logDir = new Path(fileSystemManager.getRootDir(),<a name="line.181"></a>
-<span class="sourceLineNo">182</span>        MasterProcedureConstants.MASTER_PROCEDURE_LOGDIR);<a name="line.182"></a>
-<span class="sourceLineNo">183</span><a name="line.183"></a>
-<span class="sourceLineNo">184</span>    //procedureStore = new WALProcedureStore(conf, fileSystemManager.getFileSystem(), logDir,<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    //    new MasterProcedureEnv.WALStoreLeaseRecovery(this));<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    this.procedureStore = new NoopProcedureStore();<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    this.procedureStore.registerListener(new MasterProcedureEnv.MasterProcedureStoreListener(this));<a name="line.187"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.YouAreDeadException;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.client.HConnectionTestingUtility;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.master.LoadBalancer;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.master.MasterFileSystem;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.master.MasterWalManager;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.master.MockNoopMasterServices;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.master.RegionState.State;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.master.ServerManager;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.master.procedure.RSProcedureDispatcher;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.procedure2.ProcedureEvent;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.procedure2.store.NoopProcedureStore;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.security.Superusers;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiRequest;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiResponse;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateRequest;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateResponse;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionAction;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionActionResult;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ResultOrException;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.util.FSUtils;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.mockito.Mockito;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.mockito.invocation.InvocationOnMock;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.mockito.stubbing.Answer;<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>/**<a name="line.74"></a>
+<span class="sourceLineNo">075</span> * A mocked master services.<a name="line.75"></a>
+<span class="sourceLineNo">076</span> * Tries to fake it. May not always work.<a name="line.76"></a>
+<span class="sourceLineNo">077</span> */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>public class MockMasterServices extends MockNoopMasterServices {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private final MasterFileSystem fileSystemManager;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private final MasterWalManager walManager;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  private final AssignmentManager assignmentManager;<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>  private MasterProcedureEnv procedureEnv;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  private ProcedureExecutor&lt;MasterProcedureEnv&gt; procedureExecutor;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  private ProcedureStore procedureStore;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  private final ClusterConnection connection;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  private final LoadBalancer balancer;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  private final ServerManager serverManager;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  // Set of regions on a 'server'. Populated externally. Used in below faking 'cluster'.<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  private final NavigableMap&lt;ServerName, SortedSet&lt;byte []&gt;&gt; regionsToRegionServers;<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>  private final ProcedureEvent initialized = new ProcedureEvent("master initialized");<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  public static final String DEFAULT_COLUMN_FAMILY_NAME = "cf";<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  public static final ServerName MOCK_MASTER_SERVERNAME =<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      ServerName.valueOf("mockmaster.example.org", 1234, -1L);<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>  public MockMasterServices(Configuration conf,<a name="line.97"></a>
+<span class="sourceLineNo">098</span>      NavigableMap&lt;ServerName, SortedSet&lt;byte []&gt;&gt; regionsToRegionServers)<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  throws IOException {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    super(conf);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    this.regionsToRegionServers = regionsToRegionServers;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    Superusers.initialize(conf);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    this.fileSystemManager = new MasterFileSystem(this);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    this.walManager = new MasterWalManager(this);<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    // Mock an AM.<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    this.assignmentManager = new AssignmentManager(this, new MockRegionStateStore(this)) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      public boolean isTableEnabled(final TableName tableName) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        return true;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>      }<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>      public boolean isTableDisabled(final TableName tableName) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        return false;<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>      @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      protected boolean waitServerReportEvent(ServerName serverName, Procedure proc) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        // Make a report with current state of the server 'serverName' before we call wait..<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        SortedSet&lt;byte []&gt; regions = regionsToRegionServers.get(serverName);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        try {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>          getAssignmentManager().reportOnlineRegions(serverName, 0,<a name="line.120"></a>
+<span class="sourceLineNo">121</span>              regions == null? new HashSet&lt;byte []&gt;(): regions);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        } catch (YouAreDeadException e) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>          throw new RuntimeException(e);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        return super.waitServerReportEvent(serverName, proc);<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>    this.balancer = LoadBalancerFactory.getLoadBalancer(conf);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    this.serverManager = new ServerManager(this);<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>    // Mock up a Client Interface<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    ClientProtos.ClientService.BlockingInterface ri =<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        Mockito.mock(ClientProtos.ClientService.BlockingInterface.class);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    MutateResponse.Builder builder = MutateResponse.newBuilder();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    builder.setProcessed(true);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    try {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      Mockito.when(ri.mutate((RpcController)Mockito.any(), (MutateRequest)Mockito.any())).<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        thenReturn(builder.build());<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    } catch (ServiceException se) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      throw ProtobufUtil.handleRemoteException(se);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    try {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      Mockito.when(ri.multi((RpcController)Mockito.any(), (MultiRequest)Mockito.any())).<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        thenAnswer(new Answer&lt;MultiResponse&gt;() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>          @Override<a name="line.145"></a>
+<span class="sourceLineNo">146</span>          public MultiResponse answer(InvocationOnMock invocation) throws Throwable {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>            return buildMultiResponse( (MultiRequest)invocation.getArguments()[1]);<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>    } catch (ServiceException se) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      throw ProtobufUtil.getRemoteException(se);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    }<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    // Mock n ClusterConnection and an AdminProtocol implementation. Have the<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    // ClusterConnection return the HRI.  Have the HRI return a few mocked up responses<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    // to make our test work.<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    this.connection =<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        HConnectionTestingUtility.getMockedConnectionAndDecorate(getConfiguration(),<a name="line.157"></a>
+<span class="sourceLineNo">158</span>          Mockito.mock(AdminProtos.AdminService.BlockingInterface.class), ri, MOCK_MASTER_SERVERNAME,<a name="line.158"></a>
+<span class="sourceLineNo">159</span>          HRegionInfo.FIRST_META_REGIONINFO);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    // Set hbase.rootdir into test dir.<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    Path rootdir = FSUtils.getRootDir(getConfiguration());<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    FSUtils.setRootDir(getConfiguration(), rootdir);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    Mockito.mock(AdminProtos.AdminService.BlockingInterface.class);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  }<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>  public void start(final int numServes, final RSProcedureDispatcher remoteDispatcher)<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      throws IOException {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    startProcedureExecutor(remoteDispatcher);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    this.assignmentManager.start();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    for (int i = 0; i &lt; numServes; ++i) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>      serverManager.regionServerReport(<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        ServerName.valueOf("localhost", 100 + i, 1), ServerLoad.EMPTY_SERVERLOAD);<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    }<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    this.procedureExecutor.getEnvironment().setEventReady(initialized, true);<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>  @Override<a name="line.177"></a>
+<span class="sourceLineNo">178</span>  public void stop(String why) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    stopProcedureExecutor();<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    this.assignmentManager.stop();<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>  private void startProcedureExecutor(final RSProcedureDispatcher remoteDispatcher)<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      throws IOException {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    final Configuration conf = getConfiguration();<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    final Path logDir = new Path(fileSystemManager.getRootDir(),<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        MasterProcedureConstants.MASTER_PROCEDURE_LOGDIR);<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>    this.procedureEnv = new MasterProcedureEnv(this,<a name="line.189"></a>
-<span class="sourceLineNo">190</span>       remoteDispatcher != null ? remoteDispatcher : new RSProcedureDispatcher(this));<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>    this.procedureExecutor = new ProcedureExecutor(conf, procedureEnv, procedureStore,<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        procedureEnv.getProcedureScheduler());<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>    final int numThreads = conf.getInt(MasterProcedureConstants.MASTER_PROCEDURE_THREADS,<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        Math.max(Runtime.getRuntime().availableProcessors(),<a name="line.196"></a>
-<span class="sourceLineNo">197</span>          MasterProcedureConstants.DEFAULT_MIN_MASTER_PROCEDURE_THREADS));<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    final boolean abortOnCorruption = conf.getBoolean(<a name="line.198"></a>
-<span class="sourceLineNo">199</span>        MasterProcedureConstants.EXECUTOR_ABORT_ON_CORRUPTION,<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        MasterProcedureConstants.DEFAULT_EXECUTOR_ABORT_ON_CORRUPTION);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    this.procedureStore.start(numThreads);<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    this.procedureExecutor.start(numThreads, abortOnCorruption);<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    this.procedureEnv.getRemoteDispatcher().start();<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 void stopProcedureExecutor() {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    if (this.procedureEnv != null) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      this.procedureEnv.getRemoteDispatcher().stop();<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    }<a name="line.209"></a>
+<span class="sourceLineNo">189</span>    //procedureStore = new WALProcedureStore(conf, fileSystemManager.getFileSystem(), logDir,<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    //    new MasterProcedureEnv.WALStoreLeaseRecovery(this));<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    this.procedureStore = new NoopProcedureStore();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    this.procedureStore.registerListener(new MasterProcedureEnv.MasterProcedureStoreListener(this));<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>    this.procedureEnv = new MasterProcedureEnv(this,<a name="line.194"></a>
+<span class="sourceLineNo">195</span>       remoteDispatcher != null ? remoteDispatcher : new RSProcedureDispatcher(this));<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>    this.procedureExecutor = new ProcedureExecutor(conf, procedureEnv, procedureStore,<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        procedureEnv.getProcedureScheduler());<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>    final int numThreads = conf.getInt(MasterProcedureConstants.MASTER_PROCEDURE_THREADS,<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        Math.max(Runtime.getRuntime().availableProcessors(),<a name="line.201"></a>
+<span class="sourceLineNo">202</span>          MasterProcedureConstants.DEFAULT_MIN_MASTER_PROCEDURE_THREADS));<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    final boolean abortOnCorruption = conf.getBoolean(<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        MasterProcedureConstants.EXECUTOR_ABORT_ON_CORRUPTION,<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        MasterProcedureConstants.DEFAULT_EXECUTOR_ABORT_ON_CORRUPTION);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    this.procedureStore.start(numThreads);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    this.procedureExecutor.start(numThreads, abortOnCorruption);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    this.procedureEnv.getRemoteDispatcher().start();<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>    if (this.procedureExecutor != null) {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      this.procedureExecutor.stop();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    }<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>    if (this.procedureStore != null) {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      this.procedureStore.stop(isAborted());<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">211</span>  private void stopProcedureExecutor() {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    if (this.procedureEnv != null) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      this.procedureEnv.getRemoteDispatcher().stop();<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>    if (this.procedureExecutor != null) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      this.procedureExecutor.stop();<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>  @Override<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  public boolean isInitialized() {<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    return true;<a name="line.222"></a>
+<span class="sourceLineNo">220</span>    if (this.procedureStore != null) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      this.procedureStore.stop(isAborted());<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>  @Override<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  public ProcedureEvent getInitializedEvent() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.initialized;<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  public boolean isInitialized() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return true;<a name="line.227"></a>
 <span class="sourceLineNo">228</span>  }<a name="line.228"></a>
 <span class="sourceLineNo">229</span><a name="line.229"></a>
 <span class="sourceLineNo">230</span>  @Override<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  public MasterFileSystem getMasterFileSystem() {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    return fileSystemManager;<a name="line.232"></a>
+<span class="sourceLineNo">231</span>  public ProcedureEvent getInitializedEvent() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    return this.initialized;<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>  @Override<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  public MasterWalManager getMasterWalManager() {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    return walManager;<a name="line.237"></a>
+<span class="sourceLineNo">236</span>  public MasterFileSystem getMasterFileSystem() {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    return fileSystemManager;<a name="line.237"></a>
 <span class="sourceLineNo">238</span>  }<a name="line.238"></a>
 <span class="sourceLineNo">239</span><a name="line.239"></a>
 <span class="sourceLineNo">240</span>  @Override<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  public ProcedureExecutor&lt;MasterProcedureEnv&gt; getMasterProcedureExecutor() {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    return procedureExecutor;<a name="line.242"></a>
+<span class="sourceLineNo">241</span>  public MasterWalManager getMasterWalManager() {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    return walManager;<a name="line.242"></a>
 <span class="sourceLineNo">243</span>  }<a name="line.243"></a>
 <span class="sourceLineNo">244</span><a name="line.244"></a>
 <span class="sourceLineNo">245</span>  @Override<a name="line.245"></a>
-<span class="sourceLineNo">246</span>  public LoadBalancer getLoadBalancer() {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    return balancer;<a name="line.247"></a>
+<span class="sourceLineNo">246</span>  public ProcedureExecutor&lt;MasterProcedureEnv&gt; getMasterProcedureExecutor() {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    return procedureExecutor;<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>  @Override<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  public ServerManager getServerManager() {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    return serverManager;<a name="line.252"></a>
+<span class="sourceLineNo">251</span>  public LoadBalancer getLoadBalancer() {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    return balancer;<a name="line.252"></a>
 <span class="sourceLineNo">253</span>  }<a name="line.253"></a>
 <span class="sourceLineNo">254</span><a name="line.254"></a>
 <span class="sourceLineNo">255</span>  @Override<a name="line.255"></a>
-<span class="sourceLineNo">256</span>  public AssignmentManager getAssignmentManager() {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    return assignmentManager;<a name="line.257"></a>
+<span class="sourceLineNo">256</span>  public ServerManager getServerManager() {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    return serverManager;<a name="line.257"></a>
 <span class="sourceLineNo">258</span>  }<a name="line.258"></a>
 <span class="sourceLineNo">259</span><a name="line.259"></a>
 <span class="sourceLineNo">260</span>  @Override<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  public ClusterConnection getConnection() {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    return this.connection;<a name="line.262"></a>
+<span class="sourceLineNo">261</span>  public AssignmentManager getAssignmentManager() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    return assignmentManager;<a name="line.262"></a>
 <span class="sourceLineNo">263</span>  }<a name="line.263"></a>
 <span class="sourceLineNo">264</span><a name="line.264"></a>
 <span class="sourceLineNo">265</span>  @Override<a name="line.265"></a>
-<span class="sourceLineNo">266</span>  public ServerName getServerName() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    return MOCK_MASTER_SERVERNAME;<a name="line.267"></a>
+<span class="sourceLineNo">266</span>  public ClusterConnection getConnection() {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    return this.connection;<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>  @Override<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  public CoordinatedStateManager getCoordinatedStateManager() {<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    return super.getCoordinatedStateManager();<a name="line.272"></a>
+<span class="sourceLineNo">271</span>  public ServerName getServerName() {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    return MOCK_MASTER_SERVERNAME;<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>  private static class MockRegionStateStore extends RegionStateStore {<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    public MockRegionStateStore(final MasterServices master) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      super(master);<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    }<a name="line.278"></a>
+<span class="sourceLineNo">275</span>  @Override<a name="line.275"></a>
+<span class="sourceLineNo">276</span>  public CoordinatedStateManager getCoordinatedStateManager() {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    return super.getCoordinatedStateManager();<a name="line.277"></a>
+<span class="sourceLineNo">278</span>  }<a name="line.278"></a>
 <span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>    @Override<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    public void start() throws IOException {<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>    @Override<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    public void stop() {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    }<a name="line.286"></a>
-<span class="sourceLineNo">287</span><a name="line.287"></a>
-<span class="sourceLineNo">288</span>    @Override<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    public void updateRegionLocation(HRegionInfo regionInfo, State state, ServerName regionLocation,<a name="line.289"></a>
-<span class="sourceLineNo">290</span>        ServerName lastHost, long openSeqNum, long pid) throws IOException {<a name="line.290"></a>
+<span class="sourceLineNo">280</span>  private static class MockRegionStateStore extends RegionStateStore {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    public MockRegionStateStore(final MasterServices master) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      super(master);<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>    @Override<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    public void start() throws IOException {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    }<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>    @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    public void stop() {<a name="line.290"></a>
 <span class="sourceLineNo">291</span>    }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  }<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>  @Override<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  public TableDescriptors getTableDescriptors() {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    return new TableDescriptors() {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      @Override<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      public HTableDescriptor remove(TableName tablename) throws IOException {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>        // noop<a name="line.299"></a>
-<span class="sourceLineNo">300</span>        return null;<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      }<a name="line.301"></a>
-<span class="sourceLineNo">302</span><a name="line.302"></a>
-<span class="sourceLineNo">303</span>      @Override<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      public Map&lt;String, HTableDescriptor&gt; getAll() throws IOException {<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        // noop<a name="line.305"></a>
-<span class="sourceLineNo">306</span>        return null;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>      }<a name="line.307"></a>
-<span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span>      @Override public Map&lt;String, HTableDescriptor&gt; getAllDescriptors() throws IOException {<a name="line.309"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>    @Override<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    public void updateRegionLocation(HRegionInfo regionInfo, State state, ServerName regionLocation,<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        ServerName lastHost, long openSeqNum, long pid) throws IOException {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    }<a name="line.296"></a>
+<span class="sourceLineNo">297</span>  }<a name="line.297"></a>
+<span class="sourceLineNo">298</span><a name="line.298"></a>
+<span class="sourceLineNo">299</span>  @Override<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  public TableDescriptors getTableDescriptors() {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    return new TableDescriptors() {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      @Override<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      public HTableDescriptor remove(TableName tablename) throws IOException {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        // noop<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        return null;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      }<a name="line.306"></a>
+<span class="sourceLineNo">307</span><a name="line.307"></a>
+<span class="sourceLineNo">308</span>      @Override<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      public Map&lt;String, HTableDescriptor&gt; getAll() throws IOException {<a name="line.309"></a>
 <span class="sourceLineNo">310</span>        // noop<a name="line.310"></a>
 <span class="sourceLineNo">311</span>        return null;<a name="line.311"></a>
 <span class="sourceLineNo">312</span>      }<a name="line.312"></a>
 <span class="sourceLineNo">313</span><a name="line.313"></a>
-<span class="sourceLineNo">314</span>      @Override<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      public HTableDescriptor get(TableName tablename) throws IOException {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        HTableDescriptor htd = new HTableDescriptor(tablename);<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        htd.addFamily(new HColumnDescriptor(DEFAULT_COLUMN_FAMILY_NAME));<a name="line.317"></a>
-<span class="sourceLineNo">318</span>        return htd;<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>      @Override<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      public Map&lt;String, HTableDescriptor&gt; getByNamespace(String name) throws IOException {<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        return null;<a name="line.323"></a>
+<span class="sourceLineNo">314</span>      @Override public Map&lt;String, HTableDescriptor&gt; getAllDescriptors() throws IOException {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        // noop<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        return null;<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      }<a name="line.317"></a>
+<span class="sourceLineNo">318</span><a name="line.318"></a>
+<span class="sourceLineNo">319</span>      @Override<a name="line.319"></a>
+<span class="sourceLineNo">320</span>      public HTableDescriptor get(TableName tablename) throws IOException {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        HTableDescriptor htd = new HTableDescriptor(tablename);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>        htd.addFamily(new HColumnDescriptor(DEFAULT_COLUMN_FAMILY_NAME));<a name="line.322"></a>
+<span class="sourceLineNo">323</span>        return htd;<a name="line.323"></a>
 <span class="sourceLineNo">324</span>      }<a name="line.324"></a>
 <span class="sourceLineNo">325</span><a name="line.325"></a>
 <span class="sourceLineNo">326</span>      @Override<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      public void add(HTableDescriptor htd) throws IOException {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>        // noop<a name="line.328"></a>
+<span class="sourceLineNo">327</span>      public Map&lt;String, HTableDescriptor&gt; getByNamespace(String name) throws IOException {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        return null;<a name="line.328"></a>
 <span class="sourceLineNo">329</span>      }<a name="line.329"></a>
 <span class="sourceLineNo">330</span><a name="line.330"></a>
 <span class="sourceLineNo">331</span>      @Override<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      public void setCacheOn() throws IOException {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      }<a name="line.333"></a>
-<span class="sourceLineNo">334</span><a name="line.334"></a>
-<span class="sourceLineNo">335</span>      @Override<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      public void setCacheOff() throws IOException {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      }<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    };<a name="line.338"></a>
-<span class="sourceLineNo">339</span>  }<a name="line.339"></a>
-<span class="sourceLineNo">340</span><a name="line.340"></a>
-<span class="sourceLineNo">341</span>  private static MultiResponse buildMultiResponse(MultiRequest req) {<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    MultiResponse.Builder builder = MultiResponse.newBuilder();<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    RegionActionResult.Builder regionActionResultBuilder =<a name="line.343"></a>
-<span class="sourceLineNo">344</span>        RegionActionResult.newBuilder();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    ResultOrException.Builder roeBuilder = ResultOrException.newBuilder();<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    for (RegionAction regionAction: req.getRegionActionList()) {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      regionActionResultBuilder.clear();<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      for (ClientProtos.Action action: regionAction.getActionList()) {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>        roeBuilder.clear();<a name="line.349"></a>
-<span class="sourceLineNo">350</span>        roeBuilder.setResult(ClientProtos.Result.getDefaultInstance());<a name="line.350"></a>
-<span class="sourceLineNo">351</span>        roeBuilder.setIndex(action.getIndex());<a name="line.351"></a>
-<span class="sourceLineNo">352</span>        regionActionResultBuilder.addResultOrException(roeBuilder.build());<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      }<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      builder.addRegionActionResult(regionActionResultBuilder.build());<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    }<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    return builder.build();<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  }<a name="line.357"></a>
-<span class="sourceLineNo">358</span>}<a name="line.358"></a>
+<span class="sourceLineNo">332</span>      public void add(HTableDescriptor htd) throws IOException {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        // noop<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>      @Override<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      public void setCacheOn() throws IOException {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      }<a name="line.338"></a>
+<span class="sourceLineNo">339</span><a name="line.339"></a>
+<span class="sourceLineNo">340</span>      @Override<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      public void setCacheOff() throws IOException {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      }<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    };<a name="line.343"></a>
+<span class="sourceLineNo">344</span>  }<a name="line.344"></a>
+<span class="sourceLineNo">345</span><a name="line.345"></a>
+<span class="sourceLineNo">346</span>  private static MultiResponse buildMultiResponse(MultiRequest req) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    MultiResponse.Builder builder = MultiResponse.newBuilder();<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    RegionActionResult.Builder regionActionResultBuilder =<a name="line.348"></a>
+<span class="sourceLineNo">349</span>        RegionActionResult.newBuilder();<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    ResultOrException.Builder roeBuilder = ResultOrException.newBuilder();<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    for (RegionAction regionAction: req.getRegionActionList()) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      regionActionResultBuilder.clear();<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      for (ClientProtos.Action action: regionAction.getActionList()) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        roeBuilder.clear();<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        roeBuilder.setResult(ClientProtos.Result.getDefaultInstance());<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        roeBuilder.setIndex(action.getIndex());<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        regionActionResultBuilder.addResultOrException(roeBuilder.build());<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      builder.addRegionActionResult(regionActionResultBuilder.build());<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    return builder.build();<a name="line.361"></a>
+<span class="sourceLineNo">362</span>  }<a name="line.362"></a>
+<span class="sourceLineNo">363</span>}<a name="line.363"></a>
 
 
 


[11/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html b/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html
deleted file mode 100644
index f8da5e7..0000000
--- a/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.ZKDisconnectEventWatcher.html
+++ /dev/null
@@ -1,792 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
-<title>Source code</title>
-<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
-</head>
-<body>
-<div class="sourceContainer">
-<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
-<span class="sourceLineNo">002</span> *<a name="line.2"></a>
-<span class="sourceLineNo">003</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.3"></a>
-<span class="sourceLineNo">004</span> * or more contributor license agreements.  See the NOTICE file<a name="line.4"></a>
-<span class="sourceLineNo">005</span> * distributed with this work for additional information<a name="line.5"></a>
-<span class="sourceLineNo">006</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.6"></a>
-<span class="sourceLineNo">007</span> * to you under the Apache License, Version 2.0 (the<a name="line.7"></a>
-<span class="sourceLineNo">008</span> * "License"); you may not use this file except in compliance<a name="line.8"></a>
-<span class="sourceLineNo">009</span> * with the License.  You may obtain a copy of the License at<a name="line.9"></a>
-<span class="sourceLineNo">010</span> *<a name="line.10"></a>
-<span class="sourceLineNo">011</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.11"></a>
-<span class="sourceLineNo">012</span> *<a name="line.12"></a>
-<span class="sourceLineNo">013</span> * Unless required by applicable law or agreed to in writing, software<a name="line.13"></a>
-<span class="sourceLineNo">014</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.14"></a>
-<span class="sourceLineNo">015</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.15"></a>
-<span class="sourceLineNo">016</span> * See the License for the specific language governing permissions and<a name="line.16"></a>
-<span class="sourceLineNo">017</span> * limitations under the License.<a name="line.17"></a>
-<span class="sourceLineNo">018</span> */<a name="line.18"></a>
-<span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.zookeeper;<a name="line.19"></a>
-<span class="sourceLineNo">020</span><a name="line.20"></a>
-<span class="sourceLineNo">021</span>import java.io.Closeable;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import java.io.IOException;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.util.ArrayList;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.util.HashMap;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.util.List;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.util.Map;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.util.concurrent.CopyOnWriteArrayList;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.util.concurrent.CountDownLatch;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.util.concurrent.ExecutorService;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.concurrent.Executors;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.util.regex.Matcher;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import java.util.regex.Pattern;<a name="line.33"></a>
-<span class="sourceLineNo">034</span><a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.commons.logging.Log;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.commons.logging.LogFactory;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.conf.Configuration;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.Abortable;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.AuthUtil;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.HConstants;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.security.Superusers;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.zookeeper.KeeperException;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.zookeeper.WatchedEvent;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.zookeeper.Watcher;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.zookeeper.ZooDefs.Ids;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.zookeeper.ZooDefs.Perms;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.zookeeper.data.ACL;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.zookeeper.data.Id;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.zookeeper.data.Stat;<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>/**<a name="line.56"></a>
-<span class="sourceLineNo">057</span> * Acts as the single ZooKeeper Watcher.  One instance of this is instantiated<a name="line.57"></a>
-<span class="sourceLineNo">058</span> * for each Master, RegionServer, and client process.<a name="line.58"></a>
-<span class="sourceLineNo">059</span> *<a name="line.59"></a>
-<span class="sourceLineNo">060</span> * &lt;p&gt;This is the only class that implements {@link Watcher}.  Other internal<a name="line.60"></a>
-<span class="sourceLineNo">061</span> * classes which need to be notified of ZooKeeper events must register with<a name="line.61"></a>
-<span class="sourceLineNo">062</span> * the local instance of this watcher via {@link #registerListener}.<a name="line.62"></a>
-<span class="sourceLineNo">063</span> *<a name="line.63"></a>
-<span class="sourceLineNo">064</span> * &lt;p&gt;This class also holds and manages the connection to ZooKeeper.  Code to<a name="line.64"></a>
-<span class="sourceLineNo">065</span> * deal with connection related events and exceptions are handled here.<a name="line.65"></a>
-<span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>@InterfaceAudience.Private<a name="line.67"></a>
-<span class="sourceLineNo">068</span>public class ZooKeeperWatcher implements Watcher, Abortable, Closeable {<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  private static final Log LOG = LogFactory.getLog(ZooKeeperWatcher.class);<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>  // Identifier for this watcher (for logging only).  It is made of the prefix<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  // passed on construction and the zookeeper sessionid.<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private String prefix;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  private String identifier;<a name="line.74"></a>
-<span class="sourceLineNo">075</span><a name="line.75"></a>
-<span class="sourceLineNo">076</span>  // zookeeper quorum<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  private String quorum;<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>  // zookeeper connection<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private final RecoverableZooKeeper recoverableZooKeeper;<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  // abortable in case of zk failure<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  protected final Abortable abortable;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  // Used if abortable is null<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  private boolean aborted = false;<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  public final ZNodePaths znodePaths;<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>  // listeners to be notified<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  private final List&lt;ZooKeeperListener&gt; listeners = new CopyOnWriteArrayList&lt;&gt;();<a name="line.90"></a>
-<span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span>  // Used by ZKUtil:waitForZKConnectionIfAuthenticating to wait for SASL<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  // negotiation to complete<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  public CountDownLatch saslLatch = new CountDownLatch(1);<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  // Connection timeout on disconnect event<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  private long connWaitTimeOut;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  private AtomicBoolean connected = new AtomicBoolean(false);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  private boolean forceAbortOnZKDisconnect;<a name="line.99"></a>
-<span class="sourceLineNo">100</span> <a name="line.100"></a>
-<span class="sourceLineNo">101</span>  // Execute service for zookeeper disconnect event watcher<a name="line.101"></a>
-<span class="sourceLineNo">102</span>  private ExecutorService zkEventWatcherExecService = null;<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>  private final Configuration conf;<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>  /* A pattern that matches a Kerberos name, borrowed from Hadoop's KerberosName */<a name="line.107"></a>
-<span class="sourceLineNo">108</span>  private static final Pattern NAME_PATTERN = Pattern.compile("([^/@]*)(/([^/@]*))?@([^/@]*)");<a name="line.108"></a>
-<span class="sourceLineNo">109</span><a name="line.109"></a>
-<span class="sourceLineNo">110</span>  /**<a name="line.110"></a>
-<span class="sourceLineNo">111</span>   * Instantiate a ZooKeeper connection and watcher.<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   * @param identifier string that is passed to RecoverableZookeeper to be used as<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   * identifier for this instance. Use null for default.<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   * @throws IOException<a name="line.114"></a>
-<span class="sourceLineNo">115</span>   * @throws ZooKeeperConnectionException<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   */<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  public ZooKeeperWatcher(Configuration conf, String identifier,<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      Abortable abortable) throws ZooKeeperConnectionException, IOException {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    this(conf, identifier, abortable, false);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>  }<a name="line.120"></a>
-<span class="sourceLineNo">121</span><a name="line.121"></a>
-<span class="sourceLineNo">122</span>  /**<a name="line.122"></a>
-<span class="sourceLineNo">123</span>   * Instantiate a ZooKeeper connection and watcher.<a name="line.123"></a>
-<span class="sourceLineNo">124</span>   * @param conf<a name="line.124"></a>
-<span class="sourceLineNo">125</span>   * @param identifier string that is passed to RecoverableZookeeper to be used as identifier for<a name="line.125"></a>
-<span class="sourceLineNo">126</span>   *          this instance. Use null for default.<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * @param abortable Can be null if there is on error there is no host to abort: e.g. client<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   *          context.<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   * @param canCreateBaseZNode<a name="line.129"></a>
-<span class="sourceLineNo">130</span>   * @throws IOException<a name="line.130"></a>
-<span class="sourceLineNo">131</span>   * @throws ZooKeeperConnectionException<a name="line.131"></a>
-<span class="sourceLineNo">132</span>   */<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  public ZooKeeperWatcher(Configuration conf, String identifier,<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      Abortable abortable, boolean canCreateBaseZNode)<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  throws IOException, ZooKeeperConnectionException {<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    this(conf, identifier, abortable, canCreateBaseZNode, false);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>  }<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>  /**<a name="line.139"></a>
-<span class="sourceLineNo">140</span>   * Instantiate a ZooKeeper connection and watcher.<a name="line.140"></a>
-<span class="sourceLineNo">141</span>   * @param conf Configuration<a name="line.141"></a>
-<span class="sourceLineNo">142</span>   * @param identifier string that is passed to RecoverableZookeeper to be used as identifier for<a name="line.142"></a>
-<span class="sourceLineNo">143</span>   *          this instance. Use null for default.<a name="line.143"></a>
-<span class="sourceLineNo">144</span>   * @param abortable Can be null if there is on error there is no host to abort: e.g. client<a name="line.144"></a>
-<span class="sourceLineNo">145</span>   *          context.<a name="line.145"></a>
-<span class="sourceLineNo">146</span>   * @param canCreateBaseZNode whether create base node.<a name="line.146"></a>
-<span class="sourceLineNo">147</span>   * @param forceAbortOnZKDisconnect abort the watcher if true.<a name="line.147"></a>
-<span class="sourceLineNo">148</span>   * @throws IOException when any IO exception<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   * @throws ZooKeeperConnectionException when any zookeeper connection exception<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   */<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  public ZooKeeperWatcher(Configuration conf, String identifier, Abortable abortable,<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      boolean canCreateBaseZNode, boolean forceAbortOnZKDisconnect) throws IOException,<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      ZooKeeperConnectionException {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    this.conf = conf;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    this.quorum = ZKConfig.getZKQuorumServersString(conf);<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    this.prefix = identifier;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    // Identifier will get the sessionid appended later below down when we<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    // handle the syncconnect event.<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    this.identifier = identifier + "0x0";<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    this.abortable = abortable;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    this.znodePaths = new ZNodePaths(conf);<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    // On Disconnected event a thread will wait for sometime (2/3 of zookeeper.session.timeout),<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    // it will abort the process if no SyncConnected event reported by the time.<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    connWaitTimeOut = this.conf.getLong("zookeeper.session.timeout", 90000) * 2 / 3;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    PendingWatcher pendingWatcher = new PendingWatcher();<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    this.recoverableZooKeeper = ZKUtil.connect(conf, quorum, pendingWatcher, identifier);<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    pendingWatcher.prepare(this);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    if (canCreateBaseZNode) {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      try {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>        createBaseZNodes();<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      } catch (ZooKeeperConnectionException zce) {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>        try {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>          this.recoverableZooKeeper.close();<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        } catch (InterruptedException ie) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>          LOG.debug("Encountered InterruptedException when closing " + this.recoverableZooKeeper);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>          Thread.currentThread().interrupt();<a name="line.176"></a>
-<span class="sourceLineNo">177</span>        }<a name="line.177"></a>
-<span class="sourceLineNo">178</span>        throw zce;<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>    this.forceAbortOnZKDisconnect = forceAbortOnZKDisconnect;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    if (this.forceAbortOnZKDisconnect) {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      this.zkEventWatcherExecService = Executors.newSingleThreadExecutor();<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>  private void createBaseZNodes() throws ZooKeeperConnectionException {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    try {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      // Create all the necessary "directories" of znodes<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      ZKUtil.createWithParents(this, znodePaths.baseZNode);<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      ZKUtil.createAndFailSilent(this, znodePaths.rsZNode);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      ZKUtil.createAndFailSilent(this, znodePaths.drainingZNode);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      ZKUtil.createAndFailSilent(this, znodePaths.tableZNode);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      ZKUtil.createAndFailSilent(this, znodePaths.splitLogZNode);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      ZKUtil.createAndFailSilent(this, znodePaths.backupMasterAddressesZNode);<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      ZKUtil.createAndFailSilent(this, znodePaths.tableLockZNode);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      ZKUtil.createAndFailSilent(this, znodePaths.recoveringRegionsZNode);<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      ZKUtil.createAndFailSilent(this, znodePaths.masterMaintZNode);<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    } catch (KeeperException e) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      throw new ZooKeeperConnectionException(<a name="line.200"></a>
-<span class="sourceLineNo">201</span>          prefix("Unexpected KeeperException creating base node"), e);<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>  /** Returns whether the znode is supposed to be readable by the client<a name="line.205"></a>
-<span class="sourceLineNo">206</span>   * and DOES NOT contain sensitive information (world readable).*/<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  public boolean isClientReadable(String node) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    // Developer notice: These znodes are world readable. DO NOT add more znodes here UNLESS<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    // all clients need to access this data to work. Using zk for sharing data to clients (other<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    // than service lookup case is not a recommended design pattern.<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    return<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        node.equals(znodePaths.baseZNode) ||<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        znodePaths.isAnyMetaReplicaZNode(node) ||<a name="line.213"></a>
-<span class="sourceLineNo">214</span>        node.equals(znodePaths.masterAddressZNode) ||<a name="line.214"></a>
-<span class="sourceLineNo">215</span>        node.equals(znodePaths.clusterIdZNode)||<a name="line.215"></a>
-<span class="sourceLineNo">216</span>        node.equals(znodePaths.rsZNode) ||<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        // /hbase/table and /hbase/table/foo is allowed, /hbase/table-lock is not<a name="line.217"></a>
-<span class="sourceLineNo">218</span>        node.equals(znodePaths.tableZNode) ||<a name="line.218"></a>
-<span class="sourceLineNo">219</span>        node.startsWith(znodePaths.tableZNode + "/");<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>  /**<a name="line.222"></a>
-<span class="sourceLineNo">223</span>   * On master start, we check the znode ACLs under the root directory and set the ACLs properly<a name="line.223"></a>
-<span class="sourceLineNo">224</span>   * if needed. If the cluster goes from an unsecure setup to a secure setup, this step is needed<a name="line.224"></a>
-<span class="sourceLineNo">225</span>   * so that the existing znodes created with open permissions are now changed with restrictive<a name="line.225"></a>
-<span class="sourceLineNo">226</span>   * perms.<a name="line.226"></a>
-<span class="sourceLineNo">227</span>   */<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  public void checkAndSetZNodeAcls() {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    if (!ZKUtil.isSecureZooKeeper(getConfiguration())) {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      LOG.info("not a secure deployment, proceeding");<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      return;<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>    // Check the base znodes permission first. Only do the recursion if base znode's perms are not<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    // correct.<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    try {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      List&lt;ACL&gt; actualAcls = recoverableZooKeeper.getAcl(znodePaths.baseZNode, new Stat());<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>      if (!isBaseZnodeAclSetup(actualAcls)) {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>        LOG.info("setting znode ACLs");<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        setZnodeAclsRecursive(znodePaths.baseZNode);<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      }<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    } catch(KeeperException.NoNodeException nne) {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      return;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    } catch(InterruptedException ie) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      interruptedExceptionNoThrow(ie, false);<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    } catch (IOException|KeeperException e) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      LOG.warn("Received exception while checking and setting zookeeper ACLs", e);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    }<a name="line.249"></a>
-<span class="sourceLineNo">250</span>  }<a name="line.250"></a>
-<span class="sourceLineNo">251</span><a name="line.251"></a>
-<span class="sourceLineNo">252</span>  /**<a name="line.252"></a>
-<span class="sourceLineNo">253</span>   * Set the znode perms recursively. This will do post-order recursion, so that baseZnode ACLs<a name="line.253"></a>
-<span class="sourceLineNo">254</span>   * will be set last in case the master fails in between.<a name="line.254"></a>
-<span class="sourceLineNo">255</span>   * @param znode<a name="line.255"></a>
-<span class="sourceLineNo">256</span>   */<a name="line.256"></a>
-<span class="sourceLineNo">257</span>  private void setZnodeAclsRecursive(String znode) throws KeeperException, InterruptedException {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    List&lt;String&gt; children = recoverableZooKeeper.getChildren(znode, false);<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>    for (String child : children) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      setZnodeAclsRecursive(ZKUtil.joinZNode(znode, child));<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    List&lt;ACL&gt; acls = ZKUtil.createACL(this, znode, true);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    LOG.info("Setting ACLs for znode:" + znode + " , acl:" + acls);<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    recoverableZooKeeper.setAcl(znode, acls, -1);<a name="line.265"></a>
-<span class="sourceLineNo">266</span>  }<a name="line.266"></a>
-<span class="sourceLineNo">267</span><a name="line.267"></a>
-<span class="sourceLineNo">268</span>  /**<a name="line.268"></a>
-<span class="sourceLineNo">269</span>   * Checks whether the ACLs returned from the base znode (/hbase) is set for secure setup.<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * @param acls acls from zookeeper<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * @return whether ACLs are set for the base znode<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * @throws IOException<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   */<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private boolean isBaseZnodeAclSetup(List&lt;ACL&gt; acls) throws IOException {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    if (LOG.isDebugEnabled()) {<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      LOG.debug("Checking znode ACLs");<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    }<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    String[] superUsers = conf.getStrings(Superusers.SUPERUSER_CONF_KEY);<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    // Check whether ACL set for all superusers<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    if (superUsers != null &amp;&amp; !checkACLForSuperUsers(superUsers, acls)) {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      return false;<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>    // this assumes that current authenticated user is the same as zookeeper client user<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    // configured via JAAS<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    String hbaseUser = UserGroupInformation.getCurrentUser().getShortUserName();<a name="line.286"></a>
-<span class="sourceLineNo">287</span><a name="line.287"></a>
-<span class="sourceLineNo">288</span>    if (acls.isEmpty()) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      if (LOG.isDebugEnabled()) {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>        LOG.debug("ACL is empty");<a name="line.290"></a>
-<span class="sourceLineNo">291</span>      }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      return false;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    }<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>    for (ACL acl : acls) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      int perms = acl.getPerms();<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      Id id = acl.getId();<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      // We should only set at most 3 possible ACLs for 3 Ids. One for everyone, one for superuser<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      // and one for the hbase user<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      if (Ids.ANYONE_ID_UNSAFE.equals(id)) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        if (perms != Perms.READ) {<a name="line.301"></a>
-<span class="sourceLineNo">302</span>          if (LOG.isDebugEnabled()) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>            LOG.debug(String.format("permissions for '%s' are not correct: have 0x%x, want 0x%x",<a name="line.303"></a>
-<span class="sourceLineNo">304</span>              id, perms, Perms.READ));<a name="line.304"></a>
-<span class="sourceLineNo">305</span>          }<a name="line.305"></a>
-<span class="sourceLineNo">306</span>          return false;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        }<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      } else if (superUsers != null &amp;&amp; isSuperUserId(superUsers, id)) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>        if (perms != Perms.ALL) {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>          if (LOG.isDebugEnabled()) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>            LOG.debug(String.format("permissions for '%s' are not correct: have 0x%x, want 0x%x",<a name="line.311"></a>
-<span class="sourceLineNo">312</span>              id, perms, Perms.ALL));<a name="line.312"></a>
-<span class="sourceLineNo">313</span>          }<a name="line.313"></a>
-<span class="sourceLineNo">314</span>          return false;<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      } else if ("sasl".equals(id.getScheme())) {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        String name = id.getId();<a name="line.317"></a>
-<span class="sourceLineNo">318</span>        // If ZooKeeper recorded the Kerberos full name in the ACL, use only the shortname<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        Matcher match = NAME_PATTERN.matcher(name);<a name="line.319"></a>
-<span class="sourceLineNo">320</span>        if (match.matches()) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          name = match.group(1);<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        if (name.equals(hbaseUser)) {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>          if (perms != Perms.ALL) {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>            if (LOG.isDebugEnabled()) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>              LOG.debug(String.format("permissions for '%s' are not correct: have 0x%x, want 0x%x",<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                id, perms, Perms.ALL));<a name="line.327"></a>
-<span class="sourceLineNo">328</span>            }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            return false;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>          }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>        } else {<a name="line.331"></a>
-<span class="sourceLineNo">332</span>          if (LOG.isDebugEnabled()) {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>            LOG.debug("Unexpected shortname in SASL ACL: " + id);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>          }<a name="line.334"></a>
-<span class="sourceLineNo">335</span>          return false;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>        }<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      } else {<a name="line.337"></a>
-<span class="sourceLineNo">338</span>        if (LOG.isDebugEnabled()) {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>          LOG.debug("unexpected ACL id '" + id + "'");<a name="line.339"></a>
-<span class="sourceLineNo">340</span>        }<a name="line.340"></a>
-<span class="sourceLineNo">341</span>        return false;<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      }<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    }<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return true;<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  /*<a name="line.347"></a>
-<span class="sourceLineNo">348</span>   * Validate whether ACL set for all superusers.<a name="line.348"></a>
-<span class="sourceLineNo">349</span>   */<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  private boolean checkACLForSuperUsers(String[] superUsers, List&lt;ACL&gt; acls) {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    for (String user : superUsers) {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      boolean hasAccess = false;<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      // TODO: Validate super group members also when ZK supports setting node ACL for groups.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      if (!AuthUtil.isGroupPrincipal(user)) {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>        for (ACL acl : acls) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>          if (user.equals(acl.getId().getId())) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>            if (acl.getPerms() == Perms.ALL) {<a name="line.357"></a>
-<span class="sourceLineNo">358</span>              hasAccess = true;<a name="line.358"></a>
-<span class="sourceLineNo">359</span>            } else {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>              if (LOG.isDebugEnabled()) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>                LOG.debug(String.format(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>                  "superuser '%s' does not have correct permissions: have 0x%x, want 0x%x",<a name="line.362"></a>
-<span class="sourceLineNo">363</span>                  acl.getId().getId(), acl.getPerms(), Perms.ALL));<a name="line.363"></a>
-<span class="sourceLineNo">364</span>              }<a name="line.364"></a>
-<span class="sourceLineNo">365</span>            }<a name="line.365"></a>
-<span class="sourceLineNo">366</span>            break;<a name="line.366"></a>
-<span class="sourceLineNo">367</span>          }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>        }<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        if (!hasAccess) {<a name="line.369"></a>
-<span class="sourceLineNo">370</span>          return false;<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>    return true;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>  /*<a name="line.377"></a>
-<span class="sourceLineNo">378</span>   * Validate whether ACL ID is superuser.<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   */<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public static boolean isSuperUserId(String[] superUsers, Id id) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    for (String user : superUsers) {<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      // TODO: Validate super group members also when ZK supports setting node ACL for groups.<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      if (!AuthUtil.isGroupPrincipal(user) &amp;&amp; new Id("sasl", user).equals(id)) {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>        return true;<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>    return false;<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>  @Override<a name="line.390"></a>
-<span class="sourceLineNo">391</span>  public String toString() {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    return this.identifier + ", quorum=" + quorum + ", baseZNode=" + znodePaths.baseZNode;<a name="line.392"></a>
-<span class="sourceLineNo">393</span>  }<a name="line.393"></a>
-<span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span>  /**<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   * Adds this instance's identifier as a prefix to the passed &lt;code&gt;str&lt;/code&gt;<a name="line.396"></a>
-<span class="sourceLineNo">397</span>   * @param str String to amend.<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   * @return A new string with this instance's identifier as prefix: e.g.<a name="line.398"></a>
-<span class="sourceLineNo">399</span>   * if passed 'hello world', the returned string could be<a name="line.399"></a>
-<span class="sourceLineNo">400</span>   */<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  public String prefix(final String str) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    return this.toString() + " " + str;<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>   * Get the znodes corresponding to the meta replicas from ZK<a name="line.406"></a>
-<span class="sourceLineNo">407</span>   * @return list of znodes<a name="line.407"></a>
-<span class="sourceLineNo">408</span>   * @throws KeeperException<a name="line.408"></a>
-<span class="sourceLineNo">409</span>   */<a name="line.409"></a>
-<span class="sourceLineNo">410</span>  public List&lt;String&gt; getMetaReplicaNodes() throws KeeperException {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    List&lt;String&gt; childrenOfBaseNode = ZKUtil.listChildrenNoWatch(this, znodePaths.baseZNode);<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    List&lt;String&gt; metaReplicaNodes = new ArrayList&lt;&gt;(2);<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    if (childrenOfBaseNode != null) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      String pattern = conf.get("zookeeper.znode.metaserver","meta-region-server");<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      for (String child : childrenOfBaseNode) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>        if (child.startsWith(pattern)) metaReplicaNodes.add(child);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      }<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    }<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    return metaReplicaNodes;<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  }<a name="line.420"></a>
-<span class="sourceLineNo">421</span><a name="line.421"></a>
-<span class="sourceLineNo">422</span>  /**<a name="line.422"></a>
-<span class="sourceLineNo">423</span>   * Register the specified listener to receive ZooKeeper events.<a name="line.423"></a>
-<span class="sourceLineNo">424</span>   * @param listener<a name="line.424"></a>
-<span class="sourceLineNo">425</span>   */<a name="line.425"></a>
-<span class="sourceLineNo">426</span>  public void registerListener(ZooKeeperListener listener) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    listeners.add(listener);<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>   * Register the specified listener to receive ZooKeeper events and add it as<a name="line.431"></a>
-<span class="sourceLineNo">432</span>   * the first in the list of current listeners.<a name="line.432"></a>
-<span class="sourceLineNo">433</span>   * @param listener<a name="line.433"></a>
-<span class="sourceLineNo">434</span>   */<a name="line.434"></a>
-<span class="sourceLineNo">435</span>  public void registerListenerFirst(ZooKeeperListener listener) {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    listeners.add(0, listener);<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>  public void unregisterListener(ZooKeeperListener listener) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    listeners.remove(listener);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  }<a name="line.441"></a>
-<span class="sourceLineNo">442</span><a name="line.442"></a>
-<span class="sourceLineNo">443</span>  /**<a name="line.443"></a>
-<span class="sourceLineNo">444</span>   * Clean all existing listeners<a name="line.444"></a>
-<span class="sourceLineNo">445</span>   */<a name="line.445"></a>
-<span class="sourceLineNo">446</span>  public void unregisterAllListeners() {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    listeners.clear();<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>   * Get a copy of current registered listeners<a name="line.451"></a>
-<span class="sourceLineNo">452</span>   */<a name="line.452"></a>
-<span class="sourceLineNo">453</span>  public List&lt;ZooKeeperListener&gt; getListeners() {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    return new ArrayList&lt;&gt;(listeners);<a name="line.454"></a>
-<span class="sourceLineNo">455</span>  }<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>  /**<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   * @return The number of currently registered listeners<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   */<a name="line.459"></a>
-<span class="sourceLineNo">460</span>  public int getNumberOfListeners() {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    return listeners.size();<a name="line.461"></a>
-<span class="sourceLineNo">462</span>  }<a name="line.462"></a>
-<span class="sourceLineNo">463</span><a name="line.463"></a>
-<span class="sourceLineNo">464</span>  /**<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * Get the connection to ZooKeeper.<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   * @return connection reference to zookeeper<a name="line.466"></a>
-<span class="sourceLineNo">467</span>   */<a name="line.467"></a>
-<span class="sourceLineNo">468</span>  public RecoverableZooKeeper getRecoverableZooKeeper() {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    return recoverableZooKeeper;<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>  public void reconnectAfterExpiration() throws IOException, KeeperException, InterruptedException {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>    recoverableZooKeeper.reconnectAfterExpiration();<a name="line.473"></a>
-<span class="sourceLineNo">474</span>  }<a name="line.474"></a>
-<span class="sourceLineNo">475</span><a name="line.475"></a>
-<span class="sourceLineNo">476</span>  /**<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * Get the quorum address of this instance.<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * @return quorum string of this zookeeper connection instance<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   */<a name="line.479"></a>
-<span class="sourceLineNo">480</span>  public String getQuorum() {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    return quorum;<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>  /**<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   * Get the znodePaths.<a name="line.485"></a>
-<span class="sourceLineNo">486</span>   * &lt;p&gt;<a name="line.486"></a>
-<span class="sourceLineNo">487</span>   * Mainly used for mocking as mockito can not mock a field access.<a name="line.487"></a>
-<span class="sourceLineNo">488</span>   */<a name="line.488"></a>
-<span class="sourceLineNo">489</span>  public ZNodePaths getZNodePaths() {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    return znodePaths;<a name="line.490"></a>
-<span class="sourceLineNo">491</span>  }<a name="line.491"></a>
-<span class="sourceLineNo">492</span><a name="line.492"></a>
-<span class="sourceLineNo">493</span>  /**<a name="line.493"></a>
-<span class="sourceLineNo">494</span>   * Method called from ZooKeeper for events and connection status.<a name="line.494"></a>
-<span class="sourceLineNo">495</span>   * &lt;p&gt;<a name="line.495"></a>
-<span class="sourceLineNo">496</span>   * Valid events are passed along to listeners.  Connection status changes<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   * are dealt with locally.<a name="line.497"></a>
-<span class="sourceLineNo">498</span>   */<a name="line.498"></a>
-<span class="sourceLineNo">499</span>  @Override<a name="line.499"></a>
-<span class="sourceLineNo">500</span>  public void process(WatchedEvent event) {<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    LOG.debug(prefix("Received ZooKeeper Event, " +<a name="line.501"></a>
-<span class="sourceLineNo">502</span>        "type=" + event.getType() + ", " +<a name="line.502"></a>
-<span class="sourceLineNo">503</span>        "state=" + event.getState() + ", " +<a name="line.503"></a>
-<span class="sourceLineNo">504</span>        "path=" + event.getPath()));<a name="line.504"></a>
-<span class="sourceLineNo">505</span><a name="line.505"></a>
-<span class="sourceLineNo">506</span>    switch(event.getType()) {<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>      // If event type is NONE, this is a connection status change<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      case None: {<a name="line.509"></a>
-<span class="sourceLineNo">510</span>        connectionEvent(event);<a name="line.510"></a>
-<span class="sourceLineNo">511</span>        break;<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>      // Otherwise pass along to the listeners<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span>      case NodeCreated: {<a name="line.516"></a>
-<span class="sourceLineNo">517</span>        for(ZooKeeperListener listener : listeners) {<a name="line.517"></a>
-<span class="sourceLineNo">518</span>          listener.nodeCreated(event.getPath());<a name="line.518"></a>
-<span class="sourceLineNo">519</span>        }<a name="line.519"></a>
-<span class="sourceLineNo">520</span>        break;<a name="line.520"></a>
-<span class="sourceLineNo">521</span>      }<a name="line.521"></a>
-<span class="sourceLineNo">522</span><a name="line.522"></a>
-<span class="sourceLineNo">523</span>      case NodeDeleted: {<a name="line.523"></a>
-<span class="sourceLineNo">524</span>        for(ZooKeeperListener listener : listeners) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>          listener.nodeDeleted(event.getPath());<a name="line.525"></a>
-<span class="sourceLineNo">526</span>        }<a name="line.526"></a>
-<span class="sourceLineNo">527</span>        break;<a name="line.527"></a>
-<span class="sourceLineNo">528</span>      }<a name="line.528"></a>
-<span class="sourceLineNo">529</span><a name="line.529"></a>
-<span class="sourceLineNo">530</span>      case NodeDataChanged: {<a name="line.530"></a>
-<span class="sourceLineNo">531</span>        for(ZooKeeperListener listener : listeners) {<a name="line.531"></a>
-<span class="sourceLineNo">532</span>          listener.nodeDataChanged(event.getPath());<a name="line.532"></a>
-<span class="sourceLineNo">533</span>        }<a name="line.533"></a>
-<span class="sourceLineNo">534</span>        break;<a name="line.534"></a>
-<span class="sourceLineNo">535</span>      }<a name="line.535"></a>
-<span class="sourceLineNo">536</span><a name="line.536"></a>
-<span class="sourceLineNo">537</span>      case NodeChildrenChanged: {<a name="line.537"></a>
-<span class="sourceLineNo">538</span>        for(ZooKeeperListener listener : listeners) {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>          listener.nodeChildrenChanged(event.getPath());<a name="line.539"></a>
-<span class="sourceLineNo">540</span>        }<a name="line.540"></a>
-<span class="sourceLineNo">541</span>        break;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>      }<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    }<a name="line.543"></a>
-<span class="sourceLineNo">544</span>  }<a name="line.544"></a>
-<span class="sourceLineNo">545</span><a name="line.545"></a>
-<span class="sourceLineNo">546</span>  // Connection management<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>   * Called when there is a connection-related event via the Watcher callback.<a name="line.549"></a>
-<span class="sourceLineNo">550</span>   * &lt;p&gt;<a name="line.550"></a>
-<span class="sourceLineNo">551</span>   * If Disconnected or Expired, this should shutdown the cluster. But, since<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   * we send a KeeperException.SessionExpiredException along with the abort<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   * call, it's possible for the Abortable to catch it and try to create a new<a name="line.553"></a>
-<span class="sourceLineNo">554</span>   * session with ZooKeeper. This is what the client does in HCM.<a name="line.554"></a>
-<span class="sourceLineNo">555</span>   * &lt;p&gt;<a name="line.555"></a>
-<span class="sourceLineNo">556</span>   * @param event<a name="line.556"></a>
-<span class="sourceLineNo">557</span>   */<a name="line.557"></a>
-<span class="sourceLineNo">558</span>  private void connectionEvent(WatchedEvent event) {<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    switch(event.getState()) {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>      case SyncConnected:<a name="line.560"></a>
-<span class="sourceLineNo">561</span>        this.identifier = this.prefix + "-0x" +<a name="line.561"></a>
-<span class="sourceLineNo">562</span>          Long.toHexString(this.recoverableZooKeeper.getSessionId());<a name="line.562"></a>
-<span class="sourceLineNo">563</span>        // Update our identifier.  Otherwise ignore.<a name="line.563"></a>
-<span class="sourceLineNo">564</span>        LOG.debug(this.identifier + " connected");<a name="line.564"></a>
-<span class="sourceLineNo">565</span>        connected.set(true);<a name="line.565"></a>
-<span class="sourceLineNo">566</span>        break;<a name="line.566"></a>
-<span class="sourceLineNo">567</span><a name="line.567"></a>
-<span class="sourceLineNo">568</span>      // Abort the server if Disconnected or Expired<a name="line.568"></a>
-<span class="sourceLineNo">569</span>      case Disconnected:<a name="line.569"></a>
-<span class="sourceLineNo">570</span>        LOG.debug(prefix("Received Disconnected from ZooKeeper."));<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        if (forceAbortOnZKDisconnect) {<a name="line.571"></a>
-<span class="sourceLineNo">572</span>          connected.set(false);<a name="line.572"></a>
-<span class="sourceLineNo">573</span>          ZKDisconnectEventWatcher task = new ZKDisconnectEventWatcher();<a name="line.573"></a>
-<span class="sourceLineNo">574</span>          zkEventWatcherExecService.execute(task);<a name="line.574"></a>
-<span class="sourceLineNo">575</span>        } else {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>          LOG.debug("Received Disconnected from ZooKeeper, ignoring.");<a name="line.576"></a>
-<span class="sourceLineNo">577</span>        }<a name="line.577"></a>
-<span class="sourceLineNo">578</span>        break;<a name="line.578"></a>
-<span class="sourceLineNo">579</span><a name="line.579"></a>
-<span class="sourceLineNo">580</span>      case Expired:<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        String msg = prefix(this.identifier + " received expired from " +<a name="line.581"></a>
-<span class="sourceLineNo">582</span>          "ZooKeeper, aborting");<a name="line.582"></a>
-<span class="sourceLineNo">583</span>        // TODO: One thought is to add call to ZooKeeperListener so say,<a name="line.583"></a>
-<span class="sourceLineNo">584</span>        // ZooKeeperNodeTracker can zero out its data values.<a name="line.584"></a>
-<span class="sourceLineNo">585</span>        if (this.abortable != null) {<a name="line.585"></a>
-<span class="sourceLineNo">586</span>          this.abortable.abort(msg, new KeeperException.SessionExpiredException());<a name="line.586"></a>
-<span class="sourceLineNo">587</span>        }<a name="line.587"></a>
-<span class="sourceLineNo">588</span>        break;<a name="line.588"></a>
-<span class="sourceLineNo">589</span><a name="line.589"></a>
-<span class="sourceLineNo">590</span>      case ConnectedReadOnly:<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      case SaslAuthenticated:<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      case AuthFailed:<a name="line.592"></a>
-<span class="sourceLineNo">593</span>        break;<a name="line.593"></a>
-<span class="sourceLineNo">594</span><a name="line.594"></a>
-<span class="sourceLineNo">595</span>      default:<a name="line.595"></a>
-<span class="sourceLineNo">596</span>        throw new IllegalStateException("Received event is not valid: " + event.getState());<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><a name="line.599"></a>
-<span class="sourceLineNo">600</span>  /*<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   * Task to watch zookeper disconnect event.<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   */<a name="line.602"></a>
-<span class="sourceLineNo">603</span>  class ZKDisconnectEventWatcher implements Runnable {<a name="line.603"></a>
-<span class="sourceLineNo">604</span>    @Override<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    public void run() {<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      if (connected.get()) {<a name="line.606"></a>
-<span class="sourceLineNo">607</span>        return;<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>      long startTime = EnvironmentEdgeManager.currentTime();<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      while (EnvironmentEdgeManager.currentTime() - startTime &lt; connWaitTimeOut) {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>        if (connected.get()) {<a name="line.612"></a>
-<span class="sourceLineNo">613</span>          LOG.debug("Client got reconnected to zookeeper.");<a name="line.613"></a>
-<span class="sourceLineNo">614</span>          return;<a name="line.614"></a>
-<span class="sourceLineNo">615</span>        }<a name="line.615"></a>
-<span class="sourceLineNo">616</span>        try {<a name="line.616"></a>
-<span class="sourceLineNo">617</span>          Thread.sleep(100);<a name="line.617"></a>
-<span class="sourceLineNo">618</span>        } catch (InterruptedException e) {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>          Thread.currentThread().interrupt();<a name="line.619"></a>
-<span class="sourceLineNo">620</span>          break;<a name="line.620"></a>
-<span class="sourceLineNo">621</span>        }<a name="line.621"></a>
-<span class="sourceLineNo">622</span>      }<a name="line.622"></a>
-<span class="sourceLineNo">623</span><a name="line.623"></a>
-<span class="sourceLineNo">624</span>      if (!connected.get() &amp;&amp; abortable != null) {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>        String msg =<a name="line.625"></a>
-<span class="sourceLineNo">626</span>            prefix("Couldn't connect to ZooKeeper after waiting " + connWaitTimeOut<a name="line.626"></a>
-<span class="sourceLineNo">627</span>                + " ms, aborting");<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        abortable.abort(msg, new KeeperException.ConnectionLossException());<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>  }<a name="line.631"></a>
-<span class="sourceLineNo">632</span><a name="line.632"></a>
-<span class="sourceLineNo">633</span>  /**<a name="line.633"></a>
-<span class="sourceLineNo">634</span>   * Forces a synchronization of this ZooKeeper client connection.<a name="line.634"></a>
-<span class="sourceLineNo">635</span>   * &lt;p&gt;<a name="line.635"></a>
-<span class="sourceLineNo">636</span>   * Executing this method before running other methods will ensure that the<a name="line.636"></a>
-<span class="sourceLineNo">637</span>   * subsequent operations are up-to-date and consistent as of the time that<a name="line.637"></a>
-<span class="sourceLineNo">638</span>   * the sync is complete.<a name="line.638"></a>
-<span class="sourceLineNo">639</span>   * &lt;p&gt;<a name="line.639"></a>
-<span class="sourceLineNo">640</span>   * This is used for compareAndSwap type operations where we need to read the<a name="line.640"></a>
-<span class="sourceLineNo">641</span>   * data of an existing node and delete or transition that node, utilizing the<a name="line.641"></a>
-<span class="sourceLineNo">642</span>   * previously read version and data.  We want to ensure that the version read<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * is up-to-date from when we begin the operation.<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   */<a name="line.644"></a>
-<span class="sourceLineNo">645</span>  public void sync(String path) throws KeeperException {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    this.recoverableZooKeeper.sync(path, null, 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>   * Handles KeeperExceptions in client calls.<a name="line.650"></a>
-<span class="sourceLineNo">651</span>   * &lt;p&gt;<a name="line.651"></a>
-<span class="sourceLineNo">652</span>   * This may be temporary but for now this gives one place to deal with these.<a name="line.652"></a>
-<span class="sourceLineNo">653</span>   * &lt;p&gt;<a name="line.653"></a>
-<span class="sourceLineNo">654</span>   * TODO: Currently this method rethrows the exception to let the caller handle<a name="line.654"></a>
-<span class="sourceLineNo">655</span>   * &lt;p&gt;<a name="line.655"></a>
-<span class="sourceLineNo">656</span>   * @param ke<a name="line.656"></a>
-<span class="sourceLineNo">657</span>   * @throws KeeperException<a name="line.657"></a>
-<span class="sourceLineNo">658</span>   */<a name="line.658"></a>
-<span class="sourceLineNo">659</span>  public void keeperException(KeeperException ke)<a name="line.659"></a>
-<span class="sourceLineNo">660</span>  throws KeeperException {<a name="line.660"></a>
-<span class="sourceLineNo">661</span>    LOG.error(prefix("Received unexpected KeeperException, re-throwing exception"), ke);<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    throw ke;<a name="line.662"></a>
-<span class="sourceLineNo">663</span>  }<a name="line.663"></a>
-<span class="sourceLineNo">664</span><a name="line.664"></a>
-<span class="sourceLineNo">665</span>  /**<a name="line.665"></a>
-<span class="sourceLineNo">666</span>   * Handles InterruptedExceptions in client calls.<a name="line.666"></a>
-<span class="sourceLineNo">667</span>   * @param ie the InterruptedException instance thrown<a name="line.667"></a>
-<span class="sourceLineNo">668</span>   * @throws KeeperException the exception to throw, transformed from the InterruptedException<a name="line.668"></a>
-<span class="sourceLineNo">669</span>   */<a name="line.669"></a>
-<span class="sourceLineNo">670</span>  public void interruptedException(InterruptedException ie) throws KeeperException {<a name="line.670"></a>
-<span class="sourceLineNo">671</span>    interruptedExceptionNoThrow(ie, true);<a name="line.671"></a>
-<span class="sourceLineNo">672</span>    // Throw a system error exception to let upper level handle it<a name="line.672"></a>
-<span class="sourceLineNo">673</span>    throw new KeeperException.SystemErrorException();<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>  /**<a name="line.676"></a>
-<span class="sourceLineNo">677</span>   * Log the InterruptedException and interrupt current thread<a name="line.677"></a>
-<span class="sourceLineNo">678</span>   * @param ie The IterruptedException to log<a name="line.678"></a>
-<span class="sourceLineNo">679</span>   * @param throwLater Whether we will throw the exception latter<a name="line.679"></a>
-<span class="sourceLineNo">680</span>   */<a name="line.680"></a>
-<span class="sourceLineNo">681</span>  public void interruptedExceptionNoThrow(InterruptedException ie, boolean throwLater) {<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    LOG.debug(prefix("Received InterruptedException, will interrupt current thread"<a name="line.682"></a>
-<span class="sourceLineNo">683</span>        + (throwLater ? " and rethrow a SystemErrorException" : "")),<a name="line.683"></a>
-<span class="sourceLineNo">684</span>      ie);<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    // At least preserve interrupt.<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    Thread.currentThread().interrupt();<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>   * Close the connection to ZooKeeper.<a name="line.690"></a>
-<span class="sourceLineNo">691</span>   *<a name="line.691"></a>
-<span class="sourceLineNo">692</span>   */<a name="line.692"></a>
-<span class="sourceLineNo">693</span>  @Override<a name="line.693"></a>
-<span class="sourceLineNo">694</span>  public void close() {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>    try {<a name="line.695"></a>
-<span class="sourceLineNo">696</span>      recoverableZooKeeper.close();<a name="line.696"></a>
-<span class="sourceLineNo">697</span>      if (zkEventWatcherExecService != null) {<a name="line.697"></a>
-<span class="sourceLineNo">698</span>        zkEventWatcherExecService.shutdown();<a name="line.698"></a>
-<span class="sourceLineNo">699</span>        zkEventWatcherExecService = null;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>      }<a name="line.700"></a>
-<span class="sourceLineNo">701</span>    } catch (InterruptedException e) {<a name="line.701"></a>
-<span class="sourceLineNo">702</span>      Thread.currentThread().interrupt();<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    }<a name="line.703"></a>
-<span class="sourceLineNo">704</span>  }<a name="line.704"></a>
-<span class="sourceLineNo">705</span><a name="line.705"></a>
-<span class="sourceLineNo">706</span>  public Configuration getConfiguration() {<a name="line.706"></a>
-<span class="sourceLineNo">707</span>    return conf;<a name="line.707"></a>
-<span class="sourceLineNo">708</span>  }<a name="line.708"></a>
-<span class="sourceLineNo">709</span><a name="line.709"></a>
-<span class="sourceLineNo">710</span>  @Override<a name="line.710"></a>
-<span class="sourceLineNo">711</span>  public void abort(String why, Throwable e) {<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    if (this.abortable != null) this.abortable.abort(why, e);<a name="line.712"></a>
-<span class="sourceLineNo">713</span>    else this.aborted = true;<a name="line.713"></a>
-<span class="sourceLineNo">714</span>  }<a name="line.714"></a>
-<span class="sourceLineNo">715</span><a name="line.715"></a>
-<span class="sourceLineNo">716</span>  @Override<a name="line.716"></a>
-<span class="sourceLineNo">717</span>  public boolean isAborted() {<a name="line.717"></a>
-<span class="sourceLineNo">718</span>    return this.abortable == null? this.aborted: this.abortable.isAborted();<a name="line.718"></a>
-<span class="sourceLineNo">719</span>  }<a name="line.719"></a>
-<span class="sourceLineNo">720</span>}<a name="line.720"></a>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</pre>
-</div>
-</body>
-</html>


[09/21] hbase-site git commit: Published site at .

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-annotations/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/checkstyle.html b/hbase-annotations/checkstyle.html
index 6272764..dd42ec1 100644
--- a/hbase-annotations/checkstyle.html
+++ b/hbase-annotations/checkstyle.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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -273,7 +273,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-annotations/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependencies.html b/hbase-annotations/dependencies.html
index 0908229..f5ba9ec 100644
--- a/hbase-annotations/dependencies.html
+++ b/hbase-annotations/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -377,7 +377,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-annotations/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-convergence.html b/hbase-annotations/dependency-convergence.html
index 8a9c166..53d9ab7 100644
--- a/hbase-annotations/dependency-convergence.html
+++ b/hbase-annotations/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -571,7 +571,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-annotations/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-info.html b/hbase-annotations/dependency-info.html
index 125dd00..b8e4929 100644
--- a/hbase-annotations/dependency-info.html
+++ b/hbase-annotations/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-annotations/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-management.html b/hbase-annotations/dependency-management.html
index ad589b6..8c57d7e 100644
--- a/hbase-annotations/dependency-management.html
+++ b/hbase-annotations/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -736,7 +736,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-annotations/index.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/index.html b/hbase-annotations/index.html
index 9b48919..721b511 100644
--- a/hbase-annotations/index.html
+++ b/hbase-annotations/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-annotations/integration.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/integration.html b/hbase-annotations/integration.html
index d65ca26..8509e49 100644
--- a/hbase-annotations/integration.html
+++ b/hbase-annotations/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-annotations/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/issue-tracking.html b/hbase-annotations/issue-tracking.html
index 3275d1e..ba139b7 100644
--- a/hbase-annotations/issue-tracking.html
+++ b/hbase-annotations/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-annotations/license.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/license.html b/hbase-annotations/license.html
index 98dd652..ba96919 100644
--- a/hbase-annotations/license.html
+++ b/hbase-annotations/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-annotations/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/plugin-management.html b/hbase-annotations/plugin-management.html
index d55cc0f..ca0f5df 100644
--- a/hbase-annotations/plugin-management.html
+++ b/hbase-annotations/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-annotations/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/plugins.html b/hbase-annotations/plugins.html
index fd5f86a..3e7de2d 100644
--- a/hbase-annotations/plugins.html
+++ b/hbase-annotations/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -222,7 +222,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-annotations/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-info.html b/hbase-annotations/project-info.html
index 90a3b68..c12a247 100644
--- a/hbase-annotations/project-info.html
+++ b/hbase-annotations/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-annotations/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-reports.html b/hbase-annotations/project-reports.html
index bd20c57..2f3e66f 100644
--- a/hbase-annotations/project-reports.html
+++ b/hbase-annotations/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-annotations/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-summary.html b/hbase-annotations/project-summary.html
index aaef581..045f166 100644
--- a/hbase-annotations/project-summary.html
+++ b/hbase-annotations/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-annotations/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/source-repository.html b/hbase-annotations/source-repository.html
index a81a08e..3b52fce 100644
--- a/hbase-annotations/source-repository.html
+++ b/hbase-annotations/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-annotations/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/team-list.html b/hbase-annotations/team-list.html
index 1a9ba72..1534ede 100644
--- a/hbase-annotations/team-list.html
+++ b/hbase-annotations/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -523,7 +523,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/dependencies.html b/hbase-archetypes/dependencies.html
index db09e47..205b39b 100644
--- a/hbase-archetypes/dependencies.html
+++ b/hbase-archetypes/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -354,7 +354,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/dependency-convergence.html b/hbase-archetypes/dependency-convergence.html
index 86152b0..2171d4c 100644
--- a/hbase-archetypes/dependency-convergence.html
+++ b/hbase-archetypes/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -571,7 +571,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/dependency-info.html b/hbase-archetypes/dependency-info.html
index f81bef2..5fbed72 100644
--- a/hbase-archetypes/dependency-info.html
+++ b/hbase-archetypes/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/dependency-management.html b/hbase-archetypes/dependency-management.html
index acf425a..29161d5 100644
--- a/hbase-archetypes/dependency-management.html
+++ b/hbase-archetypes/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -736,7 +736,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-archetype-builder/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/dependencies.html b/hbase-archetypes/hbase-archetype-builder/dependencies.html
index 26ad249..bfc0f26 100644
--- a/hbase-archetypes/hbase-archetype-builder/dependencies.html
+++ b/hbase-archetypes/hbase-archetype-builder/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -354,7 +354,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html b/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
index 91c2599..a9e648e 100644
--- a/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
+++ b/hbase-archetypes/hbase-archetype-builder/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -571,7 +571,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-archetype-builder/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/dependency-info.html b/hbase-archetypes/hbase-archetype-builder/dependency-info.html
index ecb0ae5..57afbdd 100644
--- a/hbase-archetypes/hbase-archetype-builder/dependency-info.html
+++ b/hbase-archetypes/hbase-archetype-builder/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-archetype-builder/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/dependency-management.html b/hbase-archetypes/hbase-archetype-builder/dependency-management.html
index 4310c6e..b5aad12 100644
--- a/hbase-archetypes/hbase-archetype-builder/dependency-management.html
+++ b/hbase-archetypes/hbase-archetype-builder/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -736,7 +736,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-archetype-builder/index.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/index.html b/hbase-archetypes/hbase-archetype-builder/index.html
index fb9f9d5..ad61071 100644
--- a/hbase-archetypes/hbase-archetype-builder/index.html
+++ b/hbase-archetypes/hbase-archetype-builder/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-archetype-builder/integration.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/integration.html b/hbase-archetypes/hbase-archetype-builder/integration.html
index 2c330b1..ddd4e5e 100644
--- a/hbase-archetypes/hbase-archetype-builder/integration.html
+++ b/hbase-archetypes/hbase-archetype-builder/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/issue-tracking.html b/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
index 5338f0c..0f92249 100644
--- a/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
+++ b/hbase-archetypes/hbase-archetype-builder/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-archetype-builder/license.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/license.html b/hbase-archetypes/hbase-archetype-builder/license.html
index 79dd967..14417a8 100644
--- a/hbase-archetypes/hbase-archetype-builder/license.html
+++ b/hbase-archetypes/hbase-archetype-builder/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-archetype-builder/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/mail-lists.html b/hbase-archetypes/hbase-archetype-builder/mail-lists.html
index 22eff41..c0a1c84 100644
--- a/hbase-archetypes/hbase-archetype-builder/mail-lists.html
+++ b/hbase-archetypes/hbase-archetype-builder/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-archetype-builder/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/plugin-management.html b/hbase-archetypes/hbase-archetype-builder/plugin-management.html
index f409e58..b0cc308 100644
--- a/hbase-archetypes/hbase-archetype-builder/plugin-management.html
+++ b/hbase-archetypes/hbase-archetype-builder/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-archetype-builder/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/plugins.html b/hbase-archetypes/hbase-archetype-builder/plugins.html
index 923bcad..cdfe0c1 100644
--- a/hbase-archetypes/hbase-archetype-builder/plugins.html
+++ b/hbase-archetypes/hbase-archetype-builder/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -214,7 +214,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-archetype-builder/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/project-info.html b/hbase-archetypes/hbase-archetype-builder/project-info.html
index c8bd5d2..99492b9 100644
--- a/hbase-archetypes/hbase-archetype-builder/project-info.html
+++ b/hbase-archetypes/hbase-archetype-builder/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-archetype-builder/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/project-summary.html b/hbase-archetypes/hbase-archetype-builder/project-summary.html
index 946cfcb..12c0100 100644
--- a/hbase-archetypes/hbase-archetype-builder/project-summary.html
+++ b/hbase-archetypes/hbase-archetype-builder/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -163,7 +163,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-archetype-builder/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/source-repository.html b/hbase-archetypes/hbase-archetype-builder/source-repository.html
index 1aa4de7..652acfb 100644
--- a/hbase-archetypes/hbase-archetype-builder/source-repository.html
+++ b/hbase-archetypes/hbase-archetype-builder/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-archetype-builder/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/team-list.html b/hbase-archetypes/hbase-archetype-builder/team-list.html
index 0a3c252..88001ee 100644
--- a/hbase-archetypes/hbase-archetype-builder/team-list.html
+++ b/hbase-archetypes/hbase-archetype-builder/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -523,7 +523,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-client-project/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/checkstyle.html b/hbase-archetypes/hbase-client-project/checkstyle.html
index 7b4b730..8773a82 100644
--- a/hbase-archetypes/hbase-client-project/checkstyle.html
+++ b/hbase-archetypes/hbase-client-project/checkstyle.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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -150,7 +150,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-client-project/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/dependencies.html b/hbase-archetypes/hbase-client-project/dependencies.html
index 9ece605..9825bb2 100644
--- a/hbase-archetypes/hbase-client-project/dependencies.html
+++ b/hbase-archetypes/hbase-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -4184,7 +4184,7 @@ The following provides more details on the included cryptographic software:
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-client-project/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/dependency-convergence.html b/hbase-archetypes/hbase-client-project/dependency-convergence.html
index 24b7612..d887765 100644
--- a/hbase-archetypes/hbase-client-project/dependency-convergence.html
+++ b/hbase-archetypes/hbase-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -571,7 +571,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-client-project/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/dependency-info.html b/hbase-archetypes/hbase-client-project/dependency-info.html
index 6299934..dba8da7 100644
--- a/hbase-archetypes/hbase-client-project/dependency-info.html
+++ b/hbase-archetypes/hbase-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-client-project/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/dependency-management.html b/hbase-archetypes/hbase-client-project/dependency-management.html
index 59eb493..f47e215 100644
--- a/hbase-archetypes/hbase-client-project/dependency-management.html
+++ b/hbase-archetypes/hbase-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -736,7 +736,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-client-project/index.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/index.html b/hbase-archetypes/hbase-client-project/index.html
index ebcef2d..20340ef 100644
--- a/hbase-archetypes/hbase-client-project/index.html
+++ b/hbase-archetypes/hbase-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-client-project/integration.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/integration.html b/hbase-archetypes/hbase-client-project/integration.html
index 8e8c1ca..fff6457 100644
--- a/hbase-archetypes/hbase-client-project/integration.html
+++ b/hbase-archetypes/hbase-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-client-project/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/issue-tracking.html b/hbase-archetypes/hbase-client-project/issue-tracking.html
index 8a5c392..c64fe4a 100644
--- a/hbase-archetypes/hbase-client-project/issue-tracking.html
+++ b/hbase-archetypes/hbase-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-client-project/license.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/license.html b/hbase-archetypes/hbase-client-project/license.html
index a6671c4..da12f14 100644
--- a/hbase-archetypes/hbase-client-project/license.html
+++ b/hbase-archetypes/hbase-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-client-project/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/mail-lists.html b/hbase-archetypes/hbase-client-project/mail-lists.html
index e4eea2b..4e90b5b 100644
--- a/hbase-archetypes/hbase-client-project/mail-lists.html
+++ b/hbase-archetypes/hbase-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-client-project/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/plugin-management.html b/hbase-archetypes/hbase-client-project/plugin-management.html
index 301d9d8..38a9fb8 100644
--- a/hbase-archetypes/hbase-client-project/plugin-management.html
+++ b/hbase-archetypes/hbase-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-client-project/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/plugins.html b/hbase-archetypes/hbase-client-project/plugins.html
index 9b1862c..67fc706 100644
--- a/hbase-archetypes/hbase-client-project/plugins.html
+++ b/hbase-archetypes/hbase-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -222,7 +222,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-client-project/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/project-info.html b/hbase-archetypes/hbase-client-project/project-info.html
index dc5c79e..38b075f 100644
--- a/hbase-archetypes/hbase-client-project/project-info.html
+++ b/hbase-archetypes/hbase-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-client-project/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/project-reports.html b/hbase-archetypes/hbase-client-project/project-reports.html
index 3057624..c29b9c5 100644
--- a/hbase-archetypes/hbase-client-project/project-reports.html
+++ b/hbase-archetypes/hbase-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-client-project/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/project-summary.html b/hbase-archetypes/hbase-client-project/project-summary.html
index ef509cb..96a762f 100644
--- a/hbase-archetypes/hbase-client-project/project-summary.html
+++ b/hbase-archetypes/hbase-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-client-project/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/source-repository.html b/hbase-archetypes/hbase-client-project/source-repository.html
index 2ef55ba..25f5bc4 100644
--- a/hbase-archetypes/hbase-client-project/source-repository.html
+++ b/hbase-archetypes/hbase-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-client-project/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/team-list.html b/hbase-archetypes/hbase-client-project/team-list.html
index 12440ba..09cafde 100644
--- a/hbase-archetypes/hbase-client-project/team-list.html
+++ b/hbase-archetypes/hbase-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -523,7 +523,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/checkstyle.html b/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
index 782fe3a..38a4d40 100644
--- a/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
+++ b/hbase-archetypes/hbase-shaded-client-project/checkstyle.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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -150,7 +150,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-shaded-client-project/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/dependencies.html b/hbase-archetypes/hbase-shaded-client-project/dependencies.html
index f44315a..7486f6a 100644
--- a/hbase-archetypes/hbase-shaded-client-project/dependencies.html
+++ b/hbase-archetypes/hbase-shaded-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -4208,7 +4208,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html b/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
index 9bc9bd1..ce2dac5 100644
--- a/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
+++ b/hbase-archetypes/hbase-shaded-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -571,7 +571,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/dependency-info.html b/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
index 7caa4c4..cb7949a 100644
--- a/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
+++ b/hbase-archetypes/hbase-shaded-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/dependency-management.html b/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
index 605f23f..f7a7c4f 100644
--- a/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
+++ b/hbase-archetypes/hbase-shaded-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -736,7 +736,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-shaded-client-project/index.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/index.html b/hbase-archetypes/hbase-shaded-client-project/index.html
index fae5a59..a0e48dc 100644
--- a/hbase-archetypes/hbase-shaded-client-project/index.html
+++ b/hbase-archetypes/hbase-shaded-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-shaded-client-project/integration.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/integration.html b/hbase-archetypes/hbase-shaded-client-project/integration.html
index 39d6be1..bcf2fe3 100644
--- a/hbase-archetypes/hbase-shaded-client-project/integration.html
+++ b/hbase-archetypes/hbase-shaded-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html b/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
index 3e9e28b..dee2fb4 100644
--- a/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
+++ b/hbase-archetypes/hbase-shaded-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-shaded-client-project/license.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/license.html b/hbase-archetypes/hbase-shaded-client-project/license.html
index 6fb8e98..b0663bf 100644
--- a/hbase-archetypes/hbase-shaded-client-project/license.html
+++ b/hbase-archetypes/hbase-shaded-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/mail-lists.html b/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
index e3a34bc..a489c0e 100644
--- a/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
+++ b/hbase-archetypes/hbase-shaded-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/plugin-management.html b/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
index 814fb2b..7200dd4 100644
--- a/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
+++ b/hbase-archetypes/hbase-shaded-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-shaded-client-project/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/plugins.html b/hbase-archetypes/hbase-shaded-client-project/plugins.html
index bef7521..3f912b3 100644
--- a/hbase-archetypes/hbase-shaded-client-project/plugins.html
+++ b/hbase-archetypes/hbase-shaded-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -222,7 +222,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

[06/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html b/testdevapidocs/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html
index 5b9f622..b565e08 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.77">MockMasterServices</a>
+<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.78">MockMasterServices</a>
 extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMasterServices.html" title="class in org.apache.hadoop.hbase.master">MockNoopMasterServices</a></pre>
 <div class="block">A mocked master services.
  Tries to fake it. May not always work.</div>
@@ -348,7 +348,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>fileSystemManager</h4>
-<pre>private final&nbsp;org.apache.hadoop.hbase.master.MasterFileSystem <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.78">fileSystemManager</a></pre>
+<pre>private final&nbsp;org.apache.hadoop.hbase.master.MasterFileSystem <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.79">fileSystemManager</a></pre>
 </li>
 </ul>
 <a name="walManager">
@@ -357,7 +357,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>walManager</h4>
-<pre>private final&nbsp;org.apache.hadoop.hbase.master.MasterWalManager <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.79">walManager</a></pre>
+<pre>private final&nbsp;org.apache.hadoop.hbase.master.MasterWalManager <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.80">walManager</a></pre>
 </li>
 </ul>
 <a name="assignmentManager">
@@ -366,7 +366,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>assignmentManager</h4>
-<pre>private final&nbsp;org.apache.hadoop.hbase.master.assignment.AssignmentManager <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.80">assignmentManager</a></pre>
+<pre>private final&nbsp;org.apache.hadoop.hbase.master.assignment.AssignmentManager <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.81">assignmentManager</a></pre>
 </li>
 </ul>
 <a name="procedureEnv">
@@ -375,7 +375,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>procedureEnv</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.82">procedureEnv</a></pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.83">procedureEnv</a></pre>
 </li>
 </ul>
 <a name="procedureExecutor">
@@ -384,7 +384,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>procedureExecutor</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.procedure2.ProcedureExecutor&lt;org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.83">procedureExecutor</a></pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.procedure2.ProcedureExecutor&lt;org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.84">procedureExecutor</a></pre>
 </li>
 </ul>
 <a name="procedureStore">
@@ -393,7 +393,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>procedureStore</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.procedure2.store.ProcedureStore <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.84">procedureStore</a></pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.procedure2.store.ProcedureStore <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.85">procedureStore</a></pre>
 </li>
 </ul>
 <a name="connection">
@@ -402,7 +402,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>connection</h4>
-<pre>private final&nbsp;org.apache.hadoop.hbase.client.ClusterConnection <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.85">connection</a></pre>
+<pre>private final&nbsp;org.apache.hadoop.hbase.client.ClusterConnection <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.86">connection</a></pre>
 </li>
 </ul>
 <a name="balancer">
@@ -411,7 +411,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>balancer</h4>
-<pre>private final&nbsp;org.apache.hadoop.hbase.master.LoadBalancer <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.86">balancer</a></pre>
+<pre>private final&nbsp;org.apache.hadoop.hbase.master.LoadBalancer <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.87">balancer</a></pre>
 </li>
 </ul>
 <a name="serverManager">
@@ -420,7 +420,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>serverManager</h4>
-<pre>private final&nbsp;org.apache.hadoop.hbase.master.ServerManager <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.87">serverManager</a></pre>
+<pre>private final&nbsp;org.apache.hadoop.hbase.master.ServerManager <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.88">serverManager</a></pre>
 </li>
 </ul>
 <a name="regionsToRegionServers">
@@ -429,7 +429,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>regionsToRegionServers</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;org.apache.hadoop.hbase.ServerName,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;byte[]&gt;&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.89">regionsToRegionServers</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;org.apache.hadoop.hbase.ServerName,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;byte[]&gt;&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.90">regionsToRegionServers</a></pre>
 </li>
 </ul>
 <a name="initialized">
@@ -438,7 +438,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>initialized</h4>
-<pre>private final&nbsp;org.apache.hadoop.hbase.procedure2.ProcedureEvent <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.91">initialized</a></pre>
+<pre>private final&nbsp;org.apache.hadoop.hbase.procedure2.ProcedureEvent <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.92">initialized</a></pre>
 </li>
 </ul>
 <a name="DEFAULT_COLUMN_FAMILY_NAME">
@@ -447,7 +447,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_COLUMN_FAMILY_NAME</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.92">DEFAULT_COLUMN_FAMILY_NAME</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.93">DEFAULT_COLUMN_FAMILY_NAME</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.assignment.MockMasterServices.DEFAULT_COLUMN_FAMILY_NAME">Constant Field Values</a></dd>
@@ -460,7 +460,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MOCK_MASTER_SERVERNAME</h4>
-<pre>public static final&nbsp;org.apache.hadoop.hbase.ServerName <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.93">MOCK_MASTER_SERVERNAME</a></pre>
+<pre>public static final&nbsp;org.apache.hadoop.hbase.ServerName <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.94">MOCK_MASTER_SERVERNAME</a></pre>
 </li>
 </ul>
 </li>
@@ -477,7 +477,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MockMasterServices</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.96">MockMasterServices</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.97">MockMasterServices</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                           <a href="http://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;org.apache.hadoop.hbase.ServerName,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;byte[]&gt;&gt;&nbsp;regionsToRegionServers)
                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -500,7 +500,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>start</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.161">start</a>(int&nbsp;numServes,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.166">start</a>(int&nbsp;numServes,
                   org.apache.hadoop.hbase.master.procedure.RSProcedureDispatcher&nbsp;remoteDispatcher)
            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -515,7 +515,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.173">stop</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.178">stop</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>stop</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Stoppable</code></dd>
@@ -530,7 +530,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>startProcedureExecutor</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.178">startProcedureExecutor</a>(org.apache.hadoop.hbase.master.procedure.RSProcedureDispatcher&nbsp;remoteDispatcher)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.183">startProcedureExecutor</a>(org.apache.hadoop.hbase.master.procedure.RSProcedureDispatcher&nbsp;remoteDispatcher)
                              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -544,7 +544,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>stopProcedureExecutor</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.206">stopProcedureExecutor</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.211">stopProcedureExecutor</a>()</pre>
 </li>
 </ul>
 <a name="isInitialized--">
@@ -553,7 +553,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>isInitialized</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.221">isInitialized</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.226">isInitialized</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>isInitialized</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.master.MasterServices</code></dd>
@@ -568,7 +568,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>getInitializedEvent</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.procedure2.ProcedureEvent&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.226">getInitializedEvent</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.procedure2.ProcedureEvent&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.231">getInitializedEvent</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getInitializedEvent</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.master.MasterServices</code></dd>
@@ -583,7 +583,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterFileSystem</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.master.MasterFileSystem&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.231">getMasterFileSystem</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.master.MasterFileSystem&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.236">getMasterFileSystem</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getMasterFileSystem</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.master.MasterServices</code></dd>
@@ -598,7 +598,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterWalManager</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.master.MasterWalManager&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.236">getMasterWalManager</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.master.MasterWalManager&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.241">getMasterWalManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getMasterWalManager</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.master.MasterServices</code></dd>
@@ -613,7 +613,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterProcedureExecutor</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.procedure2.ProcedureExecutor&lt;org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.241">getMasterProcedureExecutor</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.procedure2.ProcedureExecutor&lt;org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.246">getMasterProcedureExecutor</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getMasterProcedureExecutor</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.master.MasterServices</code></dd>
@@ -628,7 +628,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>getLoadBalancer</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.master.LoadBalancer&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.246">getLoadBalancer</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.master.LoadBalancer&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.251">getLoadBalancer</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getLoadBalancer</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.master.MasterServices</code></dd>
@@ -643,7 +643,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerManager</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.master.ServerManager&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.251">getServerManager</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.master.ServerManager&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.256">getServerManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getServerManager</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.master.MasterServices</code></dd>
@@ -658,7 +658,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>getAssignmentManager</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.master.assignment.AssignmentManager&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.256">getAssignmentManager</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.master.assignment.AssignmentManager&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.261">getAssignmentManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getAssignmentManager</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.master.MasterServices</code></dd>
@@ -673,7 +673,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>getConnection</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.261">getConnection</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.266">getConnection</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getConnection</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -688,7 +688,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerName</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.ServerName&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.266">getServerName</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.ServerName&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.271">getServerName</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getServerName</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -703,7 +703,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>getCoordinatedStateManager</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.CoordinatedStateManager&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.271">getCoordinatedStateManager</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.CoordinatedStateManager&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.276">getCoordinatedStateManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getCoordinatedStateManager</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -718,7 +718,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableDescriptors</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.TableDescriptors&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.295">getTableDescriptors</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.TableDescriptors&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.300">getTableDescriptors</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getTableDescriptors</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.master.MasterServices</code></dd>
@@ -733,7 +733,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/MockNoopMaster
 <ul class="blockListLast">
 <li class="blockList">
 <h4>buildMultiResponse</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiResponse&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.341">buildMultiResponse</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiRequest&nbsp;req)</pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiResponse&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.346">buildMultiResponse</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiRequest&nbsp;req)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/org/apache/hadoop/hbase/master/assignment/TestRegionStates.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/assignment/TestRegionStates.html b/testdevapidocs/org/apache/hadoop/hbase/master/assignment/TestRegionStates.html
index 8e2a1d9..742bd02 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/assignment/TestRegionStates.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/assignment/TestRegionStates.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../../index.html?org/apache/hadoop/hbase/master/assignment/TestRegionStates.html" target="_top">Frames</a></li>
@@ -489,7 +489,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../../index.html?org/apache/hadoop/hbase/master/assignment/TestRegionStates.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html b/testdevapidocs/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html
new file mode 100644
index 0000000..3c9a4f1
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html
@@ -0,0 +1,573 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TestRogueRSAssignment (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TestRogueRSAssignment (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":9,"i6":9,"i7":10,"i8":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestRogueRSAssignment.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRegionStates.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" target="_top">Frames</a></li>
+<li><a href="TestRogueRSAssignment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.master.assignment</div>
+<h2 title="Class TestRogueRSAssignment" class="title">Class TestRogueRSAssignment</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.master.assignment.TestRogueRSAssignment</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.66">TestRogueRSAssignment</a>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Tests to verify master/ assignment manager functionality against rogue RS</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private static org.apache.hadoop.hbase.client.Admin</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#admin">admin</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private static <a href="../../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html" title="class in org.apache.hadoop.hbase">MiniHBaseCluster</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#cluster">cluster</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private static org.apache.hadoop.conf.Configuration</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#conf">conf</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>org.junit.rules.ExpectedException</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#exception">exception</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private static byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#FAMILY">FAMILY</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#initialRegionCount">initialRegionCount</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private static org.apache.commons.logging.Log</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#LOG">LOG</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private static org.apache.hadoop.hbase.master.HMaster</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#master">master</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>org.junit.rules.TestName</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#name">name</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private static <a href="../../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#UTIL">UTIL</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#TestRogueRSAssignment--">TestRogueRSAssignment</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionInfo&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#assertRegionCount-org.apache.hadoop.hbase.TableName-int-">assertRegionCount</a></span>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
+                 int&nbsp;nregions)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#cleanupTest--">cleanupTest</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionInfo&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#createTable-org.apache.hadoop.hbase.TableName-">createTable</a></span>(org.apache.hadoop.hbase.TableName&nbsp;tableName)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>private org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerReportRequest.Builder</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#makeRSReportRequestWithRegions-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.HRegionInfo...-">makeRSReportRequestWithRegions</a></span>(org.apache.hadoop.hbase.ServerName&nbsp;sn,
+                              org.apache.hadoop.hbase.HRegionInfo...&nbsp;regions)</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/master/assignment/TestRogueRSAssignment.html#setup--">setup</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#setupCluster--">setupCluster</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>private static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#setupConf-org.apache.hadoop.conf.Configuration-">setupConf</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#tearDown--">tearDown</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#testReportRSWithWrongRegion--">testReportRSWithWrongRegion</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang
 /Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="LOG">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LOG</h4>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.67">LOG</a></pre>
+</li>
+</ul>
+<a name="name">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>name</h4>
+<pre>public final&nbsp;org.junit.rules.TestName <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.70">name</a></pre>
+</li>
+</ul>
+<a name="exception">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>exception</h4>
+<pre>public&nbsp;org.junit.rules.ExpectedException <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.73">exception</a></pre>
+</li>
+</ul>
+<a name="initialRegionCount">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>initialRegionCount</h4>
+<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.74">initialRegionCount</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.assignment.TestRogueRSAssignment.initialRegionCount">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="FAMILY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FAMILY</h4>
+<pre>private static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.75">FAMILY</a></pre>
+</li>
+</ul>
+<a name="UTIL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UTIL</h4>
+<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.77">UTIL</a></pre>
+</li>
+</ul>
+<a name="conf">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>conf</h4>
+<pre>private static final&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.78">conf</a></pre>
+</li>
+</ul>
+<a name="admin">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>admin</h4>
+<pre>private static&nbsp;org.apache.hadoop.hbase.client.Admin <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.79">admin</a></pre>
+</li>
+</ul>
+<a name="cluster">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cluster</h4>
+<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html" title="class in org.apache.hadoop.hbase">MiniHBaseCluster</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.80">cluster</a></pre>
+</li>
+</ul>
+<a name="master">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>master</h4>
+<pre>private static&nbsp;org.apache.hadoop.hbase.master.HMaster <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.81">master</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TestRogueRSAssignment--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TestRogueRSAssignment</h4>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.66">TestRogueRSAssignment</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setupConf-org.apache.hadoop.conf.Configuration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setupConf</h4>
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.83">setupConf</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+</li>
+</ul>
+<a name="setupCluster--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setupCluster</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.92">setupCluster</a>()
+                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="cleanupTest--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cleanupTest</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.107">cleanupTest</a>()
+                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="setup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setup</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.118">setup</a>()
+           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="tearDown--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tearDown</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.124">tearDown</a>()
+              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="testReportRSWithWrongRegion--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testReportRSWithWrongRegion</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.134">testReportRSWithWrongRegion</a>()
+                                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="makeRSReportRequestWithRegions-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.HRegionInfo...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>makeRSReportRequestWithRegions</h4>
+<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerReportRequest.Builder&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.155">makeRSReportRequestWithRegions</a>(org.apache.hadoop.hbase.ServerName&nbsp;sn,
+                                                                                                                                                    org.apache.hadoop.hbase.HRegionInfo...&nbsp;regions)</pre>
+</li>
+</ul>
+<a name="createTable-org.apache.hadoop.hbase.TableName-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createTable</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionInfo&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.173">createTable</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName)
+                                                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="assertRegionCount-org.apache.hadoop.hbase.TableName-int-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>assertRegionCount</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionInfo&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#line.185">assertRegionCount</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
+                                                                    int&nbsp;nregions)
+                                                             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestRogueRSAssignment.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRegionStates.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" target="_top">Frames</a></li>
+<li><a href="TestRogueRSAssignment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html
index 8a89af0..26d6147 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRegionStates.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li>Next&nbsp;Class</li>
 </ul>
 <ul class="navList">
@@ -819,7 +819,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRegionStates.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li>Next&nbsp;Class</li>
 </ul>
 <ul class="navList">

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/org/apache/hadoop/hbase/master/assignment/package-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/assignment/package-frame.html b/testdevapidocs/org/apache/hadoop/hbase/master/assignment/package-frame.html
index 4d9a1a1..cdffced 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/assignment/package-frame.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/assignment/package-frame.html
@@ -26,6 +26,7 @@
 <li><a href="TestAssignmentOnRSCrash.html" title="class in org.apache.hadoop.hbase.master.assignment" target="classFrame">TestAssignmentOnRSCrash</a></li>
 <li><a href="TestMergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment" target="classFrame">TestMergeTableRegionsProcedure</a></li>
 <li><a href="TestRegionStates.html" title="class in org.apache.hadoop.hbase.master.assignment" target="classFrame">TestRegionStates</a></li>
+<li><a href="TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment" target="classFrame">TestRogueRSAssignment</a></li>
 <li><a href="TestSplitTableRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment" target="classFrame">TestSplitTableRegionProcedure</a></li>
 </ul>
 </div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/org/apache/hadoop/hbase/master/assignment/package-summary.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/assignment/package-summary.html b/testdevapidocs/org/apache/hadoop/hbase/master/assignment/package-summary.html
index 1b61a33..a20d4db 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/assignment/package-summary.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/assignment/package-summary.html
@@ -136,6 +136,12 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></td>
+<td class="colLast">
+<div class="block">Tests to verify master/ assignment manager functionality against rogue RS</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestSplitTableRegionProcedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/org/apache/hadoop/hbase/master/assignment/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/assignment/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/master/assignment/package-tree.html
index 5e61804..b8861f4 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/assignment/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/assignment/package-tree.html
@@ -121,6 +121,7 @@
 <li type="circle">org.apache.hadoop.hbase.master.assignment.<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestAssignmentOnRSCrash.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">TestAssignmentOnRSCrash</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.assignment.<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">TestMergeTableRegionsProcedure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.assignment.<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRegionStates.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">TestRegionStates</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.assignment.<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">TestRogueRSAssignment</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.assignment.<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">TestSplitTableRegionProcedure</span></a></li>
 </ul>
 </li>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/org/apache/hadoop/hbase/package-use.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/package-use.html b/testdevapidocs/org/apache/hadoop/hbase/package-use.html
index 5e54419..d09941c 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-use.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-use.html
@@ -1122,6 +1122,11 @@
 <div class="block">Facility for testing HBase.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/hadoop/hbase/class-use/MiniHBaseCluster.html#org.apache.hadoop.hbase.master.assignment">MiniHBaseCluster</a>
+<div class="block">This class creates a single process HBase cluster.</div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html
index e9cc74d..8a8dd4a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.396">TestRegionServerReadRequestMetrics.Metric</a>
+<pre>private static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.398">TestRegionServerReadRequestMetrics.Metric</a>
 extends <a href="http://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/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a>&gt;</pre>
 </li>
 </ul>
@@ -216,7 +216,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>REGION_READ</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.396">REGION_READ</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.398">REGION_READ</a></pre>
 </li>
 </ul>
 <a name="SERVER_READ">
@@ -225,7 +225,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>SERVER_READ</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.396">SERVER_READ</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.398">SERVER_READ</a></pre>
 </li>
 </ul>
 <a name="FILTERED_REGION_READ">
@@ -234,7 +234,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>FILTERED_REGION_READ</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.396">FILTERED_REGION_READ</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.398">FILTERED_REGION_READ</a></pre>
 </li>
 </ul>
 <a name="FILTERED_SERVER_READ">
@@ -243,7 +243,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FILTERED_SERVER_READ</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.396">FILTERED_SERVER_READ</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.398">FILTERED_SERVER_READ</a></pre>
 </li>
 </ul>
 </li>
@@ -260,7 +260,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.396">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.398">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -280,7 +280,7 @@ for (TestRegionServerReadRequestMetrics.Metric c : TestRegionServerReadRequestMe
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.396">valueOf</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.398">valueOf</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 


[08/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-shaded-client-project/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/project-info.html b/hbase-archetypes/hbase-shaded-client-project/project-info.html
index 9fc6255..64eb5e5 100644
--- a/hbase-archetypes/hbase-shaded-client-project/project-info.html
+++ b/hbase-archetypes/hbase-shaded-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-shaded-client-project/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/project-reports.html b/hbase-archetypes/hbase-shaded-client-project/project-reports.html
index 836c7ea..5b9d1bb 100644
--- a/hbase-archetypes/hbase-shaded-client-project/project-reports.html
+++ b/hbase-archetypes/hbase-shaded-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-shaded-client-project/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/project-summary.html b/hbase-archetypes/hbase-shaded-client-project/project-summary.html
index 5ef2266..661c8fb 100644
--- a/hbase-archetypes/hbase-shaded-client-project/project-summary.html
+++ b/hbase-archetypes/hbase-shaded-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-shaded-client-project/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/source-repository.html b/hbase-archetypes/hbase-shaded-client-project/source-repository.html
index db8ba1f..1cdddb4 100644
--- a/hbase-archetypes/hbase-shaded-client-project/source-repository.html
+++ b/hbase-archetypes/hbase-shaded-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/hbase-shaded-client-project/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/team-list.html b/hbase-archetypes/hbase-shaded-client-project/team-list.html
index 656de8d..4996812 100644
--- a/hbase-archetypes/hbase-shaded-client-project/team-list.html
+++ b/hbase-archetypes/hbase-shaded-client-project/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -523,7 +523,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/index.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/index.html b/hbase-archetypes/index.html
index e83c316..5f617a1 100644
--- a/hbase-archetypes/index.html
+++ b/hbase-archetypes/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -135,7 +135,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/integration.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/integration.html b/hbase-archetypes/integration.html
index 7f444bd..894f7e0 100644
--- a/hbase-archetypes/integration.html
+++ b/hbase-archetypes/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/issue-tracking.html b/hbase-archetypes/issue-tracking.html
index c7b291e..5cbb17a 100644
--- a/hbase-archetypes/issue-tracking.html
+++ b/hbase-archetypes/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/license.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/license.html b/hbase-archetypes/license.html
index bfe1a5b..49d88d7 100644
--- a/hbase-archetypes/license.html
+++ b/hbase-archetypes/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/plugin-management.html b/hbase-archetypes/plugin-management.html
index 7de4e63..7d54c10 100644
--- a/hbase-archetypes/plugin-management.html
+++ b/hbase-archetypes/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/plugins.html b/hbase-archetypes/plugins.html
index 457fc1f..a5316f2 100644
--- a/hbase-archetypes/plugins.html
+++ b/hbase-archetypes/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -210,7 +210,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/project-info.html b/hbase-archetypes/project-info.html
index d771a08..193a2f1 100644
--- a/hbase-archetypes/project-info.html
+++ b/hbase-archetypes/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/project-summary.html b/hbase-archetypes/project-summary.html
index a7fbc50..224d28f 100644
--- a/hbase-archetypes/project-summary.html
+++ b/hbase-archetypes/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -163,7 +163,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/source-repository.html b/hbase-archetypes/source-repository.html
index da2b271..9920d6d 100644
--- a/hbase-archetypes/source-repository.html
+++ b/hbase-archetypes/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-archetypes/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/team-list.html b/hbase-archetypes/team-list.html
index 26edd01..b43dfed 100644
--- a/hbase-archetypes/team-list.html
+++ b/hbase-archetypes/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -523,7 +523,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-spark/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-spark/checkstyle.html b/hbase-spark/checkstyle.html
index 3f641e0..11b933c 100644
--- a/hbase-spark/checkstyle.html
+++ b/hbase-spark/checkstyle.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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -412,7 +412,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-spark/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependencies.html b/hbase-spark/dependencies.html
index 25e9720..4739e8e 100644
--- a/hbase-spark/dependencies.html
+++ b/hbase-spark/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -5740,7 +5740,7 @@ The following provides more details on the included cryptographic software:
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-spark/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependency-convergence.html b/hbase-spark/dependency-convergence.html
index 0d32cf3..95ea356 100644
--- a/hbase-spark/dependency-convergence.html
+++ b/hbase-spark/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -571,7 +571,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-spark/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependency-info.html b/hbase-spark/dependency-info.html
index 7d08ec8..5bd214a 100644
--- a/hbase-spark/dependency-info.html
+++ b/hbase-spark/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-spark/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependency-management.html b/hbase-spark/dependency-management.html
index 05ee0ba..1d63a9a 100644
--- a/hbase-spark/dependency-management.html
+++ b/hbase-spark/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -736,7 +736,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-spark/index.html
----------------------------------------------------------------------
diff --git a/hbase-spark/index.html b/hbase-spark/index.html
index 94f34e7..32c97fb 100644
--- a/hbase-spark/index.html
+++ b/hbase-spark/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -122,7 +122,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-spark/integration.html
----------------------------------------------------------------------
diff --git a/hbase-spark/integration.html b/hbase-spark/integration.html
index 4672474..e36b8ce 100644
--- a/hbase-spark/integration.html
+++ b/hbase-spark/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-spark/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-spark/issue-tracking.html b/hbase-spark/issue-tracking.html
index 5eb34d8..c41097c 100644
--- a/hbase-spark/issue-tracking.html
+++ b/hbase-spark/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-spark/license.html
----------------------------------------------------------------------
diff --git a/hbase-spark/license.html b/hbase-spark/license.html
index 5820757..cc61b69 100644
--- a/hbase-spark/license.html
+++ b/hbase-spark/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -111,209 +111,7 @@
 <h2><a name="Project_Licenses"></a>Project Licenses</h2><a name="Project_Licenses"></a>
 <div class="section">
 <h3><a name="Apache_License_Version_2.0"></a>Apache License, Version 2.0</h3><a name="Apache_License_Version_2.0"></a>
-<div class="source"><pre class="prettyprint">
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      &quot;License&quot; shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      &quot;Licensor&quot; shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      &quot;Legal Entity&quot; shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      &quot;control&quot; means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      &quot;You&quot; (or &quot;Your&quot;) shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      &quot;Source&quot; form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      &quot;Object&quot; form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      &quot;Work&quot; shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      &quot;Derivative Works&quot; shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      &quot;Contribution&quot; shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, &quot;submitted&quot;
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as &quot;Not a Contribution.&quot;
-
-      &quot;Contributor&quot; shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a &quot;NOTICE&quot; text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an &quot;AS IS&quot; BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets &quot;[]&quot;
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same &quot;printed page&quot; as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-</pre></div></div></div>
+<p>Can't read the url [https://www.apache.org/licenses/LICENSE-2.0.txt] : Read timed out</p></div></div>
                   </div>
           </div>
 
@@ -326,7 +124,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-spark/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-spark/mail-lists.html b/hbase-spark/mail-lists.html
index 559f478..54a478e 100644
--- a/hbase-spark/mail-lists.html
+++ b/hbase-spark/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-spark/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-spark/plugin-management.html b/hbase-spark/plugin-management.html
index 293b9fc..a536eca 100644
--- a/hbase-spark/plugin-management.html
+++ b/hbase-spark/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-spark/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-spark/plugins.html b/hbase-spark/plugins.html
index 53a581a..362b5a0 100644
--- a/hbase-spark/plugins.html
+++ b/hbase-spark/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -234,7 +234,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-spark/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-spark/project-info.html b/hbase-spark/project-info.html
index 106cbb7..eb5026b 100644
--- a/hbase-spark/project-info.html
+++ b/hbase-spark/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -170,7 +170,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-spark/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-spark/project-reports.html b/hbase-spark/project-reports.html
index 8e80a59..720eddf 100644
--- a/hbase-spark/project-reports.html
+++ b/hbase-spark/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -131,7 +131,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-spark/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-spark/source-repository.html b/hbase-spark/source-repository.html
index b922a90..52644be 100644
--- a/hbase-spark/source-repository.html
+++ b/hbase-spark/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/hbase-spark/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-spark/team-list.html b/hbase-spark/team-list.html
index 33e155b..71f4584 100644
--- a/hbase-spark/team-list.html
+++ b/hbase-spark/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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -523,7 +523,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
index de579be..fcf41dd 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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <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" />
@@ -296,7 +296,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
index c79a8c4..c4bd213 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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <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" />
@@ -293,7 +293,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index 9c2b77c..ac86497 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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <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" />
@@ -281,7 +281,209 @@
 <h2><a name="Project_Licenses"></a>Project Licenses</h2><a name="Project_Licenses"></a>
 <div class="section">
 <h3><a name="Apache_License_Version_2.0"></a>Apache License, Version 2.0</h3><a name="Apache_License_Version_2.0"></a>
-<p>Can't read the url [https://www.apache.org/licenses/LICENSE-2.0.txt] : connect timed out</p></div></div>
+<div class="source"><pre class="prettyprint">
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      &quot;License&quot; shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      &quot;Licensor&quot; shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      &quot;Legal Entity&quot; shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      &quot;control&quot; means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      &quot;You&quot; (or &quot;Your&quot;) shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      &quot;Source&quot; form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      &quot;Object&quot; form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      &quot;Work&quot; shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      &quot;Derivative Works&quot; shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      &quot;Contribution&quot; shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, &quot;submitted&quot;
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as &quot;Not a Contribution.&quot;
+
+      &quot;Contributor&quot; shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a &quot;NOTICE&quot; text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an &quot;AS IS&quot; BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets &quot;[]&quot;
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same &quot;printed page&quot; as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+</pre></div></div></div>
                   </div>
           </div>
 
@@ -294,7 +496,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

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

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

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
index af7713a..b1682a2 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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <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" />
@@ -380,7 +380,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index bd23cb7..5071ecd 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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <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" />
@@ -304,7 +304,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index f5dbccd..020585c 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="20170821" />
+    <meta name="Date-Revision-yyyymmdd" content="20170822" />
     <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" />
@@ -693,7 +693,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-08-21</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-08-22</li>
             </p>
                 </div>
 


[20/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
index f32f86a..8e1ffb4 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
@@ -284,10 +284,10 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableSplit.Version.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableSplit.Version</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html
index 2c6986f..9690604 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1017">AssignmentManager.RegionInTransitionChore</a>
+<pre>private static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1020">AssignmentManager.RegionInTransitionChore</a>
 extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureInMemoryChore.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureInMemoryChore</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&gt;</pre>
 </li>
 </ul>
@@ -240,7 +240,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureI
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RegionInTransitionChore</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html#line.1018">RegionInTransitionChore</a>(int&nbsp;timeoutMsec)</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html#line.1021">RegionInTransitionChore</a>(int&nbsp;timeoutMsec)</pre>
 </li>
 </ul>
 </li>
@@ -257,7 +257,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureI
 <ul class="blockListLast">
 <li class="blockList">
 <h4>periodicExecute</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html#line.1023">periodicExecute</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html#line.1026">periodicExecute</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureInMemoryChore.html#periodicExecute-TEnvironment-">periodicExecute</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureInMemoryChore.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureInMemoryChore</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&gt;</code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html
index 9fc3978..c0c604e 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1044">AssignmentManager.RegionInTransitionStat</a>
+<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1047">AssignmentManager.RegionInTransitionStat</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -266,7 +266,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>ritThreshold</h4>
-<pre>private final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1045">ritThreshold</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1048">ritThreshold</a></pre>
 </li>
 </ul>
 <a name="ritsOverThreshold">
@@ -275,7 +275,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>ritsOverThreshold</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/hadoop/hbase/master/RegionState.html" title="class in org.apache.hadoop.hbase.master">RegionState</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1047">ritsOverThreshold</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/hadoop/hbase/master/RegionState.html" title="class in org.apache.hadoop.hbase.master">RegionState</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1050">ritsOverThreshold</a></pre>
 </li>
 </ul>
 <a name="statTimestamp">
@@ -284,7 +284,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>statTimestamp</h4>
-<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1048">statTimestamp</a></pre>
+<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1051">statTimestamp</a></pre>
 </li>
 </ul>
 <a name="oldestRITTime">
@@ -293,7 +293,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>oldestRITTime</h4>
-<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1049">oldestRITTime</a></pre>
+<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1052">oldestRITTime</a></pre>
 </li>
 </ul>
 <a name="totalRITsTwiceThreshold">
@@ -302,7 +302,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>totalRITsTwiceThreshold</h4>
-<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1050">totalRITsTwiceThreshold</a></pre>
+<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1053">totalRITsTwiceThreshold</a></pre>
 </li>
 </ul>
 <a name="totalRITs">
@@ -311,7 +311,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>totalRITs</h4>
-<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1051">totalRITs</a></pre>
+<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1054">totalRITs</a></pre>
 </li>
 </ul>
 </li>
@@ -328,7 +328,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RegionInTransitionStat</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1054">RegionInTransitionStat</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1057">RegionInTransitionStat</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
 </li>
@@ -345,7 +345,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getRITThreshold</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1059">getRITThreshold</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1062">getRITThreshold</a>()</pre>
 </li>
 </ul>
 <a name="getTimestamp--">
@@ -354,7 +354,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getTimestamp</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1063">getTimestamp</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1066">getTimestamp</a>()</pre>
 </li>
 </ul>
 <a name="getTotalRITs--">
@@ -363,7 +363,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getTotalRITs</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1067">getTotalRITs</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1070">getTotalRITs</a>()</pre>
 </li>
 </ul>
 <a name="getOldestRITTime--">
@@ -372,7 +372,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getOldestRITTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1071">getOldestRITTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1074">getOldestRITTime</a>()</pre>
 </li>
 </ul>
 <a name="getTotalRITsOverThreshold--">
@@ -381,7 +381,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getTotalRITsOverThreshold</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1075">getTotalRITsOverThreshold</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1078">getTotalRITsOverThreshold</a>()</pre>
 </li>
 </ul>
 <a name="hasRegionsTwiceOverThreshold--">
@@ -390,7 +390,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hasRegionsTwiceOverThreshold</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1080">hasRegionsTwiceOverThreshold</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1083">hasRegionsTwiceOverThreshold</a>()</pre>
 </li>
 </ul>
 <a name="hasRegionsOverThreshold--">
@@ -399,7 +399,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hasRegionsOverThreshold</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1084">hasRegionsOverThreshold</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1087">hasRegionsOverThreshold</a>()</pre>
 </li>
 </ul>
 <a name="getRegionOverThreshold--">
@@ -408,7 +408,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionOverThreshold</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../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/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1089">getRegionOverThreshold</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../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/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1092">getRegionOverThreshold</a>()</pre>
 </li>
 </ul>
 <a name="isRegionOverThreshold-org.apache.hadoop.hbase.HRegionInfo-">
@@ -417,7 +417,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>isRegionOverThreshold</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1094">isRegionOverThreshold</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1097">isRegionOverThreshold</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</pre>
 </li>
 </ul>
 <a name="isRegionTwiceOverThreshold-org.apache.hadoop.hbase.HRegionInfo-">
@@ -426,7 +426,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>isRegionTwiceOverThreshold</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1099">isRegionTwiceOverThreshold</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1102">isRegionTwiceOverThreshold</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</pre>
 </li>
 </ul>
 <a name="update-org.apache.hadoop.hbase.master.assignment.AssignmentManager-">
@@ -435,7 +435,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>update</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1107">update</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a>&nbsp;am)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1110">update</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a>&nbsp;am)</pre>
 </li>
 </ul>
 <a name="update-java.util.Collection-long-">
@@ -444,7 +444,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>update</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1114">update</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/RegionState.html" title="class in org.apache.hadoop.hbase.master">RegionState</a>&gt;&nbsp;regions,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html#line.1117">update</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/RegionState.html" title="class in org.apache.hadoop.hbase.master">RegionState</a>&gt;&nbsp;regions,
                     long&nbsp;currentTime)</pre>
 </li>
 </ul>


[07/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-frame.html b/testdevapidocs/allclasses-frame.html
index ea07f82..9d8b1ad 100644
--- a/testdevapidocs/allclasses-frame.html
+++ b/testdevapidocs/allclasses-frame.html
@@ -1691,6 +1691,7 @@
 <li><a href="org/apache/hadoop/hbase/client/TestResultScannerCursor.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestResultScannerCursor</a></li>
 <li><a href="org/apache/hadoop/hbase/client/TestResultSizeEstimation.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestResultSizeEstimation</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/TestReversibleScanners.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">TestReversibleScanners</a></li>
+<li><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment" target="classFrame">TestRogueRSAssignment</a></li>
 <li><a href="org/apache/hadoop/hbase/master/TestRollingRestart.html" title="class in org.apache.hadoop.hbase.master" target="classFrame">TestRollingRestart</a></li>
 <li><a href="org/apache/hadoop/hbase/util/TestRootPath.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">TestRootPath</a></li>
 <li><a href="org/apache/hadoop/hbase/mapred/TestRowCounter.html" title="class in org.apache.hadoop.hbase.mapred" target="classFrame">TestRowCounter</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-noframe.html b/testdevapidocs/allclasses-noframe.html
index 5f40b55..98ac58c 100644
--- a/testdevapidocs/allclasses-noframe.html
+++ b/testdevapidocs/allclasses-noframe.html
@@ -1691,6 +1691,7 @@
 <li><a href="org/apache/hadoop/hbase/client/TestResultScannerCursor.html" title="class in org.apache.hadoop.hbase.client">TestResultScannerCursor</a></li>
 <li><a href="org/apache/hadoop/hbase/client/TestResultSizeEstimation.html" title="class in org.apache.hadoop.hbase.client">TestResultSizeEstimation</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/TestReversibleScanners.html" title="class in org.apache.hadoop.hbase.regionserver">TestReversibleScanners</a></li>
+<li><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></li>
 <li><a href="org/apache/hadoop/hbase/master/TestRollingRestart.html" title="class in org.apache.hadoop.hbase.master">TestRollingRestart</a></li>
 <li><a href="org/apache/hadoop/hbase/util/TestRootPath.html" title="class in org.apache.hadoop.hbase.util">TestRootPath</a></li>
 <li><a href="org/apache/hadoop/hbase/mapred/TestRowCounter.html" title="class in org.apache.hadoop.hbase.mapred">TestRowCounter</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/constant-values.html b/testdevapidocs/constant-values.html
index 6c2b647..c7a82c0 100644
--- a/testdevapidocs/constant-values.html
+++ b/testdevapidocs/constant-values.html
@@ -6699,6 +6699,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.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</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.master.assignment.TestRogueRSAssignment.initialRegionCount">
+<!--   -->
+</a><code>private&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#initialRegionCount">initialRegionCount</a></code></td>
+<td class="colLast"><code>3</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.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestSplitTableRegionProcedure</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/b7626a4c/testdevapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index fa05221..87cbae8 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -827,6 +827,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html#admin">admin</a></span> - Static variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestMergeTableRegionsProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#admin">admin</a></span> - Static variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticBalancerPickers.html#admin">admin</a></span> - Variable in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticBalancerPickers.html" title="class in org.apache.hadoop.hbase.master.balancer">TestFavoredStochasticBalancerPickers</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#admin">admin</a></span> - Variable in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">TestFavoredStochasticLoadBalancer</a></dt>
@@ -1645,6 +1647,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html#assertRegionCount-org.apache.hadoop.hbase.TableName-int-">assertRegionCount(TableName, int)</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestMergeTableRegionsProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#assertRegionCount-org.apache.hadoop.hbase.TableName-int-">assertRegionCount(TableName, int)</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.html#assertRegionMetrics-java.lang.String-long-">assertRegionMetrics(String, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionServerMetrics</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/HBaseTestingUtility.html#assertRegionOnlyOnServer-org.apache.hadoop.hbase.HRegionInfo-org.apache.hadoop.hbase.ServerName-long-">assertRegionOnlyOnServer(HRegionInfo, ServerName, long)</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></dt>
@@ -3975,6 +3979,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html#cleanupTest--">cleanupTest()</a></span> - Static method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestMergeTableRegionsProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#cleanupTest--">cleanupTest()</a></span> - Static method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html#cleanupTest--">cleanupTest()</a></span> - Static method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestSplitTableRegionProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/TestSnapshotFromMaster.html#cleanupTest--">cleanupTest()</a></span> - Static method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/TestSnapshotFromMaster.html" title="class in org.apache.hadoop.hbase.master.cleaner">TestSnapshotFromMaster</a></dt>
@@ -4277,6 +4283,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/TestWALPlayer.html#cluster">cluster</a></span> - Static variable in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TestWALPlayer.html" title="class in org.apache.hadoop.hbase.mapreduce">TestWALPlayer</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#cluster">cluster</a></span> - Static variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#cluster">cluster</a></span> - Variable in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">TestFavoredStochasticLoadBalancer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/TestRegionLocationFinder.html#cluster">cluster</a></span> - Static variable in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/TestRegionLocationFinder.html" title="class in org.apache.hadoop.hbase.master.balancer">TestRegionLocationFinder</a></dt>
@@ -5186,6 +5194,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html#conf">conf</a></span> - Static variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestMergeTableRegionsProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#conf">conf</a></span> - Static variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/BalancerTestBase.html#conf">conf</a></span> - Static variable in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/BalancerTestBase.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerTestBase</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/TestFavoredNodeTableImport.html#conf">conf</a></span> - Static variable in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/TestFavoredNodeTableImport.html" title="class in org.apache.hadoop.hbase.master.balancer">TestFavoredNodeTableImport</a></dt>
@@ -7364,6 +7374,8 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html#createTable-org.apache.hadoop.hbase.TableName-">createTable(TableName)</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestMergeTableRegionsProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#createTable-org.apache.hadoop.hbase.TableName-">createTable(TableName)</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MockNoopMasterServices.html#createTable-org.apache.hadoop.hbase.HTableDescriptor-byte:A:A-long-long-">createTable(HTableDescriptor, byte[][], long, long)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MockNoopMasterServices.html" title="class in org.apache.hadoop.hbase.master">MockNoopMasterServices</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureTestingUtility.html#createTable-org.apache.hadoop.hbase.procedure2.ProcedureExecutor-org.apache.hadoop.hbase.TableName-byte:A:A-java.lang.String...-">createTable(ProcedureExecutor&lt;MasterProcedureEnv&gt;, TableName, byte[][], String...)</a></span> - Static method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureTestingUtility.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureTestingUtility</a></dt>
@@ -9991,6 +10003,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.FaultyRsExecutor.html#exception">exception</a></span> - Variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.FaultyRsExecutor.html" title="class in org.apache.hadoop.hbase.master.assignment">TestAssignmentManager.FaultyRsExecutor</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#exception">exception</a></span> - Variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/locking/TestLockProcedure.html#exception">exception</a></span> - Variable in class org.apache.hadoop.hbase.master.locking.<a href="org/apache/hadoop/hbase/master/locking/TestLockProcedure.html" title="class in org.apache.hadoop.hbase.master.locking">TestLockProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/TestHBaseSaslRpcClient.html#exception">exception</a></span> - Variable in class org.apache.hadoop.hbase.security.<a href="org/apache/hadoop/hbase/security/TestHBaseSaslRpcClient.html" title="class in org.apache.hadoop.hbase.security">TestHBaseSaslRpcClient</a></dt>
@@ -10754,6 +10768,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html#FAMILY">FAMILY</a></span> - Static variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestMergeTableRegionsProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#FAMILY">FAMILY</a></span> - Static variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/TestRegionLocationFinder.html#FAMILY">FAMILY</a></span> - Static variable in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/TestRegionLocationFinder.html" title="class in org.apache.hadoop.hbase.master.balancer">TestRegionLocationFinder</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/TestCatalogJanitorInMemoryStates.html#FAMILY">FAMILY</a></span> - Static variable in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/TestCatalogJanitorInMemoryStates.html" title="class in org.apache.hadoop.hbase.master">TestCatalogJanitorInMemoryStates</a></dt>
@@ -16913,6 +16929,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html#initialRegionCount">initialRegionCount</a></span> - Static variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestMergeTableRegionsProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#initialRegionCount">initialRegionCount</a></span> - Static variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/chaos/actions/Action.html#initialServers">initialServers</a></span> - Variable in class org.apache.hadoop.hbase.chaos.actions.<a href="org/apache/hadoop/hbase/chaos/actions/Action.html" title="class in org.apache.hadoop.hbase.chaos.actions">Action</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/chaos/actions/Action.html#initialStatus">initialStatus</a></span> - Variable in class org.apache.hadoop.hbase.chaos.actions.<a href="org/apache/hadoop/hbase/chaos/actions/Action.html" title="class in org.apache.hadoop.hbase.chaos.actions">Action</a></dt>
@@ -19574,6 +19592,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRegionStates.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRegionStates.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRegionStates</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestSplitTableRegionProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/BalancerTestBase.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/BalancerTestBase.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerTestBase</a></dt>
@@ -20332,8 +20352,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/TestZooKeeperNodeTracker.TestingZKListener.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/TestZooKeeperNodeTracker.TestingZKListener.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZooKeeperNodeTracker.TestingZKListener</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZooKeeperWatcher</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ProcessBasedLocalHBaseCluster.LocalDaemonLogTailer.html#LOG_FILES">LOG_FILES</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ProcessBasedLocalHBaseCluster.LocalDaemonLogTailer.html" title="class in org.apache.hadoop.hbase.util">ProcessBasedLocalHBaseCluster.LocalDaemonLogTailer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ProcessBasedLocalHBaseCluster.html#LOG_PATH_FORMAT_RE">LOG_PATH_FORMAT_RE</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ProcessBasedLocalHBaseCluster.html" title="class in org.apache.hadoop.hbase.util">ProcessBasedLocalHBaseCluster</a></dt>
@@ -20666,6 +20684,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.VerifyReducer.html#makeRowReadable-byte:A-int-">makeRowReadable(byte[], int)</a></span> - Method in class org.apache.hadoop.hbase.test.<a href="org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.VerifyReducer.html" title="class in org.apache.hadoop.hbase.test">IntegrationTestLoadAndVerify.VerifyReducer</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#makeRSReportRequestWithRegions-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.HRegionInfo...-">makeRSReportRequestWithRegions(ServerName, HRegionInfo...)</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestClientNoCluster.html#makeServerNames-int-">makeServerNames(int)</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestClientNoCluster.html" title="class in org.apache.hadoop.hbase.client">TestClientNoCluster</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestFromClientSide.html#makeStamps-int-">makeStamps(int)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestFromClientSide.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSide</a></dt>
@@ -20816,6 +20836,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.html#master">master</a></span> - Variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">TestAssignmentManager</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#master">master</a></span> - Static variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/TestBaseLoadBalancer.html#master">master</a></span> - Static variable in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/TestBaseLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">TestBaseLoadBalancer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#master">master</a></span> - Variable in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">TestFavoredStochasticLoadBalancer</a></dt>
@@ -22368,6 +22390,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html#name">name</a></span> - Variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestMergeTableRegionsProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#name">name</a></span> - Variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html#name">name</a></span> - Variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestSplitTableRegionProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/TestBaseLoadBalancer.html#name">name</a></span> - Variable in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/TestBaseLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">TestBaseLoadBalancer</a></dt>
@@ -32002,6 +32026,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRegionStates.html#setUp--">setUp()</a></span> - Static method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRegionStates.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRegionStates</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#setup--">setup()</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html#setup--">setup()</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestSplitTableRegionProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#setup--">setup()</a></span> - Method in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html" title="class in org.apache.hadoop.hbase.master.balancer">TestRegionsOnMasterOptions</a></dt>
@@ -33130,6 +33156,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html#setupCluster--">setupCluster()</a></span> - Static method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestMergeTableRegionsProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#setupCluster--">setupCluster()</a></span> - Static method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html#setupCluster--">setupCluster()</a></span> - Static method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestSplitTableRegionProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#setupCluster--">setupCluster()</a></span> - Static method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">TestHFileCleaner</a></dt>
@@ -33210,6 +33238,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html#setupConf-org.apache.hadoop.conf.Configuration-">setupConf(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestMergeTableRegionsProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#setupConf-org.apache.hadoop.conf.Configuration-">setupConf(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html#setupConf-org.apache.hadoop.conf.Configuration-">setupConf(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestSplitTableRegionProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/LoadBalancerPerformanceEvaluation.html#setupConf--">setupConf()</a></span> - Method in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/LoadBalancerPerformanceEvaluation.html" title="class in org.apache.hadoop.hbase.master.balancer">LoadBalancerPerformanceEvaluation</a></dt>
@@ -34927,6 +34957,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/chaos/policies/CompositeSequentialPolicy.html#stop-java.lang.String-">stop(String)</a></span> - Method in class org.apache.hadoop.hbase.chaos.policies.<a href="org/apache/hadoop/hbase/chaos/policies/CompositeSequentialPolicy.html" title="class in org.apache.hadoop.hbase.chaos.policies">CompositeSequentialPolicy</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#stop">stop</a></span> - Variable in class org.apache.hadoop.hbase.chaos.util.<a href="org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html" title="class in org.apache.hadoop.hbase.chaos.util">ChaosMonkeyRunner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestResultFromCoprocessor.MyObserver.html#stop-org.apache.hadoop.hbase.CoprocessorEnvironment-">stop(CoprocessorEnvironment)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestResultFromCoprocessor.MyObserver.html" title="class in org.apache.hadoop.hbase.client">TestResultFromCoprocessor.MyObserver</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ClusterManager.html#stop-org.apache.hadoop.hbase.ClusterManager.ServiceType-java.lang.String-int-">stop(ClusterManager.ServiceType, String, int)</a></span> - Method in interface org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ClusterManager.html" title="interface in org.apache.hadoop.hbase">ClusterManager</a></dt>
@@ -35158,6 +35190,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/AssignmentTestingUtil.html#stopRs-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.ServerName-">stopRs(HBaseTestingUtility, ServerName)</a></span> - Static method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/AssignmentTestingUtil.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentTestingUtil</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#stopRunner--">stopRunner()</a></span> - Method in class org.apache.hadoop.hbase.chaos.util.<a href="org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html" title="class in org.apache.hadoop.hbase.chaos.util">ChaosMonkeyRunner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/IntegrationTestRpcClient.Cluster.html#stopRunning--">stopRunning()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/IntegrationTestRpcClient.Cluster.html" title="class in org.apache.hadoop.hbase.ipc">IntegrationTestRpcClient.Cluster</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/IntegrationTestRpcClient.MiniChaosMonkey.html#stopRunning--">stopRunning()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/IntegrationTestRpcClient.MiniChaosMonkey.html" title="class in org.apache.hadoop.hbase.ipc">IntegrationTestRpcClient.MiniChaosMonkey</a></dt>
@@ -36717,6 +36751,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRegionStates.html#tearDown--">tearDown()</a></span> - Static method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRegionStates.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRegionStates</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#tearDown--">tearDown()</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html#tearDown--">tearDown()</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestSplitTableRegionProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#tearDown--">tearDown()</a></span> - Method in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html" title="class in org.apache.hadoop.hbase.master.balancer">TestRegionsOnMasterOptions</a></dt>
@@ -41803,8 +41839,6 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestFromClientSide3.html#testConnectionDefaultUsesCodec--">testConnectionDefaultUsesCodec()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestFromClientSide3.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSide3</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html#testConnectionEvent--">testConnectionEvent()</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/TestZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZooKeeperWatcher</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapred/TestTableOutputFormatConnectionExhaust.html#testConnectionExhaustion--">testConnectionExhaustion()</a></span> - Method in class org.apache.hadoop.hbase.mapred.<a href="org/apache/hadoop/hbase/mapred/TestTableOutputFormatConnectionExhaust.html" title="class in org.apache.hadoop.hbase.mapred">TestTableOutputFormatConnectionExhaust</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestHCM.html#testConnectionIdle--">testConnectionIdle()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestHCM.html" title="class in org.apache.hadoop.hbase.client">TestHCM</a></dt>
@@ -52470,6 +52504,8 @@
 <div class="block">Tests region sever reportForDuty with backup master becomes primary master after
  the first master goes away.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#testReportRSWithWrongRegion--">testReportRSWithWrongRegion()</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.html#testRequestCount--">testRequestCount()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionServerMetrics</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestSimpleRequestController.html#testRequestHeapSizeChecker--">testRequestHeapSizeChecker()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestSimpleRequestController.html" title="class in org.apache.hadoop.hbase.client">TestSimpleRequestController</a></dt>
@@ -52817,6 +52853,12 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/crypto/aes/TestCommonsAES.TestRNG.html#TestRNG--">TestRNG()</a></span> - Constructor for class org.apache.hadoop.hbase.io.crypto.aes.<a href="org/apache/hadoop/hbase/io/crypto/aes/TestCommonsAES.TestRNG.html" title="class in org.apache.hadoop.hbase.io.crypto.aes">TestCommonsAES.TestRNG</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">TestRogueRSAssignment</span></a> - Class in <a href="org/apache/hadoop/hbase/master/assignment/package-summary.html">org.apache.hadoop.hbase.master.assignment</a></dt>
+<dd>
+<div class="block">Tests to verify master/ assignment manager functionality against rogue RS</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#TestRogueRSAssignment--">TestRogueRSAssignment()</a></span> - Constructor for class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.html#testRollAndRemove--">testRollAndRemove()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">TestWALProcedureStore</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html#testRollbackAndDoubleExecution--">testRollbackAndDoubleExecution()</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestMergeTableRegionsProcedure</a></dt>
@@ -59459,6 +59501,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRegionStates.html#UTIL">UTIL</a></span> - Static variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRegionStates.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRegionStates</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#UTIL">UTIL</a></span> - Static variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRogueRSAssignment</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html#UTIL">UTIL</a></span> - Static variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TestSplitTableRegionProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/LoadBalancerPerformanceEvaluation.html#UTIL">UTIL</a></span> - Static variable in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/LoadBalancerPerformanceEvaluation.html" title="class in org.apache.hadoop.hbase.master.balancer">LoadBalancerPerformanceEvaluation</a></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html b/testdevapidocs/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html
index 23ba269..270a54f 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.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":9,"i9":10,"i10":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9,"i9":10,"i10":10,"i11":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -175,14 +175,18 @@ extends org.apache.hadoop.hbase.util.AbstractHBaseTool</pre>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#noClusterCleanUp">noClusterCleanUp</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>private boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#stop">stop</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#TABLE_NAME_OPT">TABLE_NAME_OPT</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/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/chaos/util/ChaosMonkeyRunner.html#tableName">tableName</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/IntegrationTestingUtility.html" title="class in org.apache.hadoop.hbase">IntegrationTestingUtility</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#util">util</a></span></code>&nbsp;</td>
 </tr>
@@ -269,6 +273,10 @@ extends org.apache.hadoop.hbase.util.AbstractHBaseTool</pre>
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#setUpCluster--">setUpCluster</a></span>()</code>&nbsp;</td>
 </tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#stopRunner--">stopRunner</a></span>()</code>&nbsp;</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.AbstractHBaseTool">
@@ -416,12 +424,21 @@ extends org.apache.hadoop.hbase.util.AbstractHBaseTool</pre>
 <a name="familyName">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>familyName</h4>
 <pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.54">familyName</a></pre>
 </li>
 </ul>
+<a name="stop">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>stop</h4>
+<pre>private volatile&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.55">stop</a></pre>
+</li>
+</ul>
 </li>
 </ul>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -453,7 +470,7 @@ extends org.apache.hadoop.hbase.util.AbstractHBaseTool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>addOptions</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.57">addOptions</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.58">addOptions</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>addOptions</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.util.AbstractHBaseTool</code></dd>
@@ -466,7 +483,7 @@ extends org.apache.hadoop.hbase.util.AbstractHBaseTool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>processOptions</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.66">processOptions</a>(org.apache.commons.cli.CommandLine&nbsp;cmd)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.67">processOptions</a>(org.apache.commons.cli.CommandLine&nbsp;cmd)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>processOptions</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.util.AbstractHBaseTool</code></dd>
@@ -479,7 +496,7 @@ extends org.apache.hadoop.hbase.util.AbstractHBaseTool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>doWork</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.92">doWork</a>()
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.93">doWork</a>()
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -489,13 +506,22 @@ extends org.apache.hadoop.hbase.util.AbstractHBaseTool</pre>
 </dl>
 </li>
 </ul>
+<a name="stopRunner--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stopRunner</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.102">stopRunner</a>()</pre>
+</li>
+</ul>
 <a name="setUpCluster--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>setUpCluster</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.100">setUpCluster</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.106">setUpCluster</a>()
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -509,7 +535,7 @@ extends org.apache.hadoop.hbase.util.AbstractHBaseTool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>isDistributedCluster</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.113">isDistributedCluster</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.119">isDistributedCluster</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
 <a name="getAndStartMonkey--">
@@ -518,7 +544,7 @@ extends org.apache.hadoop.hbase.util.AbstractHBaseTool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getAndStartMonkey</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.117">getAndStartMonkey</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.123">getAndStartMonkey</a>()
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -532,7 +558,7 @@ extends org.apache.hadoop.hbase.util.AbstractHBaseTool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getTestingUtil</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/IntegrationTestingUtility.html" title="class in org.apache.hadoop.hbase">IntegrationTestingUtility</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.129">getTestingUtil</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/IntegrationTestingUtility.html" title="class in org.apache.hadoop.hbase">IntegrationTestingUtility</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.135">getTestingUtil</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
 <a name="getDefaultMonkeyFactory--">
@@ -541,7 +567,7 @@ extends org.apache.hadoop.hbase.util.AbstractHBaseTool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getDefaultMonkeyFactory</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.html" title="class in org.apache.hadoop.hbase.chaos.factories">MonkeyFactory</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.141">getDefaultMonkeyFactory</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.html" title="class in org.apache.hadoop.hbase.chaos.factories">MonkeyFactory</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.147">getDefaultMonkeyFactory</a>()</pre>
 </li>
 </ul>
 <a name="getTablename--">
@@ -550,7 +576,7 @@ extends org.apache.hadoop.hbase.util.AbstractHBaseTool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getTablename</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.TableName&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.146">getTablename</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.TableName&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.152">getTablename</a>()</pre>
 </li>
 </ul>
 <a name="getColumnFamilies--">
@@ -559,7 +585,7 @@ extends org.apache.hadoop.hbase.util.AbstractHBaseTool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getColumnFamilies</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.150">getColumnFamilies</a>()</pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.156">getColumnFamilies</a>()</pre>
 </li>
 </ul>
 <a name="main-java.lang.String:A-">
@@ -568,7 +594,7 @@ extends org.apache.hadoop.hbase.util.AbstractHBaseTool</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>main</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.154">main</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.html#line.165">main</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html
index 415a4ab..064aa28 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html
@@ -1963,6 +1963,10 @@
 <td class="colFirst"><code>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestMergeTableRegionsProcedure.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TestRogueRSAssignment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#UTIL">UTIL</a></span></code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/org/apache/hadoop/hbase/class-use/MiniHBaseCluster.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/class-use/MiniHBaseCluster.html b/testdevapidocs/org/apache/hadoop/hbase/class-use/MiniHBaseCluster.html
index cda6a89..2c9e097 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/class-use/MiniHBaseCluster.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/class-use/MiniHBaseCluster.html
@@ -107,22 +107,26 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.master.balancer">org.apache.hadoop.hbase.master.balancer</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.master.assignment">org.apache.hadoop.hbase.master.assignment</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.master.balancer">org.apache.hadoop.hbase.master.balancer</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver.wal">org.apache.hadoop.hbase.regionserver.wal</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver.wal">org.apache.hadoop.hbase.regionserver.wal</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.security.access">org.apache.hadoop.hbase.security.access</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
@@ -439,6 +443,24 @@
 </tbody>
 </table>
 </li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.master.assignment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html" title="class in org.apache.hadoop.hbase">MiniHBaseCluster</a> in <a href="../../../../../org/apache/hadoop/hbase/master/assignment/package-summary.html">org.apache.hadoop.hbase.master.assignment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/apache/hadoop/hbase/master/assignment/package-summary.html">org.apache.hadoop.hbase.master.assignment</a> declared as <a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html" title="class in org.apache.hadoop.hbase">MiniHBaseCluster</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html" title="class in org.apache.hadoop.hbase">MiniHBaseCluster</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TestRogueRSAssignment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html#cluster">cluster</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.master.balancer">
 <!--   -->
 </a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/org/apache/hadoop/hbase/client/TestClientClusterStatus.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestClientClusterStatus.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestClientClusterStatus.html
index 69bb957..de55b23 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestClientClusterStatus.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestClientClusterStatus.html
@@ -403,7 +403,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testMasterAndBackupMastersStatus</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestClientClusterStatus.html#line.169">testMasterAndBackupMastersStatus</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestClientClusterStatus.html#line.171">testMasterAndBackupMastersStatus</a>()
                                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -417,7 +417,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testOtherStatusInfos</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestClientClusterStatus.html#line.202">testOtherStatusInfos</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestClientClusterStatus.html#line.204">testOtherStatusInfos</a>()
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -431,7 +431,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>tearDownAfterClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestClientClusterStatus.html#line.218">tearDownAfterClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestClientClusterStatus.html#line.220">tearDownAfterClass</a>()
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/org/apache/hadoop/hbase/master/assignment/MockMasterServices.MockRegionStateStore.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/assignment/MockMasterServices.MockRegionStateStore.html b/testdevapidocs/org/apache/hadoop/hbase/master/assignment/MockMasterServices.MockRegionStateStore.html
index 53f0990..38d0637 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/assignment/MockMasterServices.MockRegionStateStore.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/assignment/MockMasterServices.MockRegionStateStore.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.275">MockMasterServices.MockRegionStateStore</a>
+<pre>private static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html#line.280">MockMasterServices.MockRegionStateStore</a>
 extends org.apache.hadoop.hbase.master.assignment.RegionStateStore</pre>
 </li>
 </ul>
@@ -237,7 +237,7 @@ extends org.apache.hadoop.hbase.master.assignment.RegionStateStore</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MockRegionStateStore</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.MockRegionStateStore.html#line.276">MockRegionStateStore</a>(org.apache.hadoop.hbase.master.MasterServices&nbsp;master)</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.MockRegionStateStore.html#line.281">MockRegionStateStore</a>(org.apache.hadoop.hbase.master.MasterServices&nbsp;master)</pre>
 </li>
 </ul>
 </li>
@@ -254,7 +254,7 @@ extends org.apache.hadoop.hbase.master.assignment.RegionStateStore</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>start</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.MockRegionStateStore.html#line.281">start</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.MockRegionStateStore.html#line.286">start</a>()
            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
@@ -270,7 +270,7 @@ extends org.apache.hadoop.hbase.master.assignment.RegionStateStore</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.MockRegionStateStore.html#line.285">stop</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.MockRegionStateStore.html#line.290">stop</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code>stop</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.master.assignment.RegionStateStore</code></dd>
@@ -283,7 +283,7 @@ extends org.apache.hadoop.hbase.master.assignment.RegionStateStore</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>updateRegionLocation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.MockRegionStateStore.html#line.289">updateRegionLocation</a>(org.apache.hadoop.hbase.HRegionInfo&nbsp;regionInfo,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.MockRegionStateStore.html#line.294">updateRegionLocation</a>(org.apache.hadoop.hbase.HRegionInfo&nbsp;regionInfo,
                                  org.apache.hadoop.hbase.master.RegionState.State&nbsp;state,
                                  org.apache.hadoop.hbase.ServerName&nbsp;regionLocation,
                                  org.apache.hadoop.hbase.ServerName&nbsp;lastHost,


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html
index 883a87d..6eb57fa 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html
@@ -54,1801 +54,1804 @@
 <span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.RegionStateListener;<a name="line.46"></a>
 <span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.ServerName;<a name="line.47"></a>
 <span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.TableName;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.exceptions.UnexpectedStateException;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.master.balancer.FavoredStochasticBalancer;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.master.AssignmentListener;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.master.LoadBalancer;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.master.MetricsAssignmentManager;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.master.NoSuchProcedureException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.master.RegionPlan;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.master.RegionState;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.master.RegionState.State;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.master.ServerListener;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.master.TableStateManager;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.ServerState;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.ServerStateNode;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>// TODO: why are they here?<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.master.procedure.ProcedureSyncWait;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.master.procedure.ServerCrashProcedure;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.procedure2.ProcedureEvent;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.procedure2.ProcedureInMemoryChore;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.procedure2.util.StringUtils;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionRequest;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionResponse;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.util.VersionInfo;<a name="line.88"></a>
-<span class="sourceLineNo">089</span><a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.com.google.common.annotations.VisibleForTesting;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Lists;<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>/**<a name="line.93"></a>
-<span class="sourceLineNo">094</span> * The AssignmentManager is the coordinator for region assign/unassign operations.<a name="line.94"></a>
-<span class="sourceLineNo">095</span> * &lt;ul&gt;<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * &lt;li&gt;In-memory states of regions and servers are stored in {@link RegionStates}.&lt;/li&gt;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> * &lt;li&gt;hbase:meta state updates are handled by {@link RegionStateStore}.&lt;/li&gt;<a name="line.97"></a>
-<span class="sourceLineNo">098</span> * &lt;/ul&gt;<a name="line.98"></a>
-<span class="sourceLineNo">099</span> * Regions are created by CreateTable, Split, Merge.<a name="line.99"></a>
-<span class="sourceLineNo">100</span> * Regions are deleted by DeleteTable, Split, Merge.<a name="line.100"></a>
-<span class="sourceLineNo">101</span> * Assigns are triggered by CreateTable, EnableTable, Split, Merge, ServerCrash.<a name="line.101"></a>
-<span class="sourceLineNo">102</span> * Unassigns are triggered by DisableTable, Split, Merge<a name="line.102"></a>
-<span class="sourceLineNo">103</span> */<a name="line.103"></a>
-<span class="sourceLineNo">104</span>@InterfaceAudience.Private<a name="line.104"></a>
-<span class="sourceLineNo">105</span>public class AssignmentManager implements ServerListener {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  private static final Log LOG = LogFactory.getLog(AssignmentManager.class);<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>  // TODO: AMv2<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  //  - handle region migration from hbase1 to hbase2.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>  //  - handle sys table assignment first (e.g. acl, namespace)<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  //  - handle table priorities<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  //  - If ServerBusyException trying to update hbase:meta, we abort the Master<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  //   See updateRegionLocation in RegionStateStore.<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  //<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  // See also<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  // https://docs.google.com/document/d/1eVKa7FHdeoJ1-9o8yZcOTAQbv0u0bblBlCCzVSIn69g/edit#heading=h.ystjyrkbtoq5<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  // for other TODOs.<a name="line.117"></a>
-<span class="sourceLineNo">118</span><a name="line.118"></a>
-<span class="sourceLineNo">119</span>  public static final String BOOTSTRAP_THREAD_POOL_SIZE_CONF_KEY =<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      "hbase.assignment.bootstrap.thread.pool.size";<a name="line.120"></a>
-<span class="sourceLineNo">121</span><a name="line.121"></a>
-<span class="sourceLineNo">122</span>  public static final String ASSIGN_DISPATCH_WAIT_MSEC_CONF_KEY =<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      "hbase.assignment.dispatch.wait.msec";<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  private static final int DEFAULT_ASSIGN_DISPATCH_WAIT_MSEC = 150;<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>  public static final String ASSIGN_DISPATCH_WAITQ_MAX_CONF_KEY =<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      "hbase.assignment.dispatch.wait.queue.max.size";<a name="line.127"></a>
-<span class="sourceLineNo">128</span>  private static final int DEFAULT_ASSIGN_DISPATCH_WAITQ_MAX = 100;<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span>  public static final String RIT_CHORE_INTERVAL_MSEC_CONF_KEY =<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      "hbase.assignment.rit.chore.interval.msec";<a name="line.131"></a>
-<span class="sourceLineNo">132</span>  private static final int DEFAULT_RIT_CHORE_INTERVAL_MSEC = 5 * 1000;<a name="line.132"></a>
-<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>  public static final String ASSIGN_MAX_ATTEMPTS =<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      "hbase.assignment.maximum.attempts";<a name="line.135"></a>
-<span class="sourceLineNo">136</span>  private static final int DEFAULT_ASSIGN_MAX_ATTEMPTS = 10;<a name="line.136"></a>
-<span class="sourceLineNo">137</span><a name="line.137"></a>
-<span class="sourceLineNo">138</span>  /** Region in Transition metrics threshold time */<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  public static final String METRICS_RIT_STUCK_WARNING_THRESHOLD =<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      "hbase.metrics.rit.stuck.warning.threshold";<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  private static final int DEFAULT_RIT_STUCK_WARNING_THRESHOLD = 60 * 1000;<a name="line.141"></a>
-<span class="sourceLineNo">142</span><a name="line.142"></a>
-<span class="sourceLineNo">143</span>  private final ProcedureEvent&lt;?&gt; metaInitializedEvent = new ProcedureEvent&lt;&gt;("meta initialized");<a name="line.143"></a>
-<span class="sourceLineNo">144</span>  private final ProcedureEvent&lt;?&gt; metaLoadEvent = new ProcedureEvent&lt;&gt;("meta load");<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>   * Indicator that AssignmentManager has recovered the region states so<a name="line.147"></a>
-<span class="sourceLineNo">148</span>   * that ServerCrashProcedure can be fully enabled and re-assign regions<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   * of dead servers. So that when re-assignment happens, AssignmentManager<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   * has proper region states.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   */<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  private final ProcedureEvent&lt;?&gt; failoverCleanupDone = new ProcedureEvent&lt;&gt;("failover cleanup");<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>  /** Listeners that are called on assignment events. */<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  private final CopyOnWriteArrayList&lt;AssignmentListener&gt; listeners =<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      new CopyOnWriteArrayList&lt;AssignmentListener&gt;();<a name="line.156"></a>
-<span class="sourceLineNo">157</span><a name="line.157"></a>
-<span class="sourceLineNo">158</span>  // TODO: why is this different from the listeners (carried over from the old AM)<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  private RegionStateListener regionStateListener;<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  private RegionNormalizer regionNormalizer;<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>  private final MetricsAssignmentManager metrics;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  private final RegionInTransitionChore ritChore;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private final MasterServices master;<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  private final AtomicBoolean running = new AtomicBoolean(false);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private final RegionStates regionStates = new RegionStates();<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  private final RegionStateStore regionStateStore;<a name="line.169"></a>
-<span class="sourceLineNo">170</span><a name="line.170"></a>
-<span class="sourceLineNo">171</span>  private final boolean shouldAssignRegionsWithFavoredNodes;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>  private final int assignDispatchWaitQueueMaxSize;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  private final int assignDispatchWaitMillis;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  private final int assignMaxAttempts;<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>  private final Object checkIfShouldMoveSystemRegionLock = new Object();<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>  private Thread assignThread;<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>  public AssignmentManager(final MasterServices master) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    this(master, new RegionStateStore(master));<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>  public AssignmentManager(final MasterServices master, final RegionStateStore stateStore) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    this.master = master;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    this.regionStateStore = stateStore;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    this.metrics = new MetricsAssignmentManager();<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>    final Configuration conf = master.getConfiguration();<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>    // Only read favored nodes if using the favored nodes load balancer.<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    this.shouldAssignRegionsWithFavoredNodes = FavoredStochasticBalancer.class.isAssignableFrom(<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        conf.getClass(HConstants.HBASE_MASTER_LOADBALANCER_CLASS, Object.class));<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>    this.assignDispatchWaitMillis = conf.getInt(ASSIGN_DISPATCH_WAIT_MSEC_CONF_KEY,<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        DEFAULT_ASSIGN_DISPATCH_WAIT_MSEC);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    this.assignDispatchWaitQueueMaxSize = conf.getInt(ASSIGN_DISPATCH_WAITQ_MAX_CONF_KEY,<a name="line.197"></a>
-<span class="sourceLineNo">198</span>        DEFAULT_ASSIGN_DISPATCH_WAITQ_MAX);<a name="line.198"></a>
-<span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span>    this.assignMaxAttempts = Math.max(1, conf.getInt(ASSIGN_MAX_ATTEMPTS,<a name="line.200"></a>
-<span class="sourceLineNo">201</span>        DEFAULT_ASSIGN_MAX_ATTEMPTS));<a name="line.201"></a>
-<span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>    int ritChoreInterval = conf.getInt(RIT_CHORE_INTERVAL_MSEC_CONF_KEY,<a name="line.203"></a>
-<span class="sourceLineNo">204</span>        DEFAULT_RIT_CHORE_INTERVAL_MSEC);<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    this.ritChore = new RegionInTransitionChore(ritChoreInterval);<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>    // Used for region related procedure.<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    setRegionNormalizer(master.getRegionNormalizer());<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>  public void start() throws IOException {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    if (!running.compareAndSet(false, true)) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      return;<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>    LOG.info("Starting assignment manager");<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>    // Register Server Listener<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    master.getServerManager().registerListener(this);<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>    // Start the RegionStateStore<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    regionStateStore.start();<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span>    // Start the Assignment Thread<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    startAssignmentThread();<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  }<a name="line.226"></a>
-<span class="sourceLineNo">227</span><a name="line.227"></a>
-<span class="sourceLineNo">228</span>  public void stop() {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    if (!running.compareAndSet(true, false)) {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      return;<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>    LOG.info("Stopping assignment manager");<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>    // The AM is started before the procedure executor,<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    // but the actual work will be loaded/submitted only once we have the executor<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    final boolean hasProcExecutor = master.getMasterProcedureExecutor() != null;<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>    // Remove the RIT chore<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    if (hasProcExecutor) {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      master.getMasterProcedureExecutor().removeChore(this.ritChore);<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>    // Stop the Assignment Thread<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    stopAssignmentThread();<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>    // Stop the RegionStateStore<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    regionStates.clear();<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    regionStateStore.stop();<a name="line.249"></a>
-<span class="sourceLineNo">250</span><a name="line.250"></a>
-<span class="sourceLineNo">251</span>    // Unregister Server Listener<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    master.getServerManager().unregisterListener(this);<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span>    // Update meta events (for testing)<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    if (hasProcExecutor) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      getProcedureScheduler().suspendEvent(metaLoadEvent);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      setFailoverCleanupDone(false);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      for (HRegionInfo hri: getMetaRegionSet()) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        setMetaInitialized(hri, false);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    }<a name="line.261"></a>
-<span class="sourceLineNo">262</span>  }<a name="line.262"></a>
-<span class="sourceLineNo">263</span><a name="line.263"></a>
-<span class="sourceLineNo">264</span>  public boolean isRunning() {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    return running.get();<a name="line.265"></a>
-<span class="sourceLineNo">266</span>  }<a name="line.266"></a>
-<span class="sourceLineNo">267</span><a name="line.267"></a>
-<span class="sourceLineNo">268</span>  public Configuration getConfiguration() {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    return master.getConfiguration();<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>  public MetricsAssignmentManager getAssignmentManagerMetrics() {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    return metrics;<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  }<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>  private LoadBalancer getBalancer() {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    return master.getLoadBalancer();<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  }<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  private MasterProcedureEnv getProcedureEnvironment() {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    return master.getMasterProcedureExecutor().getEnvironment();<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>  private MasterProcedureScheduler getProcedureScheduler() {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    return getProcedureEnvironment().getProcedureScheduler();<a name="line.285"></a>
-<span class="sourceLineNo">286</span>  }<a name="line.286"></a>
-<span class="sourceLineNo">287</span><a name="line.287"></a>
-<span class="sourceLineNo">288</span>  protected int getAssignMaxAttempts() {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    return assignMaxAttempts;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>  }<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>  /**<a name="line.292"></a>
-<span class="sourceLineNo">293</span>   * Add the listener to the notification list.<a name="line.293"></a>
-<span class="sourceLineNo">294</span>   * @param listener The AssignmentListener to register<a name="line.294"></a>
-<span class="sourceLineNo">295</span>   */<a name="line.295"></a>
-<span class="sourceLineNo">296</span>  public void registerListener(final AssignmentListener listener) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    this.listeners.add(listener);<a name="line.297"></a>
-<span class="sourceLineNo">298</span>  }<a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>  /**<a name="line.300"></a>
-<span class="sourceLineNo">301</span>   * Remove the listener from the notification list.<a name="line.301"></a>
-<span class="sourceLineNo">302</span>   * @param listener The AssignmentListener to unregister<a name="line.302"></a>
-<span class="sourceLineNo">303</span>   */<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  public boolean unregisterListener(final AssignmentListener listener) {<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return this.listeners.remove(listener);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  public void setRegionStateListener(final RegionStateListener listener) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    this.regionStateListener = listener;<a name="line.309"></a>
-<span class="sourceLineNo">310</span>  }<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>  public void setRegionNormalizer(final RegionNormalizer normalizer) {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    this.regionNormalizer = normalizer;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>  }<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>  public RegionNormalizer getRegionNormalizer() {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    return regionNormalizer;<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>  public RegionStates getRegionStates() {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    return regionStates;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span>  public RegionStateStore getRegionStateStore() {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    return regionStateStore;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>  }<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>  public List&lt;ServerName&gt; getFavoredNodes(final HRegionInfo regionInfo) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    return this.shouldAssignRegionsWithFavoredNodes?<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        ((FavoredStochasticBalancer)getBalancer()).getFavoredNodes(regionInfo):<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          ServerName.EMPTY_SERVER_LIST;<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>  // ============================================================================================<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  //  Table State Manager helpers<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  // ============================================================================================<a name="line.336"></a>
-<span class="sourceLineNo">337</span>  TableStateManager getTableStateManager() {<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    return master.getTableStateManager();<a name="line.338"></a>
-<span class="sourceLineNo">339</span>  }<a name="line.339"></a>
-<span class="sourceLineNo">340</span><a name="line.340"></a>
-<span class="sourceLineNo">341</span>  public boolean isTableEnabled(final TableName tableName) {<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    return getTableStateManager().isTableState(tableName, TableState.State.ENABLED);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  }<a name="line.343"></a>
-<span class="sourceLineNo">344</span><a name="line.344"></a>
-<span class="sourceLineNo">345</span>  public boolean isTableDisabled(final TableName tableName) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    return getTableStateManager().isTableState(tableName,<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      TableState.State.DISABLED, TableState.State.DISABLING);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
-<span class="sourceLineNo">349</span><a name="line.349"></a>
-<span class="sourceLineNo">350</span>  // ============================================================================================<a name="line.350"></a>
-<span class="sourceLineNo">351</span>  //  META Helpers<a name="line.351"></a>
-<span class="sourceLineNo">352</span>  // ============================================================================================<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  private boolean isMetaRegion(final HRegionInfo regionInfo) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return regionInfo.isMetaRegion();<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>  public boolean isMetaRegion(final byte[] regionName) {<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    return getMetaRegionFromName(regionName) != null;<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>  public HRegionInfo getMetaRegionFromName(final byte[] regionName) {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    for (HRegionInfo hri: getMetaRegionSet()) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      if (Bytes.equals(hri.getRegionName(), regionName)) {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>        return hri;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      }<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    }<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    return null;<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>  public boolean isCarryingMeta(final ServerName serverName) {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    for (HRegionInfo hri: getMetaRegionSet()) {<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      if (isCarryingRegion(serverName, hri)) {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>        return true;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      }<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return false;<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  private boolean isCarryingRegion(final ServerName serverName, final HRegionInfo regionInfo) {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    // TODO: check for state?<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    final RegionStateNode node = regionStates.getRegionNode(regionInfo);<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    return(node != null &amp;&amp; serverName.equals(node.getRegionLocation()));<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>  private HRegionInfo getMetaForRegion(final HRegionInfo regionInfo) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    //if (regionInfo.isMetaRegion()) return regionInfo;<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    // TODO: handle multiple meta. if the region provided is not meta lookup<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    // which meta the region belongs to.<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    return HRegionInfo.FIRST_META_REGIONINFO;<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>  // TODO: handle multiple meta.<a name="line.392"></a>
-<span class="sourceLineNo">393</span>  private static final Set&lt;HRegionInfo&gt; META_REGION_SET =<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      Collections.singleton(HRegionInfo.FIRST_META_REGIONINFO);<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  public Set&lt;HRegionInfo&gt; getMetaRegionSet() {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    return META_REGION_SET;<a name="line.396"></a>
-<span class="sourceLineNo">397</span>  }<a name="line.397"></a>
-<span class="sourceLineNo">398</span><a name="line.398"></a>
-<span class="sourceLineNo">399</span>  // ============================================================================================<a name="line.399"></a>
-<span class="sourceLineNo">400</span>  //  META Event(s) helpers<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  // ============================================================================================<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  public boolean isMetaInitialized() {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    return metaInitializedEvent.isReady();<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>  public boolean isMetaRegionInTransition() {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    return !isMetaInitialized();<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>  public boolean waitMetaInitialized(final Procedure proc) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    // TODO: handle multiple meta. should this wait on all meta?<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    // this is used by the ServerCrashProcedure...<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    return waitMetaInitialized(proc, HRegionInfo.FIRST_META_REGIONINFO);<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>  public boolean waitMetaInitialized(final Procedure proc, final HRegionInfo regionInfo) {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    return getProcedureScheduler().waitEvent(<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      getMetaInitializedEvent(getMetaForRegion(regionInfo)), proc);<a name="line.418"></a>
-<span class="sourceLineNo">419</span>  }<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>  private void setMetaInitialized(final HRegionInfo metaRegionInfo, final boolean isInitialized) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    assert isMetaRegion(metaRegionInfo) : "unexpected non-meta region " + metaRegionInfo;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    final ProcedureEvent metaInitEvent = getMetaInitializedEvent(metaRegionInfo);<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    if (isInitialized) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      getProcedureScheduler().wakeEvent(metaInitEvent);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    } else {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      getProcedureScheduler().suspendEvent(metaInitEvent);<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>  private ProcedureEvent getMetaInitializedEvent(final HRegionInfo metaRegionInfo) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    assert isMetaRegion(metaRegionInfo) : "unexpected non-meta region " + metaRegionInfo;<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    // TODO: handle multiple meta.<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    return metaInitializedEvent;<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>  public boolean waitMetaLoaded(final Procedure proc) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    return getProcedureScheduler().waitEvent(metaLoadEvent, proc);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  }<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>  protected void wakeMetaLoadedEvent() {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    getProcedureScheduler().wakeEvent(metaLoadEvent);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    assert isMetaLoaded() : "expected meta to be loaded";<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>  public boolean isMetaLoaded() {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    return metaLoadEvent.isReady();<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>  //  TODO: Sync helpers<a name="line.451"></a>
-<span class="sourceLineNo">452</span>  // ============================================================================================<a name="line.452"></a>
-<span class="sourceLineNo">453</span>  public void assignMeta(final HRegionInfo metaRegionInfo) throws IOException {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    assignMeta(metaRegionInfo, null);<a name="line.454"></a>
-<span class="sourceLineNo">455</span>  }<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>  public void assignMeta(final HRegionInfo metaRegionInfo, final ServerName serverName)<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      throws IOException {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    assert isMetaRegion(metaRegionInfo) : "unexpected non-meta region " + metaRegionInfo;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    AssignProcedure proc;<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    if (serverName != null) {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      LOG.debug("Try assigning Meta " + metaRegionInfo + " to " + serverName);<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      proc = createAssignProcedure(metaRegionInfo, serverName);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    } else {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      LOG.debug("Assigning " + metaRegionInfo.getRegionNameAsString());<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      proc = createAssignProcedure(metaRegionInfo, false);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    ProcedureSyncWait.submitAndWaitProcedure(master.getMasterProcedureExecutor(), proc);<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>   * Start a new thread to check if there are region servers whose versions are higher than others.<a name="line.472"></a>
-<span class="sourceLineNo">473</span>   * If so, move all system table regions to RS with the highest version to keep compatibility.<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   * The reason is, RS in new version may not be able to access RS in old version when there are<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   * some incompatible changes.<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   */<a name="line.476"></a>
-<span class="sourceLineNo">477</span>  public void checkIfShouldMoveSystemRegionAsync() {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    new Thread(() -&gt; {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      try {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        synchronized (checkIfShouldMoveSystemRegionLock) {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>          List&lt;RegionPlan&gt; plans = new ArrayList&lt;&gt;();<a name="line.481"></a>
-<span class="sourceLineNo">482</span>          for (ServerName server : getExcludedServersForSystemTable()) {<a name="line.482"></a>
-<span class="sourceLineNo">483</span>            if (master.getServerManager().isServerDead(server)) {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>              // TODO: See HBASE-18494 and HBASE-18495. Though getExcludedServersForSystemTable()<a name="line.484"></a>
-<span class="sourceLineNo">485</span>              // considers only online servers, the server could be queued for dead server<a name="line.485"></a>
-<span class="sourceLineNo">486</span>              // processing. As region assignments for crashed server is handled by<a name="line.486"></a>
-<span class="sourceLineNo">487</span>              // ServerCrashProcedure, do NOT handle them here. The goal is to handle this through<a name="line.487"></a>
-<span class="sourceLineNo">488</span>              // regular flow of LoadBalancer as a favored node and not to have this special<a name="line.488"></a>
-<span class="sourceLineNo">489</span>              // handling.<a name="line.489"></a>
-<span class="sourceLineNo">490</span>              continue;<a name="line.490"></a>
-<span class="sourceLineNo">491</span>            }<a name="line.491"></a>
-<span class="sourceLineNo">492</span>            List&lt;HRegionInfo&gt; regionsShouldMove = getCarryingSystemTables(server);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>            if (!regionsShouldMove.isEmpty()) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>              for (HRegionInfo regionInfo : regionsShouldMove) {<a name="line.494"></a>
-<span class="sourceLineNo">495</span>                // null value for dest forces destination server to be selected by balancer<a name="line.495"></a>
-<span class="sourceLineNo">496</span>                RegionPlan plan = new RegionPlan(regionInfo, server, null);<a name="line.496"></a>
-<span class="sourceLineNo">497</span>                if (regionInfo.isMetaRegion()) {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>                  // Must move meta region first.<a name="line.498"></a>
-<span class="sourceLineNo">499</span>                  moveAsync(plan);<a name="line.499"></a>
-<span class="sourceLineNo">500</span>                } else {<a name="line.500"></a>
-<span class="sourceLineNo">501</span>                  plans.add(plan);<a name="line.501"></a>
-<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
-<span class="sourceLineNo">503</span>              }<a name="line.503"></a>
-<span class="sourceLineNo">504</span>            }<a name="line.504"></a>
-<span class="sourceLineNo">505</span>            for (RegionPlan plan : plans) {<a name="line.505"></a>
-<span class="sourceLineNo">506</span>              moveAsync(plan);<a name="line.506"></a>
-<span class="sourceLineNo">507</span>            }<a name="line.507"></a>
-<span class="sourceLineNo">508</span>          }<a name="line.508"></a>
-<span class="sourceLineNo">509</span>        }<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      } catch (Throwable t) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>        LOG.error(t);<a name="line.511"></a>
-<span class="sourceLineNo">512</span>      }<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    }).start();<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>  private List&lt;HRegionInfo&gt; getCarryingSystemTables(ServerName serverName) {<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    Set&lt;RegionStateNode&gt; regions = this.getRegionStates().getServerNode(serverName).getRegions();<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    if (regions == null) {<a name="line.518"></a>
-<span class="sourceLineNo">519</span>      return new ArrayList&lt;&gt;();<a name="line.519"></a>
-<span class="sourceLineNo">520</span>    }<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    return regions.stream()<a name="line.521"></a>
-<span class="sourceLineNo">522</span>        .map(RegionStateNode::getRegionInfo)<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        .filter(HRegionInfo::isSystemTable)<a name="line.523"></a>
-<span class="sourceLineNo">524</span>        .collect(Collectors.toList());<a name="line.524"></a>
-<span class="sourceLineNo">525</span>  }<a name="line.525"></a>
-<span class="sourceLineNo">526</span><a name="line.526"></a>
-<span class="sourceLineNo">527</span>  public void assign(final HRegionInfo regionInfo) throws IOException {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    assign(regionInfo, true);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>  }<a name="line.529"></a>
-<span class="sourceLineNo">530</span><a name="line.530"></a>
-<span class="sourceLineNo">531</span>  public void assign(final HRegionInfo regionInfo, final boolean forceNewPlan) throws IOException {<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    AssignProcedure proc = createAssignProcedure(regionInfo, forceNewPlan);<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    ProcedureSyncWait.submitAndWaitProcedure(master.getMasterProcedureExecutor(), proc);<a name="line.533"></a>
-<span class="sourceLineNo">534</span>  }<a name="line.534"></a>
-<span class="sourceLineNo">535</span><a name="line.535"></a>
-<span class="sourceLineNo">536</span>  public void unassign(final HRegionInfo regionInfo) throws IOException {<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    unassign(regionInfo, false);<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span>  public void unassign(final HRegionInfo regionInfo, final boolean forceNewPlan)<a name="line.540"></a>
-<span class="sourceLineNo">541</span>  throws IOException {<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    // TODO: rename this reassign<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    RegionStateNode node = this.regionStates.getRegionNode(regionInfo);<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    ServerName destinationServer = node.getRegionLocation();<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    if (destinationServer == null) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      throw new UnexpectedStateException("DestinationServer is null; Assigned? " + node.toString());<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    }<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    assert destinationServer != null; node.toString();<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    UnassignProcedure proc = createUnassignProcedure(regionInfo, destinationServer, forceNewPlan);<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    ProcedureSyncWait.submitAndWaitProcedure(master.getMasterProcedureExecutor(), proc);<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>  public Future&lt;byte[]&gt; moveAsync(final RegionPlan regionPlan) {<a name="line.553"></a>
-<span class="sourceLineNo">554</span>    MoveRegionProcedure proc = createMoveRegionProcedure(regionPlan);<a name="line.554"></a>
-<span class="sourceLineNo">555</span>    return ProcedureSyncWait.submitProcedure(master.getMasterProcedureExecutor(), proc);<a name="line.555"></a>
-<span class="sourceLineNo">556</span>  }<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>  @VisibleForTesting<a name="line.558"></a>
-<span class="sourceLineNo">559</span>  public boolean waitForAssignment(final HRegionInfo regionInfo) throws IOException {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    return waitForAssignment(regionInfo, Long.MAX_VALUE);<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>  @VisibleForTesting<a name="line.563"></a>
-<span class="sourceLineNo">564</span>  // TODO: Remove this?<a name="line.564"></a>
-<span class="sourceLineNo">565</span>  public boolean waitForAssignment(final HRegionInfo regionInfo, final long timeout)<a name="line.565"></a>
-<span class="sourceLineNo">566</span>  throws IOException {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    RegionStateNode node = null;<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    // This method can be called before the regionInfo has made it into the regionStateMap<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    // so wait around here a while.<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    long startTime = System.currentTimeMillis();<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    // Something badly wrong if takes ten seconds to register a region.<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    long endTime = startTime + 10000;<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    while ((node = regionStates.getRegionNode(regionInfo)) == null &amp;&amp; isRunning() &amp;&amp;<a name="line.573"></a>
-<span class="sourceLineNo">574</span>        System.currentTimeMillis() &lt; endTime) {<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      // Presume it not yet added but will be added soon. Let it spew a lot so we can tell if<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      // we are waiting here alot.<a name="line.576"></a>
-<span class="sourceLineNo">577</span>      LOG.debug("Waiting on " + regionInfo + " to be added to regionStateMap");<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      Threads.sleep(10);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    if (node == null) {<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      if (!isRunning()) return false;<a name="line.581"></a>
-<span class="sourceLineNo">582</span>      throw new RegionException(regionInfo.getRegionNameAsString() + " never registered with Assigment.");<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    }<a name="line.583"></a>
-<span class="sourceLineNo">584</span><a name="line.584"></a>
-<span class="sourceLineNo">585</span>    RegionTransitionProcedure proc = node.getProcedure();<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    if (proc == null) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      throw new NoSuchProcedureException(node.toString());<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>    ProcedureSyncWait.waitForProcedureToCompleteIOE(<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      master.getMasterProcedureExecutor(), proc.getProcId(), timeout);<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    return true;<a name="line.592"></a>
-<span class="sourceLineNo">593</span>  }<a name="line.593"></a>
-<span class="sourceLineNo">594</span><a name="line.594"></a>
-<span class="sourceLineNo">595</span>  // ============================================================================================<a name="line.595"></a>
-<span class="sourceLineNo">596</span>  //  RegionTransition procedures helpers<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>  public AssignProcedure[] createAssignProcedures(final Collection&lt;HRegionInfo&gt; regionInfo) {<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    return createAssignProcedures(regionInfo, false);<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>  public AssignProcedure[] createAssignProcedures(final Collection&lt;HRegionInfo&gt; regionInfo,<a name="line.603"></a>
-<span class="sourceLineNo">604</span>      final boolean forceNewPlan) {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    if (regionInfo.isEmpty()) return null;<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    final AssignProcedure[] procs = new AssignProcedure[regionInfo.size()];<a name="line.606"></a>
-<span class="sourceLineNo">607</span>    int index = 0;<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    for (HRegionInfo hri: regionInfo) {<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      procs[index++] = createAssignProcedure(hri, forceNewPlan);<a name="line.609"></a>
-<span class="sourceLineNo">610</span>    }<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    return procs;<a name="line.611"></a>
-<span class="sourceLineNo">612</span>  }<a name="line.612"></a>
-<span class="sourceLineNo">613</span><a name="line.613"></a>
-<span class="sourceLineNo">614</span>  // Needed for the following method so it can type the created Array we return<a name="line.614"></a>
-<span class="sourceLineNo">615</span>  private static final UnassignProcedure [] UNASSIGNED_PROCEDURE_FOR_TYPE_INFO =<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      new UnassignProcedure[0];<a name="line.616"></a>
-<span class="sourceLineNo">617</span><a name="line.617"></a>
-<span class="sourceLineNo">618</span>  UnassignProcedure[] createUnassignProcedures(final Collection&lt;RegionStateNode&gt; nodes) {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    if (nodes.isEmpty()) return null;<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    final List&lt;UnassignProcedure&gt; procs = new ArrayList&lt;UnassignProcedure&gt;(nodes.size());<a name="line.620"></a>
-<span class="sourceLineNo">621</span>    for (RegionStateNode node: nodes) {<a name="line.621"></a>
-<span class="sourceLineNo">622</span>      if (!this.regionStates.include(node, false)) continue;<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      // Look for regions that are offline/closed; i.e. already unassigned.<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      if (this.regionStates.isRegionOffline(node.getRegionInfo())) continue;<a name="line.624"></a>
-<span class="sourceLineNo">625</span>      assert node.getRegionLocation() != null: node.toString();<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      procs.add(createUnassignProcedure(node.getRegionInfo(), node.getRegionLocation(), false));<a name="line.626"></a>
-<span class="sourceLineNo">627</span>    }<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    return procs.toArray(UNASSIGNED_PROCEDURE_FOR_TYPE_INFO);<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>  public MoveRegionProcedure[] createReopenProcedures(final Collection&lt;HRegionInfo&gt; regionInfo) {<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    final MoveRegionProcedure[] procs = new MoveRegionProcedure[regionInfo.size()];<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    int index = 0;<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    for (HRegionInfo hri: regionInfo) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      final ServerName serverName = regionStates.getRegionServerOfRegion(hri);<a name="line.635"></a>
-<span class="sourceLineNo">636</span>      final RegionPlan plan = new RegionPlan(hri, serverName, serverName);<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      procs[index++] = createMoveRegionProcedure(plan);<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    }<a name="line.638"></a>
-<span class="sourceLineNo">639</span>    return procs;<a name="line.639"></a>
-<span class="sourceLineNo">640</span>  }<a name="line.640"></a>
-<span class="sourceLineNo">641</span><a name="line.641"></a>
-<span class="sourceLineNo">642</span>  /**<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * Called by things like EnableTableProcedure to get a list of AssignProcedure<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   * to assign the regions of the table.<a name="line.644"></a>
-<span class="sourceLineNo">645</span>   */<a name="line.645"></a>
-<span class="sourceLineNo">646</span>  public AssignProcedure[] createAssignProcedures(final TableName tableName) {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    return createAssignProcedures(regionStates.getRegionsOfTable(tableName));<a name="line.647"></a>
-<span class="sourceLineNo">648</span>  }<a name="line.648"></a>
-<span class="sourceLineNo">649</span><a name="line.649"></a>
-<span class="sourceLineNo">650</span>  /**<a name="line.650"></a>
-<span class="sourceLineNo">651</span>   * Called by things like DisableTableProcedure to get a list of UnassignProcedure<a name="line.651"></a>
-<span class="sourceLineNo">652</span>   * to unassign the regions of the table.<a name="line.652"></a>
-<span class="sourceLineNo">653</span>   */<a name="line.653"></a>
-<span class="sourceLineNo">654</span>  public UnassignProcedure[] createUnassignProcedures(final TableName tableName) {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    return createUnassignProcedures(regionStates.getTableRegionStateNodes(tableName));<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
-<span class="sourceLineNo">657</span><a name="line.657"></a>
-<span class="sourceLineNo">658</span>  /**<a name="line.658"></a>
-<span class="sourceLineNo">659</span>   * Called by things like ModifyColumnFamilyProcedure to get a list of MoveRegionProcedure<a name="line.659"></a>
-<span class="sourceLineNo">660</span>   * to reopen the regions of the table.<a name="line.660"></a>
-<span class="sourceLineNo">661</span>   */<a name="line.661"></a>
-<span class="sourceLineNo">662</span>  public MoveRegionProcedure[] createReopenProcedures(final TableName tableName) {<a name="line.662"></a>
-<span class="sourceLineNo">663</span>    return createReopenProcedures(regionStates.getRegionsOfTable(tableName));<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>  public AssignProcedure createAssignProcedure(final HRegionInfo regionInfo,<a name="line.666"></a>
-<span class="sourceLineNo">667</span>      final boolean forceNewPlan) {<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    AssignProcedure proc = new AssignProcedure(regionInfo, forceNewPlan);<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    proc.setOwner(getProcedureEnvironment().getRequestUser().getShortName());<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    return proc;<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>  public AssignProcedure createAssignProcedure(final HRegionInfo regionInfo,<a name="line.673"></a>
-<span class="sourceLineNo">674</span>      final ServerName targetServer) {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>    AssignProcedure proc = new AssignProcedure(regionInfo, targetServer);<a name="line.675"></a>
-<span class="sourceLineNo">676</span>    proc.setOwner(getProcedureEnvironment().getRequestUser().getShortName());<a name="line.676"></a>
-<span class="sourceLineNo">677</span>    return proc;<a name="line.677"></a>
-<span class="sourceLineNo">678</span>  }<a name="line.678"></a>
-<span class="sourceLineNo">679</span><a name="line.679"></a>
-<span class="sourceLineNo">680</span>  public UnassignProcedure createUnassignProcedure(final HRegionInfo regionInfo,<a name="line.680"></a>
-<span class="sourceLineNo">681</span>      final ServerName destinationServer, final boolean force) {<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    // If destinationServer is null, figure it.<a name="line.682"></a>
-<span class="sourceLineNo">683</span>    ServerName sn = destinationServer != null? destinationServer:<a name="line.683"></a>
-<span class="sourceLineNo">684</span>      getRegionStates().getRegionState(regionInfo).getServerName();<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    assert sn != null;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    UnassignProcedure proc = new UnassignProcedure(regionInfo, sn, force);<a name="line.686"></a>
-<span class="sourceLineNo">687</span>    proc.setOwner(getProcedureEnvironment().getRequestUser().getShortName());<a name="line.687"></a>
-<span class="sourceLineNo">688</span>    return proc;<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>  public MoveRegionProcedure createMoveRegionProcedure(final RegionPlan plan) {<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    if (plan.getRegionInfo().isSystemTable()) {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>      List&lt;ServerName&gt; exclude = getExcludedServersForSystemTable();<a name="line.693"></a>
-<span class="sourceLineNo">694</span>      if (plan.getDestination() != null &amp;&amp; exclude.contains(plan.getDestination())) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>        try {<a name="line.695"></a>
-<span class="sourceLineNo">696</span>          LOG.info("Can not move " + plan.getRegionInfo() + " to " + plan.getDestination()<a name="line.696"></a>
-<span class="sourceLineNo">697</span>              + " because the server is not with highest version");<a name="line.697"></a>
-<span class="sourceLineNo">698</span>          plan.setDestination(getBalancer().randomAssignment(plan.getRegionInfo(),<a name="line.698"></a>
-<span class="sourceLineNo">699</span>              this.master.getServerManager().createDestinationServersList(exclude)));<a name="line.699"></a>
-<span class="sourceLineNo">700</span>        } catch (HBaseIOException e) {<a name="line.700"></a>
-<span class="sourceLineNo">701</span>          LOG.warn(e);<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>    }<a name="line.704"></a>
-<span class="sourceLineNo">705</span>    return new MoveRegionProcedure(getProcedureEnvironment(), plan);<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">049</span>import org.apache.hadoop.hbase.YouAreDeadException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.exceptions.UnexpectedStateException;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.master.balancer.FavoredStochasticBalancer;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.master.AssignmentListener;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.master.LoadBalancer;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.master.MetricsAssignmentManager;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.master.NoSuchProcedureException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.master.RegionPlan;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.master.RegionState;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.master.RegionState.State;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.master.ServerListener;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.master.TableStateManager;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.ServerState;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.ServerStateNode;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>// TODO: why are they here?<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.master.procedure.ProcedureSyncWait;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.master.procedure.ServerCrashProcedure;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.procedure2.ProcedureEvent;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.procedure2.ProcedureInMemoryChore;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.procedure2.util.StringUtils;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.util.VersionInfo;<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.com.google.common.annotations.VisibleForTesting;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Lists;<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> * The AssignmentManager is the coordinator for region assign/unassign operations.<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * &lt;ul&gt;<a name="line.96"></a>
+<span class="sourceLineNo">097</span> * &lt;li&gt;In-memory states of regions and servers are stored in {@link RegionStates}.&lt;/li&gt;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> * &lt;li&gt;hbase:meta state updates are handled by {@link RegionStateStore}.&lt;/li&gt;<a name="line.98"></a>
+<span class="sourceLineNo">099</span> * &lt;/ul&gt;<a name="line.99"></a>
+<span class="sourceLineNo">100</span> * Regions are created by CreateTable, Split, Merge.<a name="line.100"></a>
+<span class="sourceLineNo">101</span> * Regions are deleted by DeleteTable, Split, Merge.<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * Assigns are triggered by CreateTable, EnableTable, Split, Merge, ServerCrash.<a name="line.102"></a>
+<span class="sourceLineNo">103</span> * Unassigns are triggered by DisableTable, Split, Merge<a name="line.103"></a>
+<span class="sourceLineNo">104</span> */<a name="line.104"></a>
+<span class="sourceLineNo">105</span>@InterfaceAudience.Private<a name="line.105"></a>
+<span class="sourceLineNo">106</span>public class AssignmentManager implements ServerListener {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  private static final Log LOG = LogFactory.getLog(AssignmentManager.class);<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  // TODO: AMv2<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  //  - handle region migration from hbase1 to hbase2.<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  //  - handle sys table assignment first (e.g. acl, namespace)<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  //  - handle table priorities<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  //  - If ServerBusyException trying to update hbase:meta, we abort the Master<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  //   See updateRegionLocation in RegionStateStore.<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  //<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  // See also<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  // https://docs.google.com/document/d/1eVKa7FHdeoJ1-9o8yZcOTAQbv0u0bblBlCCzVSIn69g/edit#heading=h.ystjyrkbtoq5<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  // for other TODOs.<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>  public static final String BOOTSTRAP_THREAD_POOL_SIZE_CONF_KEY =<a name="line.120"></a>
+<span class="sourceLineNo">121</span>      "hbase.assignment.bootstrap.thread.pool.size";<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>  public static final String ASSIGN_DISPATCH_WAIT_MSEC_CONF_KEY =<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      "hbase.assignment.dispatch.wait.msec";<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  private static final int DEFAULT_ASSIGN_DISPATCH_WAIT_MSEC = 150;<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>  public static final String ASSIGN_DISPATCH_WAITQ_MAX_CONF_KEY =<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      "hbase.assignment.dispatch.wait.queue.max.size";<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  private static final int DEFAULT_ASSIGN_DISPATCH_WAITQ_MAX = 100;<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>  public static final String RIT_CHORE_INTERVAL_MSEC_CONF_KEY =<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      "hbase.assignment.rit.chore.interval.msec";<a name="line.132"></a>
+<span class="sourceLineNo">133</span>  private static final int DEFAULT_RIT_CHORE_INTERVAL_MSEC = 5 * 1000;<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>  public static final String ASSIGN_MAX_ATTEMPTS =<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      "hbase.assignment.maximum.attempts";<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  private static final int DEFAULT_ASSIGN_MAX_ATTEMPTS = 10;<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>  /** Region in Transition metrics threshold time */<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  public static final String METRICS_RIT_STUCK_WARNING_THRESHOLD =<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      "hbase.metrics.rit.stuck.warning.threshold";<a name="line.141"></a>
+<span class="sourceLineNo">142</span>  private static final int DEFAULT_RIT_STUCK_WARNING_THRESHOLD = 60 * 1000;<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>  private final ProcedureEvent&lt;?&gt; metaInitializedEvent = new ProcedureEvent&lt;&gt;("meta initialized");<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  private final ProcedureEvent&lt;?&gt; metaLoadEvent = new ProcedureEvent&lt;&gt;("meta load");<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>   * Indicator that AssignmentManager has recovered the region states so<a name="line.148"></a>
+<span class="sourceLineNo">149</span>   * that ServerCrashProcedure can be fully enabled and re-assign regions<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   * of dead servers. So that when re-assignment happens, AssignmentManager<a name="line.150"></a>
+<span class="sourceLineNo">151</span>   * has proper region states.<a name="line.151"></a>
+<span class="sourceLineNo">152</span>   */<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  private final ProcedureEvent&lt;?&gt; failoverCleanupDone = new ProcedureEvent&lt;&gt;("failover cleanup");<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  /** Listeners that are called on assignment events. */<a name="line.155"></a>
+<span class="sourceLineNo">156</span>  private final CopyOnWriteArrayList&lt;AssignmentListener&gt; listeners =<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      new CopyOnWriteArrayList&lt;AssignmentListener&gt;();<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  // TODO: why is this different from the listeners (carried over from the old AM)<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  private RegionStateListener regionStateListener;<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>  private RegionNormalizer regionNormalizer;<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>  private final MetricsAssignmentManager metrics;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  private final RegionInTransitionChore ritChore;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  private final MasterServices master;<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>  private final AtomicBoolean running = new AtomicBoolean(false);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  private final RegionStates regionStates = new RegionStates();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  private final RegionStateStore regionStateStore;<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>  private final boolean shouldAssignRegionsWithFavoredNodes;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  private final int assignDispatchWaitQueueMaxSize;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  private final int assignDispatchWaitMillis;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  private final int assignMaxAttempts;<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>  private final Object checkIfShouldMoveSystemRegionLock = new Object();<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>  private Thread assignThread;<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>  public AssignmentManager(final MasterServices master) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    this(master, new RegionStateStore(master));<a name="line.182"></a>
+<span class="sourceLineNo">183</span>  }<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>  public AssignmentManager(final MasterServices master, final RegionStateStore stateStore) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    this.master = master;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    this.regionStateStore = stateStore;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    this.metrics = new MetricsAssignmentManager();<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>    final Configuration conf = master.getConfiguration();<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>    // Only read favored nodes if using the favored nodes load balancer.<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    this.shouldAssignRegionsWithFavoredNodes = FavoredStochasticBalancer.class.isAssignableFrom(<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        conf.getClass(HConstants.HBASE_MASTER_LOADBALANCER_CLASS, Object.class));<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>    this.assignDispatchWaitMillis = conf.getInt(ASSIGN_DISPATCH_WAIT_MSEC_CONF_KEY,<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        DEFAULT_ASSIGN_DISPATCH_WAIT_MSEC);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    this.assignDispatchWaitQueueMaxSize = conf.getInt(ASSIGN_DISPATCH_WAITQ_MAX_CONF_KEY,<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        DEFAULT_ASSIGN_DISPATCH_WAITQ_MAX);<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>    this.assignMaxAttempts = Math.max(1, conf.getInt(ASSIGN_MAX_ATTEMPTS,<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        DEFAULT_ASSIGN_MAX_ATTEMPTS));<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>    int ritChoreInterval = conf.getInt(RIT_CHORE_INTERVAL_MSEC_CONF_KEY,<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        DEFAULT_RIT_CHORE_INTERVAL_MSEC);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    this.ritChore = new RegionInTransitionChore(ritChoreInterval);<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>    // Used for region related procedure.<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    setRegionNormalizer(master.getRegionNormalizer());<a name="line.209"></a>
+<span class="sourceLineNo">210</span>  }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>  public void start() throws IOException {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    if (!running.compareAndSet(false, true)) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      return;<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>    LOG.info("Starting assignment manager");<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>    // Register Server Listener<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    master.getServerManager().registerListener(this);<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>    // Start the RegionStateStore<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    regionStateStore.start();<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>    // Start the Assignment Thread<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    startAssignmentThread();<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  }<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>  public void stop() {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    if (!running.compareAndSet(true, false)) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      return;<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>    LOG.info("Stopping assignment manager");<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>    // The AM is started before the procedure executor,<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    // but the actual work will be loaded/submitted only once we have the executor<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    final boolean hasProcExecutor = master.getMasterProcedureExecutor() != null;<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span>    // Remove the RIT chore<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    if (hasProcExecutor) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      master.getMasterProcedureExecutor().removeChore(this.ritChore);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    }<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>    // Stop the Assignment Thread<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    stopAssignmentThread();<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>    // Stop the RegionStateStore<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    regionStates.clear();<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    regionStateStore.stop();<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span>    // Unregister Server Listener<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    master.getServerManager().unregisterList

<TRUNCATED>

[10/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html b/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html
index f8da5e7..f79b11c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html
@@ -34,698 +34,617 @@
 <span class="sourceLineNo">026</span>import java.util.Map;<a name="line.26"></a>
 <span class="sourceLineNo">027</span>import java.util.concurrent.CopyOnWriteArrayList;<a name="line.27"></a>
 <span class="sourceLineNo">028</span>import java.util.concurrent.CountDownLatch;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.util.concurrent.ExecutorService;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.concurrent.Executors;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.util.regex.Matcher;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import java.util.regex.Pattern;<a name="line.33"></a>
-<span class="sourceLineNo">034</span><a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.commons.logging.Log;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.commons.logging.LogFactory;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.conf.Configuration;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.Abortable;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.AuthUtil;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.HConstants;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.security.Superusers;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.zookeeper.KeeperException;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.zookeeper.WatchedEvent;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.zookeeper.Watcher;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.zookeeper.ZooDefs.Ids;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.zookeeper.ZooDefs.Perms;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.zookeeper.data.ACL;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.zookeeper.data.Id;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.zookeeper.data.Stat;<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>/**<a name="line.56"></a>
-<span class="sourceLineNo">057</span> * Acts as the single ZooKeeper Watcher.  One instance of this is instantiated<a name="line.57"></a>
-<span class="sourceLineNo">058</span> * for each Master, RegionServer, and client process.<a name="line.58"></a>
+<span class="sourceLineNo">029</span>import java.util.regex.Matcher;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.util.regex.Pattern;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.commons.logging.Log;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.commons.logging.LogFactory;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.conf.Configuration;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.Abortable;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.AuthUtil;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.HConstants;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.security.Superusers;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.zookeeper.KeeperException;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.zookeeper.WatchedEvent;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.zookeeper.Watcher;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.zookeeper.ZooDefs.Ids;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.zookeeper.ZooDefs.Perms;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.zookeeper.data.ACL;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.zookeeper.data.Id;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.zookeeper.data.Stat;<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>/**<a name="line.52"></a>
+<span class="sourceLineNo">053</span> * Acts as the single ZooKeeper Watcher.  One instance of this is instantiated<a name="line.53"></a>
+<span class="sourceLineNo">054</span> * for each Master, RegionServer, and client process.<a name="line.54"></a>
+<span class="sourceLineNo">055</span> *<a name="line.55"></a>
+<span class="sourceLineNo">056</span> * &lt;p&gt;This is the only class that implements {@link Watcher}.  Other internal<a name="line.56"></a>
+<span class="sourceLineNo">057</span> * classes which need to be notified of ZooKeeper events must register with<a name="line.57"></a>
+<span class="sourceLineNo">058</span> * the local instance of this watcher via {@link #registerListener}.<a name="line.58"></a>
 <span class="sourceLineNo">059</span> *<a name="line.59"></a>
-<span class="sourceLineNo">060</span> * &lt;p&gt;This is the only class that implements {@link Watcher}.  Other internal<a name="line.60"></a>
-<span class="sourceLineNo">061</span> * classes which need to be notified of ZooKeeper events must register with<a name="line.61"></a>
-<span class="sourceLineNo">062</span> * the local instance of this watcher via {@link #registerListener}.<a name="line.62"></a>
-<span class="sourceLineNo">063</span> *<a name="line.63"></a>
-<span class="sourceLineNo">064</span> * &lt;p&gt;This class also holds and manages the connection to ZooKeeper.  Code to<a name="line.64"></a>
-<span class="sourceLineNo">065</span> * deal with connection related events and exceptions are handled here.<a name="line.65"></a>
-<span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>@InterfaceAudience.Private<a name="line.67"></a>
-<span class="sourceLineNo">068</span>public class ZooKeeperWatcher implements Watcher, Abortable, Closeable {<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  private static final Log LOG = LogFactory.getLog(ZooKeeperWatcher.class);<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>  // Identifier for this watcher (for logging only).  It is made of the prefix<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  // passed on construction and the zookeeper sessionid.<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private String prefix;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  private String identifier;<a name="line.74"></a>
-<span class="sourceLineNo">075</span><a name="line.75"></a>
-<span class="sourceLineNo">076</span>  // zookeeper quorum<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  private String quorum;<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>  // zookeeper connection<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private final RecoverableZooKeeper recoverableZooKeeper;<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  // abortable in case of zk failure<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  protected final Abortable abortable;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  // Used if abortable is null<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  private boolean aborted = false;<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  public final ZNodePaths znodePaths;<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>  // listeners to be notified<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  private final List&lt;ZooKeeperListener&gt; listeners = new CopyOnWriteArrayList&lt;&gt;();<a name="line.90"></a>
+<span class="sourceLineNo">060</span> * &lt;p&gt;This class also holds and manages the connection to ZooKeeper.  Code to<a name="line.60"></a>
+<span class="sourceLineNo">061</span> * deal with connection related events and exceptions are handled here.<a name="line.61"></a>
+<span class="sourceLineNo">062</span> */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>@InterfaceAudience.Private<a name="line.63"></a>
+<span class="sourceLineNo">064</span>public class ZooKeeperWatcher implements Watcher, Abortable, Closeable {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  private static final Log LOG = LogFactory.getLog(ZooKeeperWatcher.class);<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  // Identifier for this watcher (for logging only).  It is made of the prefix<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  // passed on construction and the zookeeper sessionid.<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  private String prefix;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  private String identifier;<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  // zookeeper quorum<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  private String quorum;<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>  // zookeeper connection<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  private final RecoverableZooKeeper recoverableZooKeeper;<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>  // abortable in case of zk failure<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  protected Abortable abortable;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  // Used if abortable is null<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  private boolean aborted = false;<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>  public final ZNodePaths znodePaths;<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>  // listeners to be notified<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  private final List&lt;ZooKeeperListener&gt; listeners = new CopyOnWriteArrayList&lt;&gt;();<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>  // Used by ZKUtil:waitForZKConnectionIfAuthenticating to wait for SASL<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  // negotiation to complete<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  public CountDownLatch saslLatch = new CountDownLatch(1);<a name="line.90"></a>
 <span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span>  // Used by ZKUtil:waitForZKConnectionIfAuthenticating to wait for SASL<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  // negotiation to complete<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  public CountDownLatch saslLatch = new CountDownLatch(1);<a name="line.94"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>  private final Configuration conf;<a name="line.94"></a>
 <span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  // Connection timeout on disconnect event<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  private long connWaitTimeOut;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  private AtomicBoolean connected = new AtomicBoolean(false);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  private boolean forceAbortOnZKDisconnect;<a name="line.99"></a>
-<span class="sourceLineNo">100</span> <a name="line.100"></a>
-<span class="sourceLineNo">101</span>  // Execute service for zookeeper disconnect event watcher<a name="line.101"></a>
-<span class="sourceLineNo">102</span>  private ExecutorService zkEventWatcherExecService = null;<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>  private final Configuration conf;<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>  /* A pattern that matches a Kerberos name, borrowed from Hadoop's KerberosName */<a name="line.107"></a>
-<span class="sourceLineNo">108</span>  private static final Pattern NAME_PATTERN = Pattern.compile("([^/@]*)(/([^/@]*))?@([^/@]*)");<a name="line.108"></a>
-<span class="sourceLineNo">109</span><a name="line.109"></a>
-<span class="sourceLineNo">110</span>  /**<a name="line.110"></a>
-<span class="sourceLineNo">111</span>   * Instantiate a ZooKeeper connection and watcher.<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   * @param identifier string that is passed to RecoverableZookeeper to be used as<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   * identifier for this instance. Use null for default.<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   * @throws IOException<a name="line.114"></a>
-<span class="sourceLineNo">115</span>   * @throws ZooKeeperConnectionException<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   */<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  public ZooKeeperWatcher(Configuration conf, String identifier,<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      Abortable abortable) throws ZooKeeperConnectionException, IOException {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    this(conf, identifier, abortable, false);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>  }<a name="line.120"></a>
-<span class="sourceLineNo">121</span><a name="line.121"></a>
-<span class="sourceLineNo">122</span>  /**<a name="line.122"></a>
-<span class="sourceLineNo">123</span>   * Instantiate a ZooKeeper connection and watcher.<a name="line.123"></a>
-<span class="sourceLineNo">124</span>   * @param conf<a name="line.124"></a>
-<span class="sourceLineNo">125</span>   * @param identifier string that is passed to RecoverableZookeeper to be used as identifier for<a name="line.125"></a>
-<span class="sourceLineNo">126</span>   *          this instance. Use null for default.<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * @param abortable Can be null if there is on error there is no host to abort: e.g. client<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   *          context.<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   * @param canCreateBaseZNode<a name="line.129"></a>
-<span class="sourceLineNo">130</span>   * @throws IOException<a name="line.130"></a>
-<span class="sourceLineNo">131</span>   * @throws ZooKeeperConnectionException<a name="line.131"></a>
-<span class="sourceLineNo">132</span>   */<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  public ZooKeeperWatcher(Configuration conf, String identifier,<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      Abortable abortable, boolean canCreateBaseZNode)<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  throws IOException, ZooKeeperConnectionException {<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    this(conf, identifier, abortable, canCreateBaseZNode, false);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>  }<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>  /**<a name="line.139"></a>
-<span class="sourceLineNo">140</span>   * Instantiate a ZooKeeper connection and watcher.<a name="line.140"></a>
-<span class="sourceLineNo">141</span>   * @param conf Configuration<a name="line.141"></a>
-<span class="sourceLineNo">142</span>   * @param identifier string that is passed to RecoverableZookeeper to be used as identifier for<a name="line.142"></a>
-<span class="sourceLineNo">143</span>   *          this instance. Use null for default.<a name="line.143"></a>
-<span class="sourceLineNo">144</span>   * @param abortable Can be null if there is on error there is no host to abort: e.g. client<a name="line.144"></a>
-<span class="sourceLineNo">145</span>   *          context.<a name="line.145"></a>
-<span class="sourceLineNo">146</span>   * @param canCreateBaseZNode whether create base node.<a name="line.146"></a>
-<span class="sourceLineNo">147</span>   * @param forceAbortOnZKDisconnect abort the watcher if true.<a name="line.147"></a>
-<span class="sourceLineNo">148</span>   * @throws IOException when any IO exception<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   * @throws ZooKeeperConnectionException when any zookeeper connection exception<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   */<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  public ZooKeeperWatcher(Configuration conf, String identifier, Abortable abortable,<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      boolean canCreateBaseZNode, boolean forceAbortOnZKDisconnect) throws IOException,<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      ZooKeeperConnectionException {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    this.conf = conf;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    this.quorum = ZKConfig.getZKQuorumServersString(conf);<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    this.prefix = identifier;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    // Identifier will get the sessionid appended later below down when we<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    // handle the syncconnect event.<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    this.identifier = identifier + "0x0";<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    this.abortable = abortable;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    this.znodePaths = new ZNodePaths(conf);<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    // On Disconnected event a thread will wait for sometime (2/3 of zookeeper.session.timeout),<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    // it will abort the process if no SyncConnected event reported by the time.<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    connWaitTimeOut = this.conf.getLong("zookeeper.session.timeout", 90000) * 2 / 3;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    PendingWatcher pendingWatcher = new PendingWatcher();<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    this.recoverableZooKeeper = ZKUtil.connect(conf, quorum, pendingWatcher, identifier);<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    pendingWatcher.prepare(this);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    if (canCreateBaseZNode) {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      try {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>        createBaseZNodes();<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      } catch (ZooKeeperConnectionException zce) {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>        try {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>          this.recoverableZooKeeper.close();<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        } catch (InterruptedException ie) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>          LOG.debug("Encountered InterruptedException when closing " + this.recoverableZooKeeper);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>          Thread.currentThread().interrupt();<a name="line.176"></a>
-<span class="sourceLineNo">177</span>        }<a name="line.177"></a>
-<span class="sourceLineNo">178</span>        throw zce;<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>    this.forceAbortOnZKDisconnect = forceAbortOnZKDisconnect;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    if (this.forceAbortOnZKDisconnect) {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      this.zkEventWatcherExecService = Executors.newSingleThreadExecutor();<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>  private void createBaseZNodes() throws ZooKeeperConnectionException {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    try {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      // Create all the necessary "directories" of znodes<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      ZKUtil.createWithParents(this, znodePaths.baseZNode);<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      ZKUtil.createAndFailSilent(this, znodePaths.rsZNode);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      ZKUtil.createAndFailSilent(this, znodePaths.drainingZNode);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      ZKUtil.createAndFailSilent(this, znodePaths.tableZNode);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      ZKUtil.createAndFailSilent(this, znodePaths.splitLogZNode);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      ZKUtil.createAndFailSilent(this, znodePaths.backupMasterAddressesZNode);<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      ZKUtil.createAndFailSilent(this, znodePaths.tableLockZNode);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      ZKUtil.createAndFailSilent(this, znodePaths.recoveringRegionsZNode);<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      ZKUtil.createAndFailSilent(this, znodePaths.masterMaintZNode);<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    } catch (KeeperException e) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      throw new ZooKeeperConnectionException(<a name="line.200"></a>
-<span class="sourceLineNo">201</span>          prefix("Unexpected KeeperException creating base node"), e);<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>  /** Returns whether the znode is supposed to be readable by the client<a name="line.205"></a>
-<span class="sourceLineNo">206</span>   * and DOES NOT contain sensitive information (world readable).*/<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  public boolean isClientReadable(String node) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    // Developer notice: These znodes are world readable. DO NOT add more znodes here UNLESS<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    // all clients need to access this data to work. Using zk for sharing data to clients (other<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    // than service lookup case is not a recommended design pattern.<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    return<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        node.equals(znodePaths.baseZNode) ||<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        znodePaths.isAnyMetaReplicaZNode(node) ||<a name="line.213"></a>
-<span class="sourceLineNo">214</span>        node.equals(znodePaths.masterAddressZNode) ||<a name="line.214"></a>
-<span class="sourceLineNo">215</span>        node.equals(znodePaths.clusterIdZNode)||<a name="line.215"></a>
-<span class="sourceLineNo">216</span>        node.equals(znodePaths.rsZNode) ||<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        // /hbase/table and /hbase/table/foo is allowed, /hbase/table-lock is not<a name="line.217"></a>
-<span class="sourceLineNo">218</span>        node.equals(znodePaths.tableZNode) ||<a name="line.218"></a>
-<span class="sourceLineNo">219</span>        node.startsWith(znodePaths.tableZNode + "/");<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>  /**<a name="line.222"></a>
-<span class="sourceLineNo">223</span>   * On master start, we check the znode ACLs under the root directory and set the ACLs properly<a name="line.223"></a>
-<span class="sourceLineNo">224</span>   * if needed. If the cluster goes from an unsecure setup to a secure setup, this step is needed<a name="line.224"></a>
-<span class="sourceLineNo">225</span>   * so that the existing znodes created with open permissions are now changed with restrictive<a name="line.225"></a>
-<span class="sourceLineNo">226</span>   * perms.<a name="line.226"></a>
-<span class="sourceLineNo">227</span>   */<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  public void checkAndSetZNodeAcls() {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    if (!ZKUtil.isSecureZooKeeper(getConfiguration())) {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      LOG.info("not a secure deployment, proceeding");<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      return;<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>    // Check the base znodes permission first. Only do the recursion if base znode's perms are not<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    // correct.<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    try {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      List&lt;ACL&gt; actualAcls = recoverableZooKeeper.getAcl(znodePaths.baseZNode, new Stat());<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>      if (!isBaseZnodeAclSetup(actualAcls)) {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>        LOG.info("setting znode ACLs");<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        setZnodeAclsRecursive(znodePaths.baseZNode);<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      }<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    } catch(KeeperException.NoNodeException nne) {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      return;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    } catch(InterruptedException ie) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      interruptedExceptionNoThrow(ie, false);<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    } catch (IOException|KeeperException e) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      LOG.warn("Received exception while checking and setting zookeeper ACLs", e);<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">096</span>  /* A pattern that matches a Kerberos name, borrowed from Hadoop's KerberosName */<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  private static final Pattern NAME_PATTERN = Pattern.compile("([^/@]*)(/([^/@]*))?@([^/@]*)");<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>   * Instantiate a ZooKeeper connection and watcher.<a name="line.100"></a>
+<span class="sourceLineNo">101</span>   * @param identifier string that is passed to RecoverableZookeeper to be used as<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   * identifier for this instance. Use null for default.<a name="line.102"></a>
+<span class="sourceLineNo">103</span>   * @throws IOException<a name="line.103"></a>
+<span class="sourceLineNo">104</span>   * @throws ZooKeeperConnectionException<a name="line.104"></a>
+<span class="sourceLineNo">105</span>   */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>  public ZooKeeperWatcher(Configuration conf, String identifier,<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      Abortable abortable) throws ZooKeeperConnectionException, IOException {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    this(conf, identifier, abortable, false);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  }<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>  /**<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   * Instantiate a ZooKeeper connection and watcher.<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   * @param conf<a name="line.113"></a>
+<span class="sourceLineNo">114</span>   * @param identifier string that is passed to RecoverableZookeeper to be used as identifier for<a name="line.114"></a>
+<span class="sourceLineNo">115</span>   *          this instance. Use null for default.<a name="line.115"></a>
+<span class="sourceLineNo">116</span>   * @param abortable Can be null if there is on error there is no host to abort: e.g. client<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   *          context.<a name="line.117"></a>
+<span class="sourceLineNo">118</span>   * @param canCreateBaseZNode<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   * @throws IOException<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   * @throws ZooKeeperConnectionException<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   */<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  public ZooKeeperWatcher(Configuration conf, String identifier,<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      Abortable abortable, boolean canCreateBaseZNode)<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  throws IOException, ZooKeeperConnectionException {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    this.conf = conf;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    this.quorum = ZKConfig.getZKQuorumServersString(conf);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    this.prefix = identifier;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    // Identifier will get the sessionid appended later below down when we<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    // handle the syncconnect event.<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    this.identifier = identifier + "0x0";<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    this.abortable = abortable;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    this.znodePaths = new ZNodePaths(conf);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    PendingWatcher pendingWatcher = new PendingWatcher();<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    this.recoverableZooKeeper = ZKUtil.connect(conf, quorum, pendingWatcher, identifier);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    pendingWatcher.prepare(this);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    if (canCreateBaseZNode) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      try {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        createBaseZNodes();<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      } catch (ZooKeeperConnectionException zce) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        try {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>          this.recoverableZooKeeper.close();<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        } catch (InterruptedException ie) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>          LOG.debug("Encountered InterruptedException when closing " + this.recoverableZooKeeper);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>          Thread.currentThread().interrupt();<a name="line.144"></a>
+<span class="sourceLineNo">145</span>        }<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        throw zce;<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><a name="line.150"></a>
+<span class="sourceLineNo">151</span>  private void createBaseZNodes() throws ZooKeeperConnectionException {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    try {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      // Create all the necessary "directories" of znodes<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      ZKUtil.createWithParents(this, znodePaths.baseZNode);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>      ZKUtil.createAndFailSilent(this, znodePaths.rsZNode);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      ZKUtil.createAndFailSilent(this, znodePaths.drainingZNode);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      ZKUtil.createAndFailSilent(this, znodePaths.tableZNode);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      ZKUtil.createAndFailSilent(this, znodePaths.splitLogZNode);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      ZKUtil.createAndFailSilent(this, znodePaths.backupMasterAddressesZNode);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      ZKUtil.createAndFailSilent(this, znodePaths.tableLockZNode);<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      ZKUtil.createAndFailSilent(this, znodePaths.recoveringRegionsZNode);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>      ZKUtil.createAndFailSilent(this, znodePaths.masterMaintZNode);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    } catch (KeeperException e) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      throw new ZooKeeperConnectionException(<a name="line.164"></a>
+<span class="sourceLineNo">165</span>          prefix("Unexpected KeeperException creating base node"), e);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    }<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>  /** Returns whether the znode is supposed to be readable by the client<a name="line.169"></a>
+<span class="sourceLineNo">170</span>   * and DOES NOT contain sensitive information (world readable).*/<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  public boolean isClientReadable(String node) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    // Developer notice: These znodes are world readable. DO NOT add more znodes here UNLESS<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    // all clients need to access this data to work. Using zk for sharing data to clients (other<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    // than service lookup case is not a recommended design pattern.<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    return<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        node.equals(znodePaths.baseZNode) ||<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        znodePaths.isAnyMetaReplicaZNode(node) ||<a name="line.177"></a>
+<span class="sourceLineNo">178</span>        node.equals(znodePaths.masterAddressZNode) ||<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        node.equals(znodePaths.clusterIdZNode)||<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        node.equals(znodePaths.rsZNode) ||<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        // /hbase/table and /hbase/table/foo is allowed, /hbase/table-lock is not<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        node.equals(znodePaths.tableZNode) ||<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        node.startsWith(znodePaths.tableZNode + "/");<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>   * On master start, we check the znode ACLs under the root directory and set the ACLs properly<a name="line.187"></a>
+<span class="sourceLineNo">188</span>   * if needed. If the cluster goes from an unsecure setup to a secure setup, this step is needed<a name="line.188"></a>
+<span class="sourceLineNo">189</span>   * so that the existing znodes created with open permissions are now changed with restrictive<a name="line.189"></a>
+<span class="sourceLineNo">190</span>   * perms.<a name="line.190"></a>
+<span class="sourceLineNo">191</span>   */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  public void checkAndSetZNodeAcls() {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    if (!ZKUtil.isSecureZooKeeper(getConfiguration())) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      LOG.info("not a secure deployment, proceeding");<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      return;<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>    // Check the base znodes permission first. Only do the recursion if base znode's perms are not<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    // correct.<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    try {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      List&lt;ACL&gt; actualAcls = recoverableZooKeeper.getAcl(znodePaths.baseZNode, new Stat());<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>      if (!isBaseZnodeAclSetup(actualAcls)) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        LOG.info("setting znode ACLs");<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        setZnodeAclsRecursive(znodePaths.baseZNode);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      }<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    } catch(KeeperException.NoNodeException nne) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      return;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    } catch(InterruptedException ie) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      interruptedExceptionNoThrow(ie, false);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    } catch (IOException|KeeperException e) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      LOG.warn("Received exception while checking and setting zookeeper ACLs", e);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    }<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  }<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>  /**<a name="line.216"></a>
+<span class="sourceLineNo">217</span>   * Set the znode perms recursively. This will do post-order recursion, so that baseZnode ACLs<a name="line.217"></a>
+<span class="sourceLineNo">218</span>   * will be set last in case the master fails in between.<a name="line.218"></a>
+<span class="sourceLineNo">219</span>   * @param znode<a name="line.219"></a>
+<span class="sourceLineNo">220</span>   */<a name="line.220"></a>
+<span class="sourceLineNo">221</span>  private void setZnodeAclsRecursive(String znode) throws KeeperException, InterruptedException {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    List&lt;String&gt; children = recoverableZooKeeper.getChildren(znode, false);<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>    for (String child : children) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      setZnodeAclsRecursive(ZKUtil.joinZNode(znode, child));<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    List&lt;ACL&gt; acls = ZKUtil.createACL(this, znode, true);<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    LOG.info("Setting ACLs for znode:" + znode + " , acl:" + acls);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    recoverableZooKeeper.setAcl(znode, acls, -1);<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">233</span>   * Checks whether the ACLs returned from the base znode (/hbase) is set for secure setup.<a name="line.233"></a>
+<span class="sourceLineNo">234</span>   * @param acls acls from zookeeper<a name="line.234"></a>
+<span class="sourceLineNo">235</span>   * @return whether ACLs are set for the base znode<a name="line.235"></a>
+<span class="sourceLineNo">236</span>   * @throws IOException<a name="line.236"></a>
+<span class="sourceLineNo">237</span>   */<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  private boolean isBaseZnodeAclSetup(List&lt;ACL&gt; acls) throws IOException {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    if (LOG.isDebugEnabled()) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      LOG.debug("Checking znode ACLs");<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    }<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    String[] superUsers = conf.getStrings(Superusers.SUPERUSER_CONF_KEY);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    // Check whether ACL set for all superusers<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    if (superUsers != null &amp;&amp; !checkACLForSuperUsers(superUsers, acls)) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      return false;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>    // this assumes that current authenticated user is the same as zookeeper client user<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    // configured via JAAS<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    String hbaseUser = UserGroupInformation.getCurrentUser().getShortUserName();<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>   * Set the znode perms recursively. This will do post-order recursion, so that baseZnode ACLs<a name="line.253"></a>
-<span class="sourceLineNo">254</span>   * will be set last in case the master fails in between.<a name="line.254"></a>
-<span class="sourceLineNo">255</span>   * @param znode<a name="line.255"></a>
-<span class="sourceLineNo">256</span>   */<a name="line.256"></a>
-<span class="sourceLineNo">257</span>  private void setZnodeAclsRecursive(String znode) throws KeeperException, InterruptedException {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    List&lt;String&gt; children = recoverableZooKeeper.getChildren(znode, false);<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>    for (String child : children) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      setZnodeAclsRecursive(ZKUtil.joinZNode(znode, child));<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    List&lt;ACL&gt; acls = ZKUtil.createACL(this, znode, true);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    LOG.info("Setting ACLs for znode:" + znode + " , acl:" + acls);<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    recoverableZooKeeper.setAcl(znode, acls, -1);<a name="line.265"></a>
-<span class="sourceLineNo">266</span>  }<a name="line.266"></a>
-<span class="sourceLineNo">267</span><a name="line.267"></a>
-<span class="sourceLineNo">268</span>  /**<a name="line.268"></a>
-<span class="sourceLineNo">269</span>   * Checks whether the ACLs returned from the base znode (/hbase) is set for secure setup.<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * @param acls acls from zookeeper<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * @return whether ACLs are set for the base znode<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * @throws IOException<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   */<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private boolean isBaseZnodeAclSetup(List&lt;ACL&gt; acls) throws IOException {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    if (LOG.isDebugEnabled()) {<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      LOG.debug("Checking znode ACLs");<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    }<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    String[] superUsers = conf.getStrings(Superusers.SUPERUSER_CONF_KEY);<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    // Check whether ACL set for all superusers<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    if (superUsers != null &amp;&amp; !checkACLForSuperUsers(superUsers, acls)) {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      return false;<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>    // this assumes that current authenticated user is the same as zookeeper client user<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    // configured via JAAS<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    String hbaseUser = UserGroupInformation.getCurrentUser().getShortUserName();<a name="line.286"></a>
-<span class="sourceLineNo">287</span><a name="line.287"></a>
-<span class="sourceLineNo">288</span>    if (acls.isEmpty()) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      if (LOG.isDebugEnabled()) {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>        LOG.debug("ACL is empty");<a name="line.290"></a>
-<span class="sourceLineNo">291</span>      }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      return false;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    }<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>    for (ACL acl : acls) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      int perms = acl.getPerms();<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      Id id = acl.getId();<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      // We should only set at most 3 possible ACLs for 3 Ids. One for everyone, one for superuser<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      // and one for the hbase user<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      if (Ids.ANYONE_ID_UNSAFE.equals(id)) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        if (perms != Perms.READ) {<a name="line.301"></a>
-<span class="sourceLineNo">302</span>          if (LOG.isDebugEnabled()) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>            LOG.debug(String.format("permissions for '%s' are not correct: have 0x%x, want 0x%x",<a name="line.303"></a>
-<span class="sourceLineNo">304</span>              id, perms, Perms.READ));<a name="line.304"></a>
-<span class="sourceLineNo">305</span>          }<a name="line.305"></a>
-<span class="sourceLineNo">306</span>          return false;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        }<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      } else if (superUsers != null &amp;&amp; isSuperUserId(superUsers, id)) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>        if (perms != Perms.ALL) {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>          if (LOG.isDebugEnabled()) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>            LOG.debug(String.format("permissions for '%s' are not correct: have 0x%x, want 0x%x",<a name="line.311"></a>
-<span class="sourceLineNo">312</span>              id, perms, Perms.ALL));<a name="line.312"></a>
-<span class="sourceLineNo">313</span>          }<a name="line.313"></a>
-<span class="sourceLineNo">314</span>          return false;<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      } else if ("sasl".equals(id.getScheme())) {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        String name = id.getId();<a name="line.317"></a>
-<span class="sourceLineNo">318</span>        // If ZooKeeper recorded the Kerberos full name in the ACL, use only the shortname<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        Matcher match = NAME_PATTERN.matcher(name);<a name="line.319"></a>
-<span class="sourceLineNo">320</span>        if (match.matches()) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          name = match.group(1);<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        if (name.equals(hbaseUser)) {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>          if (perms != Perms.ALL) {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>            if (LOG.isDebugEnabled()) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>              LOG.debug(String.format("permissions for '%s' are not correct: have 0x%x, want 0x%x",<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                id, perms, Perms.ALL));<a name="line.327"></a>
-<span class="sourceLineNo">328</span>            }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            return false;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>          }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>        } else {<a name="line.331"></a>
-<span class="sourceLineNo">332</span>          if (LOG.isDebugEnabled()) {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>            LOG.debug("Unexpected shortname in SASL ACL: " + id);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>          }<a name="line.334"></a>
-<span class="sourceLineNo">335</span>          return false;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>        }<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      } else {<a name="line.337"></a>
-<span class="sourceLineNo">338</span>        if (LOG.isDebugEnabled()) {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>          LOG.debug("unexpected ACL id '" + id + "'");<a name="line.339"></a>
-<span class="sourceLineNo">340</span>        }<a name="line.340"></a>
-<span class="sourceLineNo">341</span>        return false;<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      }<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    }<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return true;<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  /*<a name="line.347"></a>
-<span class="sourceLineNo">348</span>   * Validate whether ACL set for all superusers.<a name="line.348"></a>
-<span class="sourceLineNo">349</span>   */<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  private boolean checkACLForSuperUsers(String[] superUsers, List&lt;ACL&gt; acls) {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    for (String user : superUsers) {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      boolean hasAccess = false;<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      // TODO: Validate super group members also when ZK supports setting node ACL for groups.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      if (!AuthUtil.isGroupPrincipal(user)) {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>        for (ACL acl : acls) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>          if (user.equals(acl.getId().getId())) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>            if (acl.getPerms() == Perms.ALL) {<a name="line.357"></a>
-<span class="sourceLineNo">358</span>              hasAccess = true;<a name="line.358"></a>
-<span class="sourceLineNo">359</span>            } else {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>              if (LOG.isDebugEnabled()) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>                LOG.debug(String.format(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>                  "superuser '%s' does not have correct permissions: have 0x%x, want 0x%x",<a name="line.362"></a>
-<span class="sourceLineNo">363</span>                  acl.getId().getId(), acl.getPerms(), Perms.ALL));<a name="line.363"></a>
-<span class="sourceLineNo">364</span>              }<a name="line.364"></a>
-<span class="sourceLineNo">365</span>            }<a name="line.365"></a>
-<span class="sourceLineNo">366</span>            break;<a name="line.366"></a>
-<span class="sourceLineNo">367</span>          }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>        }<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        if (!hasAccess) {<a name="line.369"></a>
-<span class="sourceLineNo">370</span>          return false;<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>    return true;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>  /*<a name="line.377"></a>
-<span class="sourceLineNo">378</span>   * Validate whether ACL ID is superuser.<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   */<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public static boolean isSuperUserId(String[] superUsers, Id id) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    for (String user : superUsers) {<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      // TODO: Validate super group members also when ZK supports setting node ACL for groups.<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      if (!AuthUtil.isGroupPrincipal(user) &amp;&amp; new Id("sasl", user).equals(id)) {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>        return true;<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>    return false;<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>  @Override<a name="line.390"></a>
-<span class="sourceLineNo">391</span>  public String toString() {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    return this.identifier + ", quorum=" + quorum + ", baseZNode=" + znodePaths.baseZNode;<a name="line.392"></a>
-<span class="sourceLineNo">393</span>  }<a name="line.393"></a>
-<span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span>  /**<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   * Adds this instance's identifier as a prefix to the passed &lt;code&gt;str&lt;/code&gt;<a name="line.396"></a>
-<span class="sourceLineNo">397</span>   * @param str String to amend.<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   * @return A new string with this instance's identifier as prefix: e.g.<a name="line.398"></a>
-<span class="sourceLineNo">399</span>   * if passed 'hello world', the returned string could be<a name="line.399"></a>
-<span class="sourceLineNo">400</span>   */<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  public String prefix(final String str) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    return this.toString() + " " + str;<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>   * Get the znodes corresponding to the meta replicas from ZK<a name="line.406"></a>
-<span class="sourceLineNo">407</span>   * @return list of znodes<a name="line.407"></a>
-<span class="sourceLineNo">408</span>   * @throws KeeperException<a name="line.408"></a>
+<span class="sourceLineNo">252</span>    if (acls.isEmpty()) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      if (LOG.isDebugEnabled()) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        LOG.debug("ACL is empty");<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      return false;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    }<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>    for (ACL acl : acls) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      int perms = acl.getPerms();<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Id id = acl.getId();<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      // We should only set at most 3 possible ACLs for 3 Ids. One for everyone, one for superuser<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      // and one for the hbase user<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      if (Ids.ANYONE_ID_UNSAFE.equals(id)) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        if (perms != Perms.READ) {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>          if (LOG.isDebugEnabled()) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>            LOG.debug(String.format("permissions for '%s' are not correct: have 0x%x, want 0x%x",<a name="line.267"></a>
+<span class="sourceLineNo">268</span>              id, perms, Perms.READ));<a name="line.268"></a>
+<span class="sourceLineNo">269</span>          }<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          return false;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        }<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      } else if (superUsers != null &amp;&amp; isSuperUserId(superUsers, id)) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>        if (perms != Perms.ALL) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          if (LOG.isDebugEnabled()) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>            LOG.debug(String.format("permissions for '%s' are not correct: have 0x%x, want 0x%x",<a name="line.275"></a>
+<span class="sourceLineNo">276</span>              id, perms, Perms.ALL));<a name="line.276"></a>
+<span class="sourceLineNo">277</span>          }<a name="line.277"></a>
+<span class="sourceLineNo">278</span>          return false;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        }<a name="line.279"></a>
+<span class="sourceLineNo">280</span>      } else if ("sasl".equals(id.getScheme())) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        String name = id.getId();<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        // If ZooKeeper recorded the Kerberos full name in the ACL, use only the shortname<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        Matcher match = NAME_PATTERN.matcher(name);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        if (match.matches()) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>          name = match.group(1);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>        }<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        if (name.equals(hbaseUser)) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>          if (perms != Perms.ALL) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>            if (LOG.isDebugEnabled()) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>              LOG.debug(String.format("permissions for '%s' are not correct: have 0x%x, want 0x%x",<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                id, perms, Perms.ALL));<a name="line.291"></a>
+<span class="sourceLineNo">292</span>            }<a name="line.292"></a>
+<span class="sourceLineNo">293</span>            return false;<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          }<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        } else {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          if (LOG.isDebugEnabled()) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            LOG.debug("Unexpected shortname in SASL ACL: " + id);<a name="line.297"></a>
+<span class="sourceLineNo">298</span>          }<a name="line.298"></a>
+<span class="sourceLineNo">299</span>          return false;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        }<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      } else {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        if (LOG.isDebugEnabled()) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>          LOG.debug("unexpected ACL id '" + id + "'");<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        }<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        return false;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      }<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    }<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    return true;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>  }<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>  /*<a name="line.311"></a>
+<span class="sourceLineNo">312</span>   * Validate whether ACL set for all superusers.<a name="line.312"></a>
+<span class="sourceLineNo">313</span>   */<a name="line.313"></a>
+<span class="sourceLineNo">314</span>  private boolean checkACLForSuperUsers(String[] superUsers, List&lt;ACL&gt; acls) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    for (String user : superUsers) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      boolean hasAccess = false;<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      // TODO: Validate super group members also when ZK supports setting node ACL for groups.<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      if (!AuthUtil.isGroupPrincipal(user)) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        for (ACL acl : acls) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>          if (user.equals(acl.getId().getId())) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>            if (acl.getPerms() == Perms.ALL) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>              hasAccess = true;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>            } else {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>              if (LOG.isDebugEnabled()) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                LOG.debug(String.format(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                  "superuser '%s' does not have correct permissions: have 0x%x, want 0x%x",<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                  acl.getId().getId(), acl.getPerms(), Perms.ALL));<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>            break;<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>        if (!hasAccess) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>          return false;<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>    }<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    return true;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>  }<a name="line.339"></a>
+<span class="sourceLineNo">340</span><a name="line.340"></a>
+<span class="sourceLineNo">341</span>  /*<a name="line.341"></a>
+<span class="sourceLineNo">342</span>   * Validate whether ACL ID is superuser.<a name="line.342"></a>
+<span class="sourceLineNo">343</span>   */<a name="line.343"></a>
+<span class="sourceLineNo">344</span>  public static boolean isSuperUserId(String[] superUsers, Id id) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    for (String user : superUsers) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      // TODO: Validate super group members also when ZK supports setting node ACL for groups.<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      if (!AuthUtil.isGroupPrincipal(user) &amp;&amp; new Id("sasl", user).equals(id)) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        return true;<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      }<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    }<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    return false;<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>  @Override<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  public String toString() {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>    return this.identifier + ", quorum=" + quorum + ", baseZNode=" + znodePaths.baseZNode;<a name="line.356"></a>
+<span class="sourceLineNo">357</span>  }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>  /**<a name="line.359"></a>
+<span class="sourceLineNo">360</span>   * Adds this instance's identifier as a prefix to the passed &lt;code&gt;str&lt;/code&gt;<a name="line.360"></a>
+<span class="sourceLineNo">361</span>   * @param str String to amend.<a name="line.361"></a>
+<span class="sourceLineNo">362</span>   * @return A new string with this instance's identifier as prefix: e.g.<a name="line.362"></a>
+<span class="sourceLineNo">363</span>   * if passed 'hello world', the returned string could be<a name="line.363"></a>
+<span class="sourceLineNo">364</span>   */<a name="line.364"></a>
+<span class="sourceLineNo">365</span>  public String prefix(final String str) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    return this.toString() + " " + str;<a name="line.366"></a>
+<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span>  /**<a name="line.369"></a>
+<span class="sourceLineNo">370</span>   * Get the znodes corresponding to the meta replicas from ZK<a name="line.370"></a>
+<span class="sourceLineNo">371</span>   * @return list of znodes<a name="line.371"></a>
+<span class="sourceLineNo">372</span>   * @throws KeeperException<a name="line.372"></a>
+<span class="sourceLineNo">373</span>   */<a name="line.373"></a>
+<span class="sourceLineNo">374</span>  public List&lt;String&gt; getMetaReplicaNodes() throws KeeperException {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    List&lt;String&gt; childrenOfBaseNode = ZKUtil.listChildrenNoWatch(this, znodePaths.baseZNode);<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    List&lt;String&gt; metaReplicaNodes = new ArrayList&lt;&gt;(2);<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    if (childrenOfBaseNode != null) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      String pattern = conf.get("zookeeper.znode.metaserver","meta-region-server");<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      for (String child : childrenOfBaseNode) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        if (child.startsWith(pattern)) metaReplicaNodes.add(child);<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>    return metaReplicaNodes;<a name="line.383"></a>
+<span class="sourceLineNo">384</span>  }<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>   * Register the specified listener to receive ZooKeeper events.<a name="line.387"></a>
+<span class="sourceLineNo">388</span>   * @param listener<a name="line.388"></a>
+<span class="sourceLineNo">389</span>   */<a name="line.389"></a>
+<span class="sourceLineNo">390</span>  public void registerListener(ZooKeeperListener listener) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    listeners.add(listener);<a name="line.391"></a>
+<span class="sourceLineNo">392</span>  }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>  /**<a name="line.394"></a>
+<span class="sourceLineNo">395</span>   * Register the specified listener to receive ZooKeeper events and add it as<a name="line.395"></a>
+<span class="sourceLineNo">396</span>   * the first in the list of current listeners.<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   * @param listener<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   */<a name="line.398"></a>
+<span class="sourceLineNo">399</span>  public void registerListenerFirst(ZooKeeperListener listener) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    listeners.add(0, listener);<a name="line.400"></a>
+<span class="sourceLineNo">401</span>  }<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>  public void unregisterListener(ZooKeeperListener listener) {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    listeners.remove(listener);<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>   * Clean all existing listeners<a name="line.408"></a>
 <span class="sourceLineNo">409</span>   */<a name="line.409"></a>
-<span class="sourceLineNo">410</span>  public List&lt;String&gt; getMetaReplicaNodes() throws KeeperException {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    List&lt;String&gt; childrenOfBaseNode = ZKUtil.listChildrenNoWatch(this, znodePaths.baseZNode);<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    List&lt;String&gt; metaReplicaNodes = new ArrayList&lt;&gt;(2);<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    if (childrenOfBaseNode != null) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      String pattern = conf.get("zookeeper.znode.metaserver","meta-region-server");<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      for (String child : childrenOfBaseNode) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>        if (child.startsWith(pattern)) metaReplicaNodes.add(child);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      }<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    }<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    return metaReplicaNodes;<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  }<a name="line.420"></a>
-<span class="sourceLineNo">421</span><a name="line.421"></a>
-<span class="sourceLineNo">422</span>  /**<a name="line.422"></a>
-<span class="sourceLineNo">423</span>   * Register the specified listener to receive ZooKeeper events.<a name="line.423"></a>
-<span class="sourceLineNo">424</span>   * @param listener<a name="line.424"></a>
-<span class="sourceLineNo">425</span>   */<a name="line.425"></a>
-<span class="sourceLineNo">426</span>  public void registerListener(ZooKeeperListener listener) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    listeners.add(listener);<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>   * Register the specified listener to receive ZooKeeper events and add it as<a name="line.431"></a>
-<span class="sourceLineNo">432</span>   * the first in the list of current listeners.<a name="line.432"></a>
-<span class="sourceLineNo">433</span>   * @param listener<a name="line.433"></a>
-<span class="sourceLineNo">434</span>   */<a name="line.434"></a>
-<span class="sourceLineNo">435</span>  public void registerListenerFirst(ZooKeeperListener listener) {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    listeners.add(0, listener);<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>  public void unregisterListener(ZooKeeperListener listener) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    listeners.remove(listener);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  }<a name="line.441"></a>
-<span class="sourceLineNo">442</span><a name="line.442"></a>
-<span class="sourceLineNo">443</span>  /**<a name="line.443"></a>
-<span class="sourceLineNo">444</span>   * Clean all existing listeners<a name="line.444"></a>
-<span class="sourceLineNo">445</span>   */<a name="line.445"></a>
-<span class="sourceLineNo">446</span>  public void unregisterAllListeners() {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    listeners.clear();<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>   * Get a copy of current registered listeners<a name="line.451"></a>
+<span class="sourceLineNo">410</span>  public void unregisterAllListeners() {<a name="line.410"></a>
+<span class="sourceLineNo">411</span>    listeners.clear();<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>   * Get a copy of current registered listeners<a name="line.415"></a>
+<span class="sourceLineNo">416</span>   */<a name="line.416"></a>
+<span class="sourceLineNo">417</span>  public List&lt;ZooKeeperListener&gt; getListeners() {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    return new ArrayList&lt;&gt;(listeners);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>  }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>  /**<a name="line.421"></a>
+<span class="sourceLineNo">422</span>   * @return The number of currently registered listeners<a name="line.422"></a>
+<span class="sourceLineNo">423</span>   */<a name="line.423"></a>
+<span class="sourceLineNo">424</span>  public int getNumberOfListeners() {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    return listeners.size();<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>   * Get the connection to ZooKeeper.<a name="line.429"></a>
+<span class="sourceLineNo">430</span>   * @return connection reference to zookeeper<a name="line.430"></a>
+<span class="sourceLineNo">431</span>   */<a name="line.431"></a>
+<span class="sourceLineNo">432</span>  public RecoverableZooKeeper getRecoverableZooKeeper() {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>    return recoverableZooKeeper;<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>  public void reconnectAfterExpiration() throws IOException, KeeperException, InterruptedException {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    recoverableZooKeeper.reconnectAfterExpiration();<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>  /**<a name="line.440"></a>
+<span class="sourceLineNo">441</span>   * Get the quorum address of this instance.<a name="line.441"></a>
+<span class="sourceLineNo">442</span>   * @return quorum string of this zookeeper connection instance<a name="line.442"></a>
+<span class="sourceLineNo">443</span>   */<a name="line.443"></a>
+<span class="sourceLineNo">444</span>  public String getQuorum() {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    return quorum;<a name="line.445"></a>
+<span class="sourceLineNo">446</span>  }<a name="line.446"></a>
+<span class="sourceLineNo">447</span><a name="line.447"></a>
+<span class="sourceLineNo">448</span>  /**<a name="line.448"></a>
+<span class="sourceLineNo">449</span>   * Get the znodePaths.<a name="line.449"></a>
+<span class="sourceLineNo">450</span>   * &lt;p&gt;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>   * Mainly used for mocking as mockito can not mock a field access.<a name="line.451"></a>
 <span class="sourceLineNo">452</span>   */<a name="line.452"></a>
-<span class="sourceLineNo">453</span>  public List&lt;ZooKeeperListener&gt; getListeners() {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    return new ArrayList&lt;&gt;(listeners);<a name="line.454"></a>
+<span class="sourceLineNo">453</span>  public ZNodePaths getZNodePaths() {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    return znodePaths;<a name="line.454"></a>
 <span class="sourceLineNo">455</span>  }<a name="line.455"></a>
 <span class="sourceLineNo">456</span><a name="line.456"></a>
 <span class="sourceLineNo">457</span>  /**<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   * @return The number of currently registered listeners<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   */<a name="line.459"></a>
-<span class="sourceLineNo">460</span>  public int getNumberOfListeners() {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    return listeners.size();<a name="line.461"></a>
-<span class="sourceLineNo">462</span>  }<a name="line.462"></a>
-<span class="sourceLineNo">463</span><a name="line.463"></a>
-<span class="sourceLineNo">464</span>  /**<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * Get the connection to ZooKeeper.<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   * @return connection reference to zookeeper<a name="line.466"></a>
-<span class="sourceLineNo">467</span>   */<a name="line.467"></a>
-<span class="sourceLineNo">468</span>  public RecoverableZooKeeper getRecoverableZooKeeper() {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    return recoverableZooKeeper;<a name="line.469"></a>
-<span class="sourceLineNo">470</span>  }<a name="line.470"></a>
+<span class="sourceLineNo">458</span>   * Method called from ZooKeeper for events and connection status.<a name="line.458"></a>
+<span class="sourceLineNo">459</span>   * &lt;p&gt;<a name="line.459"></a>
+<span class="sourceLineNo">460</span>   * Valid events are passed along to listeners.  Connection status changes<a name="line.460"></a>
+<span class="sourceLineNo">461</span>   * are dealt with locally.<a name="line.461"></a>
+<span class="sourceLineNo">462</span>   */<a name="line.462"></a>
+<span class="sourceLineNo">463</span>  @Override<a name="line.463"></a>
+<span class="sourceLineNo">464</span>  public void process(WatchedEvent event) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>    LOG.debug(prefix("Received ZooKeeper Event, " +<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        "type=" + event.getType() + ", " +<a name="line.466"></a>
+<span class="sourceLineNo">467</span>        "state=" + event.getState() + ", " +<a name="line.467"></a>
+<span class="sourceLineNo">468</span>        "path=" + event.getPath()));<a name="line.468"></a>
+<span class="sourceLineNo">469</span><a name="line.469"></a>
+<span class="sourceLineNo">470</span>    switch(event.getType()) {<a name="line.470"></a>
 <span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span>  public void reconnectAfterExpiration() throws IOException, KeeperException, InterruptedException {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>    recoverableZooKeeper.reconnectAfterExpiration();<a name="line.473"></a>
-<span class="sourceLineNo">474</span>  }<a name="line.474"></a>
-<span class="sourceLineNo">475</span><a name="line.475"></a>
-<span class="sourceLineNo">476</span>  /**<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * Get the quorum address of this instance.<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * @return quorum string of this zookeeper connection instance<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   */<a name="line.479"></a>
-<span class="sourceLineNo">480</span>  public String getQuorum() {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    return quorum;<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>  /**<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   * Get the znodePaths.<a name="line.485"></a>
-<span class="sourceLineNo">486</span>   * &lt;p&gt;<a name="line.486"></a>
-<span class="sourceLineNo">487</span>   * Mainly used for mocking as mockito can not mock a field access.<a name="line.487"></a>
-<span class="sourceLineNo">488</span>   */<a name="line.488"></a>
-<span class="sourceLineNo">489</span>  public ZNodePaths getZNodePaths() {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    return znodePaths;<a name="line.490"></a>
-<span class="sourceLineNo">491</span>  }<a name="line.491"></a>
-<span class="sourceLineNo">492</span><a name="line.492"></a>
-<span class="sourceLineNo">493</span>  /**<a name="line.493"></a>
-<span class="sourceLineNo">494</span>   * Method called from ZooKeeper for events and connection status.<a name="line.494"></a>
-<span class="sourceLineNo">495</span>   * &lt;p&gt;<a name="line.495"></a>
-<span class="sourceLineNo">496</span>   * Valid events are passed along to listeners.  Connection status changes<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   * are dealt with locally.<a name="line.497"></a>
-<span class="sourceLineNo">498</span>   */<a name="line.498"></a>
-<span class="sourceLineNo">499</span>  @Override<a name="line.499"></a>
-<span class="sourceLineNo">500</span>  public void process(WatchedEvent event) {<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    LOG.debug(prefix("Received ZooKeeper Event, " +<a name="line.501"></a>
-<span class="sourceLineNo">502</span>        "type=" + event.getType() + ", " +<a name="line.502"></a>
-<span class="sourceLineNo">503</span>        "state=" + event.getState() + ", " +<a name="line.503"></a>
-<span class="sourceLineNo">504</span>        "path=" + event.getPath()));<a name="line.504"></a>
-<span class="sourceLineNo">505</span><a name="line.505"></a>
-<span class="sourceLineNo">506</span>    switch(event.getType()) {<a name="line.506"></a>
-<spa

<TRUNCATED>

[03/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html
index 925744f..67bf8be 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/MockMasterServices.html
@@ -42,328 +42,333 @@
 <span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.ServerName;<a name="line.34"></a>
 <span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.TableDescriptors;<a name="line.35"></a>
 <span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.TableName;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.client.HConnectionTestingUtility;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.master.LoadBalancer;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.master.MasterFileSystem;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.master.MasterWalManager;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.master.MockNoopMasterServices;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.master.RegionState.State;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.master.ServerManager;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.master.procedure.RSProcedureDispatcher;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.procedure2.ProcedureEvent;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.procedure2.store.NoopProcedureStore;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.security.Superusers;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiRequest;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiResponse;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateRequest;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateResponse;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionAction;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionActionResult;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ResultOrException;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.util.FSUtils;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.mockito.Mockito;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.mockito.invocation.InvocationOnMock;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.mockito.stubbing.Answer;<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> * A mocked master services.<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * Tries to fake it. May not always work.<a name="line.75"></a>
-<span class="sourceLineNo">076</span> */<a name="line.76"></a>
-<span class="sourceLineNo">077</span>public class MockMasterServices extends MockNoopMasterServices {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  private final MasterFileSystem fileSystemManager;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  private final MasterWalManager walManager;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private final AssignmentManager assignmentManager;<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  private MasterProcedureEnv procedureEnv;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  private ProcedureExecutor&lt;MasterProcedureEnv&gt; procedureExecutor;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  private ProcedureStore procedureStore;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  private final ClusterConnection connection;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  private final LoadBalancer balancer;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  private final ServerManager serverManager;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  // Set of regions on a 'server'. Populated externally. Used in below faking 'cluster'.<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  private final NavigableMap&lt;ServerName, SortedSet&lt;byte []&gt;&gt; regionsToRegionServers;<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>  private final ProcedureEvent initialized = new ProcedureEvent("master initialized");<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  public static final String DEFAULT_COLUMN_FAMILY_NAME = "cf";<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  public static final ServerName MOCK_MASTER_SERVERNAME =<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      ServerName.valueOf("mockmaster.example.org", 1234, -1L);<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  public MockMasterServices(Configuration conf,<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      NavigableMap&lt;ServerName, SortedSet&lt;byte []&gt;&gt; regionsToRegionServers)<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  throws IOException {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    super(conf);<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    this.regionsToRegionServers = regionsToRegionServers;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    Superusers.initialize(conf);<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    this.fileSystemManager = new MasterFileSystem(this);<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    this.walManager = new MasterWalManager(this);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    // Mock an AM.<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    this.assignmentManager = new AssignmentManager(this, new MockRegionStateStore(this)) {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      public boolean isTableEnabled(final TableName tableName) {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>        return true;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      }<a name="line.108"></a>
-<span class="sourceLineNo">109</span><a name="line.109"></a>
-<span class="sourceLineNo">110</span>      public boolean isTableDisabled(final TableName tableName) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>        return false;<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>      @Override<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      protected boolean waitServerReportEvent(ServerName serverName, Procedure proc) {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>        // Make a report with current state of the server 'serverName' before we call wait..<a name="line.116"></a>
-<span class="sourceLineNo">117</span>        SortedSet&lt;byte []&gt; regions = regionsToRegionServers.get(serverName);<a name="line.117"></a>
-<span class="sourceLineNo">118</span>        getAssignmentManager().reportOnlineRegions(serverName, 0,<a name="line.118"></a>
-<span class="sourceLineNo">119</span>            regions == null? new HashSet&lt;byte []&gt;(): regions);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>        return super.waitServerReportEvent(serverName, proc);<a name="line.120"></a>
-<span class="sourceLineNo">121</span>      }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    };<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    this.balancer = LoadBalancerFactory.getLoadBalancer(conf);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    this.serverManager = new ServerManager(this);<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>    // Mock up a Client Interface<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    ClientProtos.ClientService.BlockingInterface ri =<a name="line.127"></a>
-<span class="sourceLineNo">128</span>        Mockito.mock(ClientProtos.ClientService.BlockingInterface.class);<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    MutateResponse.Builder builder = MutateResponse.newBuilder();<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    builder.setProcessed(true);<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    try {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      Mockito.when(ri.mutate((RpcController)Mockito.any(), (MutateRequest)Mockito.any())).<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        thenReturn(builder.build());<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    } catch (ServiceException se) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      throw ProtobufUtil.handleRemoteException(se);<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    try {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      Mockito.when(ri.multi((RpcController)Mockito.any(), (MultiRequest)Mockito.any())).<a name="line.138"></a>
-<span class="sourceLineNo">139</span>        thenAnswer(new Answer&lt;MultiResponse&gt;() {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>          @Override<a name="line.140"></a>
-<span class="sourceLineNo">141</span>          public MultiResponse answer(InvocationOnMock invocation) throws Throwable {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>            return buildMultiResponse( (MultiRequest)invocation.getArguments()[1]);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>          }<a name="line.143"></a>
-<span class="sourceLineNo">144</span>        });<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    } catch (ServiceException se) {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      throw ProtobufUtil.getRemoteException(se);<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    }<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    // Mock n ClusterConnection and an AdminProtocol implementation. Have the<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    // ClusterConnection return the HRI.  Have the HRI return a few mocked up responses<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    // to make our test work.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    this.connection =<a name="line.151"></a>
-<span class="sourceLineNo">152</span>        HConnectionTestingUtility.getMockedConnectionAndDecorate(getConfiguration(),<a name="line.152"></a>
-<span class="sourceLineNo">153</span>          Mockito.mock(AdminProtos.AdminService.BlockingInterface.class), ri, MOCK_MASTER_SERVERNAME,<a name="line.153"></a>
-<span class="sourceLineNo">154</span>          HRegionInfo.FIRST_META_REGIONINFO);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    // Set hbase.rootdir into test dir.<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    Path rootdir = FSUtils.getRootDir(getConfiguration());<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    FSUtils.setRootDir(getConfiguration(), rootdir);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    Mockito.mock(AdminProtos.AdminService.BlockingInterface.class);<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>  public void start(final int numServes, final RSProcedureDispatcher remoteDispatcher)<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      throws IOException {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    startProcedureExecutor(remoteDispatcher);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    this.assignmentManager.start();<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    for (int i = 0; i &lt; numServes; ++i) {<a name="line.165"></a>
-<span class="sourceLineNo">166</span>      serverManager.regionServerReport(<a name="line.166"></a>
-<span class="sourceLineNo">167</span>        ServerName.valueOf("localhost", 100 + i, 1), ServerLoad.EMPTY_SERVERLOAD);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    this.procedureExecutor.getEnvironment().setEventReady(initialized, true);<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  }<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>  @Override<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public void stop(String why) {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    stopProcedureExecutor();<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    this.assignmentManager.stop();<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>  private void startProcedureExecutor(final RSProcedureDispatcher remoteDispatcher)<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      throws IOException {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    final Configuration conf = getConfiguration();<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    final Path logDir = new Path(fileSystemManager.getRootDir(),<a name="line.181"></a>
-<span class="sourceLineNo">182</span>        MasterProcedureConstants.MASTER_PROCEDURE_LOGDIR);<a name="line.182"></a>
-<span class="sourceLineNo">183</span><a name="line.183"></a>
-<span class="sourceLineNo">184</span>    //procedureStore = new WALProcedureStore(conf, fileSystemManager.getFileSystem(), logDir,<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    //    new MasterProcedureEnv.WALStoreLeaseRecovery(this));<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    this.procedureStore = new NoopProcedureStore();<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    this.procedureStore.registerListener(new MasterProcedureEnv.MasterProcedureStoreListener(this));<a name="line.187"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.YouAreDeadException;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.client.HConnectionTestingUtility;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.master.LoadBalancer;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.master.MasterFileSystem;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.master.MasterWalManager;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.master.MockNoopMasterServices;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.master.RegionState.State;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.master.ServerManager;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.master.procedure.RSProcedureDispatcher;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.procedure2.ProcedureEvent;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.procedure2.store.NoopProcedureStore;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.security.Superusers;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiRequest;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiResponse;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateRequest;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateResponse;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionAction;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionActionResult;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ResultOrException;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.util.FSUtils;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.mockito.Mockito;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.mockito.invocation.InvocationOnMock;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.mockito.stubbing.Answer;<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>/**<a name="line.74"></a>
+<span class="sourceLineNo">075</span> * A mocked master services.<a name="line.75"></a>
+<span class="sourceLineNo">076</span> * Tries to fake it. May not always work.<a name="line.76"></a>
+<span class="sourceLineNo">077</span> */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>public class MockMasterServices extends MockNoopMasterServices {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private final MasterFileSystem fileSystemManager;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private final MasterWalManager walManager;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  private final AssignmentManager assignmentManager;<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>  private MasterProcedureEnv procedureEnv;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  private ProcedureExecutor&lt;MasterProcedureEnv&gt; procedureExecutor;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  private ProcedureStore procedureStore;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  private final ClusterConnection connection;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  private final LoadBalancer balancer;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  private final ServerManager serverManager;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  // Set of regions on a 'server'. Populated externally. Used in below faking 'cluster'.<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  private final NavigableMap&lt;ServerName, SortedSet&lt;byte []&gt;&gt; regionsToRegionServers;<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>  private final ProcedureEvent initialized = new ProcedureEvent("master initialized");<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  public static final String DEFAULT_COLUMN_FAMILY_NAME = "cf";<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  public static final ServerName MOCK_MASTER_SERVERNAME =<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      ServerName.valueOf("mockmaster.example.org", 1234, -1L);<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>  public MockMasterServices(Configuration conf,<a name="line.97"></a>
+<span class="sourceLineNo">098</span>      NavigableMap&lt;ServerName, SortedSet&lt;byte []&gt;&gt; regionsToRegionServers)<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  throws IOException {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    super(conf);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    this.regionsToRegionServers = regionsToRegionServers;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    Superusers.initialize(conf);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    this.fileSystemManager = new MasterFileSystem(this);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    this.walManager = new MasterWalManager(this);<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    // Mock an AM.<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    this.assignmentManager = new AssignmentManager(this, new MockRegionStateStore(this)) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      public boolean isTableEnabled(final TableName tableName) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        return true;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>      }<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>      public boolean isTableDisabled(final TableName tableName) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        return false;<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>      @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      protected boolean waitServerReportEvent(ServerName serverName, Procedure proc) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        // Make a report with current state of the server 'serverName' before we call wait..<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        SortedSet&lt;byte []&gt; regions = regionsToRegionServers.get(serverName);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        try {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>          getAssignmentManager().reportOnlineRegions(serverName, 0,<a name="line.120"></a>
+<span class="sourceLineNo">121</span>              regions == null? new HashSet&lt;byte []&gt;(): regions);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        } catch (YouAreDeadException e) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>          throw new RuntimeException(e);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        return super.waitServerReportEvent(serverName, proc);<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>    this.balancer = LoadBalancerFactory.getLoadBalancer(conf);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    this.serverManager = new ServerManager(this);<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>    // Mock up a Client Interface<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    ClientProtos.ClientService.BlockingInterface ri =<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        Mockito.mock(ClientProtos.ClientService.BlockingInterface.class);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    MutateResponse.Builder builder = MutateResponse.newBuilder();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    builder.setProcessed(true);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    try {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      Mockito.when(ri.mutate((RpcController)Mockito.any(), (MutateRequest)Mockito.any())).<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        thenReturn(builder.build());<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    } catch (ServiceException se) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      throw ProtobufUtil.handleRemoteException(se);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    try {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      Mockito.when(ri.multi((RpcController)Mockito.any(), (MultiRequest)Mockito.any())).<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        thenAnswer(new Answer&lt;MultiResponse&gt;() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>          @Override<a name="line.145"></a>
+<span class="sourceLineNo">146</span>          public MultiResponse answer(InvocationOnMock invocation) throws Throwable {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>            return buildMultiResponse( (MultiRequest)invocation.getArguments()[1]);<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>    } catch (ServiceException se) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      throw ProtobufUtil.getRemoteException(se);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    }<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    // Mock n ClusterConnection and an AdminProtocol implementation. Have the<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    // ClusterConnection return the HRI.  Have the HRI return a few mocked up responses<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    // to make our test work.<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    this.connection =<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        HConnectionTestingUtility.getMockedConnectionAndDecorate(getConfiguration(),<a name="line.157"></a>
+<span class="sourceLineNo">158</span>          Mockito.mock(AdminProtos.AdminService.BlockingInterface.class), ri, MOCK_MASTER_SERVERNAME,<a name="line.158"></a>
+<span class="sourceLineNo">159</span>          HRegionInfo.FIRST_META_REGIONINFO);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    // Set hbase.rootdir into test dir.<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    Path rootdir = FSUtils.getRootDir(getConfiguration());<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    FSUtils.setRootDir(getConfiguration(), rootdir);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    Mockito.mock(AdminProtos.AdminService.BlockingInterface.class);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  }<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>  public void start(final int numServes, final RSProcedureDispatcher remoteDispatcher)<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      throws IOException {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    startProcedureExecutor(remoteDispatcher);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    this.assignmentManager.start();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    for (int i = 0; i &lt; numServes; ++i) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>      serverManager.regionServerReport(<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        ServerName.valueOf("localhost", 100 + i, 1), ServerLoad.EMPTY_SERVERLOAD);<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    }<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    this.procedureExecutor.getEnvironment().setEventReady(initialized, true);<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>  @Override<a name="line.177"></a>
+<span class="sourceLineNo">178</span>  public void stop(String why) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    stopProcedureExecutor();<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    this.assignmentManager.stop();<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>  private void startProcedureExecutor(final RSProcedureDispatcher remoteDispatcher)<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      throws IOException {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    final Configuration conf = getConfiguration();<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    final Path logDir = new Path(fileSystemManager.getRootDir(),<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        MasterProcedureConstants.MASTER_PROCEDURE_LOGDIR);<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>    this.procedureEnv = new MasterProcedureEnv(this,<a name="line.189"></a>
-<span class="sourceLineNo">190</span>       remoteDispatcher != null ? remoteDispatcher : new RSProcedureDispatcher(this));<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>    this.procedureExecutor = new ProcedureExecutor(conf, procedureEnv, procedureStore,<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        procedureEnv.getProcedureScheduler());<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>    final int numThreads = conf.getInt(MasterProcedureConstants.MASTER_PROCEDURE_THREADS,<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        Math.max(Runtime.getRuntime().availableProcessors(),<a name="line.196"></a>
-<span class="sourceLineNo">197</span>          MasterProcedureConstants.DEFAULT_MIN_MASTER_PROCEDURE_THREADS));<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    final boolean abortOnCorruption = conf.getBoolean(<a name="line.198"></a>
-<span class="sourceLineNo">199</span>        MasterProcedureConstants.EXECUTOR_ABORT_ON_CORRUPTION,<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        MasterProcedureConstants.DEFAULT_EXECUTOR_ABORT_ON_CORRUPTION);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    this.procedureStore.start(numThreads);<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    this.procedureExecutor.start(numThreads, abortOnCorruption);<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    this.procedureEnv.getRemoteDispatcher().start();<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 void stopProcedureExecutor() {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    if (this.procedureEnv != null) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      this.procedureEnv.getRemoteDispatcher().stop();<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    }<a name="line.209"></a>
+<span class="sourceLineNo">189</span>    //procedureStore = new WALProcedureStore(conf, fileSystemManager.getFileSystem(), logDir,<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    //    new MasterProcedureEnv.WALStoreLeaseRecovery(this));<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    this.procedureStore = new NoopProcedureStore();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    this.procedureStore.registerListener(new MasterProcedureEnv.MasterProcedureStoreListener(this));<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>    this.procedureEnv = new MasterProcedureEnv(this,<a name="line.194"></a>
+<span class="sourceLineNo">195</span>       remoteDispatcher != null ? remoteDispatcher : new RSProcedureDispatcher(this));<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>    this.procedureExecutor = new ProcedureExecutor(conf, procedureEnv, procedureStore,<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        procedureEnv.getProcedureScheduler());<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>    final int numThreads = conf.getInt(MasterProcedureConstants.MASTER_PROCEDURE_THREADS,<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        Math.max(Runtime.getRuntime().availableProcessors(),<a name="line.201"></a>
+<span class="sourceLineNo">202</span>          MasterProcedureConstants.DEFAULT_MIN_MASTER_PROCEDURE_THREADS));<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    final boolean abortOnCorruption = conf.getBoolean(<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        MasterProcedureConstants.EXECUTOR_ABORT_ON_CORRUPTION,<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        MasterProcedureConstants.DEFAULT_EXECUTOR_ABORT_ON_CORRUPTION);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    this.procedureStore.start(numThreads);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    this.procedureExecutor.start(numThreads, abortOnCorruption);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    this.procedureEnv.getRemoteDispatcher().start();<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>    if (this.procedureExecutor != null) {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      this.procedureExecutor.stop();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    }<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>    if (this.procedureStore != null) {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      this.procedureStore.stop(isAborted());<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">211</span>  private void stopProcedureExecutor() {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    if (this.procedureEnv != null) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      this.procedureEnv.getRemoteDispatcher().stop();<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>    if (this.procedureExecutor != null) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      this.procedureExecutor.stop();<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>  @Override<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  public boolean isInitialized() {<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    return true;<a name="line.222"></a>
+<span class="sourceLineNo">220</span>    if (this.procedureStore != null) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      this.procedureStore.stop(isAborted());<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>  @Override<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  public ProcedureEvent getInitializedEvent() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.initialized;<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  public boolean isInitialized() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return true;<a name="line.227"></a>
 <span class="sourceLineNo">228</span>  }<a name="line.228"></a>
 <span class="sourceLineNo">229</span><a name="line.229"></a>
 <span class="sourceLineNo">230</span>  @Override<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  public MasterFileSystem getMasterFileSystem() {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    return fileSystemManager;<a name="line.232"></a>
+<span class="sourceLineNo">231</span>  public ProcedureEvent getInitializedEvent() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    return this.initialized;<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>  @Override<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  public MasterWalManager getMasterWalManager() {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    return walManager;<a name="line.237"></a>
+<span class="sourceLineNo">236</span>  public MasterFileSystem getMasterFileSystem() {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    return fileSystemManager;<a name="line.237"></a>
 <span class="sourceLineNo">238</span>  }<a name="line.238"></a>
 <span class="sourceLineNo">239</span><a name="line.239"></a>
 <span class="sourceLineNo">240</span>  @Override<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  public ProcedureExecutor&lt;MasterProcedureEnv&gt; getMasterProcedureExecutor() {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    return procedureExecutor;<a name="line.242"></a>
+<span class="sourceLineNo">241</span>  public MasterWalManager getMasterWalManager() {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    return walManager;<a name="line.242"></a>
 <span class="sourceLineNo">243</span>  }<a name="line.243"></a>
 <span class="sourceLineNo">244</span><a name="line.244"></a>
 <span class="sourceLineNo">245</span>  @Override<a name="line.245"></a>
-<span class="sourceLineNo">246</span>  public LoadBalancer getLoadBalancer() {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    return balancer;<a name="line.247"></a>
+<span class="sourceLineNo">246</span>  public ProcedureExecutor&lt;MasterProcedureEnv&gt; getMasterProcedureExecutor() {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    return procedureExecutor;<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>  @Override<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  public ServerManager getServerManager() {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    return serverManager;<a name="line.252"></a>
+<span class="sourceLineNo">251</span>  public LoadBalancer getLoadBalancer() {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    return balancer;<a name="line.252"></a>
 <span class="sourceLineNo">253</span>  }<a name="line.253"></a>
 <span class="sourceLineNo">254</span><a name="line.254"></a>
 <span class="sourceLineNo">255</span>  @Override<a name="line.255"></a>
-<span class="sourceLineNo">256</span>  public AssignmentManager getAssignmentManager() {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    return assignmentManager;<a name="line.257"></a>
+<span class="sourceLineNo">256</span>  public ServerManager getServerManager() {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    return serverManager;<a name="line.257"></a>
 <span class="sourceLineNo">258</span>  }<a name="line.258"></a>
 <span class="sourceLineNo">259</span><a name="line.259"></a>
 <span class="sourceLineNo">260</span>  @Override<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  public ClusterConnection getConnection() {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    return this.connection;<a name="line.262"></a>
+<span class="sourceLineNo">261</span>  public AssignmentManager getAssignmentManager() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    return assignmentManager;<a name="line.262"></a>
 <span class="sourceLineNo">263</span>  }<a name="line.263"></a>
 <span class="sourceLineNo">264</span><a name="line.264"></a>
 <span class="sourceLineNo">265</span>  @Override<a name="line.265"></a>
-<span class="sourceLineNo">266</span>  public ServerName getServerName() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    return MOCK_MASTER_SERVERNAME;<a name="line.267"></a>
+<span class="sourceLineNo">266</span>  public ClusterConnection getConnection() {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    return this.connection;<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>  @Override<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  public CoordinatedStateManager getCoordinatedStateManager() {<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    return super.getCoordinatedStateManager();<a name="line.272"></a>
+<span class="sourceLineNo">271</span>  public ServerName getServerName() {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    return MOCK_MASTER_SERVERNAME;<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>  private static class MockRegionStateStore extends RegionStateStore {<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    public MockRegionStateStore(final MasterServices master) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      super(master);<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    }<a name="line.278"></a>
+<span class="sourceLineNo">275</span>  @Override<a name="line.275"></a>
+<span class="sourceLineNo">276</span>  public CoordinatedStateManager getCoordinatedStateManager() {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    return super.getCoordinatedStateManager();<a name="line.277"></a>
+<span class="sourceLineNo">278</span>  }<a name="line.278"></a>
 <span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>    @Override<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    public void start() throws IOException {<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>    @Override<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    public void stop() {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    }<a name="line.286"></a>
-<span class="sourceLineNo">287</span><a name="line.287"></a>
-<span class="sourceLineNo">288</span>    @Override<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    public void updateRegionLocation(HRegionInfo regionInfo, State state, ServerName regionLocation,<a name="line.289"></a>
-<span class="sourceLineNo">290</span>        ServerName lastHost, long openSeqNum, long pid) throws IOException {<a name="line.290"></a>
+<span class="sourceLineNo">280</span>  private static class MockRegionStateStore extends RegionStateStore {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    public MockRegionStateStore(final MasterServices master) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      super(master);<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>    @Override<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    public void start() throws IOException {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    }<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>    @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    public void stop() {<a name="line.290"></a>
 <span class="sourceLineNo">291</span>    }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  }<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>  @Override<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  public TableDescriptors getTableDescriptors() {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    return new TableDescriptors() {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      @Override<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      public HTableDescriptor remove(TableName tablename) throws IOException {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>        // noop<a name="line.299"></a>
-<span class="sourceLineNo">300</span>        return null;<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      }<a name="line.301"></a>
-<span class="sourceLineNo">302</span><a name="line.302"></a>
-<span class="sourceLineNo">303</span>      @Override<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      public Map&lt;String, HTableDescriptor&gt; getAll() throws IOException {<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        // noop<a name="line.305"></a>
-<span class="sourceLineNo">306</span>        return null;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>      }<a name="line.307"></a>
-<span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span>      @Override public Map&lt;String, HTableDescriptor&gt; getAllDescriptors() throws IOException {<a name="line.309"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>    @Override<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    public void updateRegionLocation(HRegionInfo regionInfo, State state, ServerName regionLocation,<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        ServerName lastHost, long openSeqNum, long pid) throws IOException {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    }<a name="line.296"></a>
+<span class="sourceLineNo">297</span>  }<a name="line.297"></a>
+<span class="sourceLineNo">298</span><a name="line.298"></a>
+<span class="sourceLineNo">299</span>  @Override<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  public TableDescriptors getTableDescriptors() {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    return new TableDescriptors() {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      @Override<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      public HTableDescriptor remove(TableName tablename) throws IOException {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        // noop<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        return null;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      }<a name="line.306"></a>
+<span class="sourceLineNo">307</span><a name="line.307"></a>
+<span class="sourceLineNo">308</span>      @Override<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      public Map&lt;String, HTableDescriptor&gt; getAll() throws IOException {<a name="line.309"></a>
 <span class="sourceLineNo">310</span>        // noop<a name="line.310"></a>
 <span class="sourceLineNo">311</span>        return null;<a name="line.311"></a>
 <span class="sourceLineNo">312</span>      }<a name="line.312"></a>
 <span class="sourceLineNo">313</span><a name="line.313"></a>
-<span class="sourceLineNo">314</span>      @Override<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      public HTableDescriptor get(TableName tablename) throws IOException {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        HTableDescriptor htd = new HTableDescriptor(tablename);<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        htd.addFamily(new HColumnDescriptor(DEFAULT_COLUMN_FAMILY_NAME));<a name="line.317"></a>
-<span class="sourceLineNo">318</span>        return htd;<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>      @Override<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      public Map&lt;String, HTableDescriptor&gt; getByNamespace(String name) throws IOException {<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        return null;<a name="line.323"></a>
+<span class="sourceLineNo">314</span>      @Override public Map&lt;String, HTableDescriptor&gt; getAllDescriptors() throws IOException {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        // noop<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        return null;<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      }<a name="line.317"></a>
+<span class="sourceLineNo">318</span><a name="line.318"></a>
+<span class="sourceLineNo">319</span>      @Override<a name="line.319"></a>
+<span class="sourceLineNo">320</span>      public HTableDescriptor get(TableName tablename) throws IOException {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        HTableDescriptor htd = new HTableDescriptor(tablename);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>        htd.addFamily(new HColumnDescriptor(DEFAULT_COLUMN_FAMILY_NAME));<a name="line.322"></a>
+<span class="sourceLineNo">323</span>        return htd;<a name="line.323"></a>
 <span class="sourceLineNo">324</span>      }<a name="line.324"></a>
 <span class="sourceLineNo">325</span><a name="line.325"></a>
 <span class="sourceLineNo">326</span>      @Override<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      public void add(HTableDescriptor htd) throws IOException {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>        // noop<a name="line.328"></a>
+<span class="sourceLineNo">327</span>      public Map&lt;String, HTableDescriptor&gt; getByNamespace(String name) throws IOException {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        return null;<a name="line.328"></a>
 <span class="sourceLineNo">329</span>      }<a name="line.329"></a>
 <span class="sourceLineNo">330</span><a name="line.330"></a>
 <span class="sourceLineNo">331</span>      @Override<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      public void setCacheOn() throws IOException {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      }<a name="line.333"></a>
-<span class="sourceLineNo">334</span><a name="line.334"></a>
-<span class="sourceLineNo">335</span>      @Override<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      public void setCacheOff() throws IOException {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      }<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    };<a name="line.338"></a>
-<span class="sourceLineNo">339</span>  }<a name="line.339"></a>
-<span class="sourceLineNo">340</span><a name="line.340"></a>
-<span class="sourceLineNo">341</span>  private static MultiResponse buildMultiResponse(MultiRequest req) {<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    MultiResponse.Builder builder = MultiResponse.newBuilder();<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    RegionActionResult.Builder regionActionResultBuilder =<a name="line.343"></a>
-<span class="sourceLineNo">344</span>        RegionActionResult.newBuilder();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    ResultOrException.Builder roeBuilder = ResultOrException.newBuilder();<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    for (RegionAction regionAction: req.getRegionActionList()) {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      regionActionResultBuilder.clear();<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      for (ClientProtos.Action action: regionAction.getActionList()) {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>        roeBuilder.clear();<a name="line.349"></a>
-<span class="sourceLineNo">350</span>        roeBuilder.setResult(ClientProtos.Result.getDefaultInstance());<a name="line.350"></a>
-<span class="sourceLineNo">351</span>        roeBuilder.setIndex(action.getIndex());<a name="line.351"></a>
-<span class="sourceLineNo">352</span>        regionActionResultBuilder.addResultOrException(roeBuilder.build());<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      }<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      builder.addRegionActionResult(regionActionResultBuilder.build());<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    }<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    return builder.build();<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  }<a name="line.357"></a>
-<span class="sourceLineNo">358</span>}<a name="line.358"></a>
+<span class="sourceLineNo">332</span>      public void add(HTableDescriptor htd) throws IOException {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        // noop<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>      @Override<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      public void setCacheOn() throws IOException {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      }<a name="line.338"></a>
+<span class="sourceLineNo">339</span><a name="line.339"></a>
+<span class="sourceLineNo">340</span>      @Override<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      public void setCacheOff() throws IOException {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      }<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    };<a name="line.343"></a>
+<span class="sourceLineNo">344</span>  }<a name="line.344"></a>
+<span class="sourceLineNo">345</span><a name="line.345"></a>
+<span class="sourceLineNo">346</span>  private static MultiResponse buildMultiResponse(MultiRequest req) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    MultiResponse.Builder builder = MultiResponse.newBuilder();<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    RegionActionResult.Builder regionActionResultBuilder =<a name="line.348"></a>
+<span class="sourceLineNo">349</span>        RegionActionResult.newBuilder();<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    ResultOrException.Builder roeBuilder = ResultOrException.newBuilder();<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    for (RegionAction regionAction: req.getRegionActionList()) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      regionActionResultBuilder.clear();<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      for (ClientProtos.Action action: regionAction.getActionList()) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        roeBuilder.clear();<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        roeBuilder.setResult(ClientProtos.Result.getDefaultInstance());<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        roeBuilder.setIndex(action.getIndex());<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        regionActionResultBuilder.addResultOrException(roeBuilder.build());<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      builder.addRegionActionResult(regionActionResultBuilder.build());<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    return builder.build();<a name="line.361"></a>
+<span class="sourceLineNo">362</span>  }<a name="line.362"></a>
+<span class="sourceLineNo">363</span>}<a name="line.363"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html
new file mode 100644
index 0000000..8f1e7ea
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.html
@@ -0,0 +1,264 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * or more contributor license agreements.  See the NOTICE file<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * distributed with this work for additional information<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * to you under the Apache License, Version 2.0 (the<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * "License"); you may not use this file except in compliance<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * with the License.  You may obtain a copy of the License at<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.11"></a>
+<span class="sourceLineNo">012</span> *<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * Unless required by applicable law or agreed to in writing, software<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * See the License for the specific language governing permissions and<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * limitations under the License.<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.master.assignment;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.commons.logging.Log;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.commons.logging.LogFactory;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.conf.Configuration;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.MiniHBaseCluster;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.ServerName;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.TableName;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.YouAreDeadException;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.master.HMaster;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.UnsafeByteOperations;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.junit.After;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.junit.AfterClass;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.junit.Before;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.junit.BeforeClass;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.junit.Rule;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.junit.Test;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.junit.experimental.categories.Category;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.junit.rules.ExpectedException;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.junit.rules.TestName;<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>import java.io.IOException;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import java.util.List;<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>import static org.hamcrest.core.Is.isA;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import static org.junit.Assert.assertEquals;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import static org.junit.Assert.assertNotNull;<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>/**<a name="line.62"></a>
+<span class="sourceLineNo">063</span> * Tests to verify master/ assignment manager functionality against rogue RS<a name="line.63"></a>
+<span class="sourceLineNo">064</span> */<a name="line.64"></a>
+<span class="sourceLineNo">065</span>@Category({MasterTests.class, MediumTests.class})<a name="line.65"></a>
+<span class="sourceLineNo">066</span>public class TestRogueRSAssignment {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>  private static final Log LOG = LogFactory.getLog(TestRogueRSAssignment.class);<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>  @Rule<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  public final TestName name = new TestName();<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  @Rule<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  public ExpectedException exception = ExpectedException.none();<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  private static final int initialRegionCount = 3;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  private final static byte[] FAMILY = Bytes.toBytes("FAMILY");<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>  private static final HBaseTestingUtility UTIL = new HBaseTestingUtility();<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  private static final Configuration conf = UTIL.getConfiguration();<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private static Admin admin;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private static MiniHBaseCluster cluster;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  private static HMaster master;<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>  private static void setupConf(Configuration conf) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    // Reduce the maximum attempts to speed up the test<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    conf.setInt("hbase.assignment.maximum.attempts", 3);<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    conf.setInt("hbase.master.maximum.ping.server.attempts", 3);<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    conf.setInt("hbase.master.ping.server.retry.sleep.interval", 1);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    conf.setInt(MasterProcedureConstants.MASTER_PROCEDURE_THREADS, 1);<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>  @BeforeClass<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  public static void setupCluster() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    setupConf(conf);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    UTIL.startMiniCluster(2);<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>    cluster = UTIL.getHBaseCluster();<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    assertNotNull(cluster);<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>    admin = UTIL.getAdmin();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    assertNotNull(admin);<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>    master = cluster.getMaster();<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    assertNotNull(master);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>  }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>  @AfterClass<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  public static void cleanupTest() throws Exception {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    try {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>      UTIL.shutdownMiniCluster();<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      cluster = null;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      admin = null;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    } catch (Exception e) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      LOG.warn("failure shutting down cluster", e);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    }<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  }<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>  @Before<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  public void setup() throws IOException {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    // Turn off balancer<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    admin.setBalancerRunning(false, true);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>  }<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>  @After<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  public void tearDown() throws Exception {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    for (TableDescriptor td: UTIL.getAdmin().listTableDescriptors()) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      LOG.info("Tear down, remove table=" + td.getTableName());<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      UTIL.deleteTable(td.getTableName());<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    // Turn on balancer<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    admin.setBalancerRunning(true, false);<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>  @Test(timeout = 120000)<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  public void testReportRSWithWrongRegion() throws Exception {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    final TableName tableName = TableName.valueOf(this.name.getMethodName());<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>    List&lt;HRegionInfo&gt; tableRegions = createTable(tableName);<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>    final ServerName sn = ServerName.parseVersionedServerName(<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        ServerName.valueOf("1.example.org", 1, System.currentTimeMillis()).getVersionedBytes());<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>    // make fake request with a region assigned to different RS<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    RegionServerStatusProtos.RegionServerReportRequest.Builder request =<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        makeRSReportRequestWithRegions(sn, tableRegions.get(1));<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>    // sending fake request to master<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    // TODO: replace YouAreDeadException with appropriate exception as and when necessary<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    exception.expect(ServiceException.class);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    exception.expectCause(isA(YouAreDeadException.class));<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    RegionServerStatusProtos.RegionServerReportResponse response =<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        master.getMasterRpcServices().regionServerReport(null, request.build());<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>  private RegionServerStatusProtos.RegionServerReportRequest.Builder<a name="line.154"></a>
+<span class="sourceLineNo">155</span>      makeRSReportRequestWithRegions(final ServerName sn, HRegionInfo... regions) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    ClusterStatusProtos.ServerLoad.Builder sl = ClusterStatusProtos.ServerLoad.newBuilder();<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    for (int i = 0; i &lt; regions.length; i++) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      HBaseProtos.RegionSpecifier.Builder rs = HBaseProtos.RegionSpecifier.newBuilder();<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      rs.setType(HBaseProtos.RegionSpecifier.RegionSpecifierType.REGION_NAME);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      rs.setValue(UnsafeByteOperations.unsafeWrap(regions[i].getRegionName()));<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>      ClusterStatusProtos.RegionLoad.Builder rl = ClusterStatusProtos.RegionLoad.newBuilder()<a name="line.162"></a>
+<span class="sourceLineNo">163</span>          .setRegionSpecifier(rs.build());<a name="line.163"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span>      sl.addRegionLoads(i, rl.build());<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>    return RegionServerStatusProtos.RegionServerReportRequest.newBuilder()<a name="line.168"></a>
+<span class="sourceLineNo">169</span>              .setServer(ProtobufUtil.toServerName(sn))<a name="line.169"></a>
+<span class="sourceLineNo">170</span>              .setLoad(sl);<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  }<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  private List&lt;HRegionInfo&gt; createTable(final TableName tableName) throws Exception {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    TableDescriptorBuilder tdBuilder = TableDescriptorBuilder.newBuilder(tableName);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    tdBuilder.addColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(FAMILY).build());<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>    byte[][] rows = new byte[initialRegionCount - 1][];<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    for (int i = 0; i &lt; rows.length; ++i) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      rows[i] = Bytes.toBytes(String.format("%d", i));<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    admin.createTable(tdBuilder.build(), rows);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    return assertRegionCount(tableName, initialRegionCount);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>  }<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>  private List&lt;HRegionInfo&gt; assertRegionCount(final TableName tableName, final int nregions)<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      throws Exception {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    UTIL.waitUntilNoRegionsInTransition();<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    List&lt;HRegionInfo&gt; tableRegions = admin.getTableRegions(tableName);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    assertEquals(nregions, tableRegions.size());<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    return tableRegions;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>


[12/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html b/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html
index 745d53a..613d163 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.html
@@ -241,190 +241,192 @@
 <span class="sourceLineNo">233</span>      if (trailerSize &lt; 0) {<a name="line.233"></a>
 <span class="sourceLineNo">234</span>        if (currentPosition &lt; stat.getLen()) {<a name="line.234"></a>
 <span class="sourceLineNo">235</span>          final long skippedBytes = stat.getLen() - currentPosition;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>          LOG.info("Reached the end of WAL file '" + currentPath<a name="line.236"></a>
-<span class="sourceLineNo">237</span>              + "'. It was not closed cleanly, so we did not parse " + skippedBytes<a name="line.237"></a>
-<span class="sourceLineNo">238</span>              + " bytes of data.");<a name="line.238"></a>
-<span class="sourceLineNo">239</span>          metrics.incrUncleanlyClosedWALs();<a name="line.239"></a>
-<span class="sourceLineNo">240</span>          metrics.incrBytesSkippedInUncleanlyClosedWALs(skippedBytes);<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        }<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      } else if (currentPosition + trailerSize &lt; stat.getLen()) {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        LOG.warn("Processing end of WAL file '" + currentPath + "'. At position " + currentPosition<a name="line.243"></a>
-<span class="sourceLineNo">244</span>            + ", which is too far away from reported file length " + stat.getLen()<a name="line.244"></a>
-<span class="sourceLineNo">245</span>            + ". Restarting WAL reading (see HBASE-15983 for details). " + getCurrentPathStat());<a name="line.245"></a>
-<span class="sourceLineNo">246</span>        setPosition(0);<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        resetReader();<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        metrics.incrRestartedWALReading();<a name="line.248"></a>
-<span class="sourceLineNo">249</span>        metrics.incrRepeatedFileBytes(currentPosition);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>        return false;<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>    if (LOG.isTraceEnabled()) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      LOG.trace("Reached the end of log " + this.currentPath + ", and the length of the file is "<a name="line.254"></a>
-<span class="sourceLineNo">255</span>          + (stat == null ? "N/A" : stat.getLen()));<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    }<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    metrics.incrCompletedWAL();<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    return true;<a name="line.258"></a>
-<span class="sourceLineNo">259</span>  }<a name="line.259"></a>
-<span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>  private void dequeueCurrentLog() throws IOException {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    if (LOG.isDebugEnabled()) {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      LOG.debug("Reached the end of log " + currentPath);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    closeReader();<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    logQueue.remove();<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    setPosition(0);<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    metrics.decrSizeOfLogQueue();<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>  private void readNextEntryAndSetPosition() throws IOException {<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    Entry readEntry = reader.next();<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    long readerPos = reader.getPosition();<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    if (readEntry != null) {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      metrics.incrLogEditsRead();<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      metrics.incrLogReadInBytes(readerPos - currentPosition);<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    }<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    currentEntry = readEntry; // could be null<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    setPosition(readerPos);<a name="line.279"></a>
-<span class="sourceLineNo">280</span>  }<a name="line.280"></a>
-<span class="sourceLineNo">281</span><a name="line.281"></a>
-<span class="sourceLineNo">282</span>  private void closeReader() throws IOException {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    if (reader != null) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      reader.close();<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      reader = null;<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    }<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  }<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span>  // if we don't have a reader, open a reader on the next log<a name="line.289"></a>
-<span class="sourceLineNo">290</span>  private boolean checkReader() throws IOException {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    if (reader == null) {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      return openNextLog();<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    }<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return true;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  // open a reader on the next log in queue<a name="line.297"></a>
-<span class="sourceLineNo">298</span>  private boolean openNextLog() throws IOException {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    Path nextPath = logQueue.peek();<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    if (nextPath != null) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      openReader(nextPath);<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      if (reader != null) return true;<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    }<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    return false;<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>  private Path getArchivedLog(Path path) throws IOException {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    Path rootDir = FSUtils.getRootDir(conf);<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    Path oldLogDir = new Path(rootDir, HConstants.HREGION_OLDLOGDIR_NAME);<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    Path archivedLogLocation = new Path(oldLogDir, path.getName());<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    if (fs.exists(archivedLogLocation)) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      LOG.info("Log " + path + " was moved to " + archivedLogLocation);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      return archivedLogLocation;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    } else {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      LOG.error("Couldn't locate log: " + path);<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      return path;<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    }<a name="line.317"></a>
-<span class="sourceLineNo">318</span>  }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>  private void handleFileNotFound(Path path, FileNotFoundException fnfe) throws IOException {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    // If the log was archived, continue reading from there<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    Path archivedLog = getArchivedLog(path);<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    if (!path.equals(archivedLog)) {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      openReader(archivedLog);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    } else {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      throw fnfe;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    }<a name="line.327"></a>
-<span class="sourceLineNo">328</span>  }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  private void openReader(Path path) throws IOException {<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    try {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      // Detect if this is a new file, if so get a new reader else<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      // reset the current reader so that we see the new data<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      if (reader == null || !getCurrentPath().equals(path)) {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>        closeReader();<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        reader = WALFactory.createReader(fs, path, conf);<a name="line.335"></a>
-<span class="sourceLineNo">336</span>        seek();<a name="line.336"></a>
-<span class="sourceLineNo">337</span>        setCurrentPath(path);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>      } else {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>        resetReader();<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      }<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    } catch (FileNotFoundException fnfe) {<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      handleFileNotFound(path, fnfe);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    }  catch (RemoteException re) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      IOException ioe = re.unwrapRemoteException(FileNotFoundException.class);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      if (!(ioe instanceof FileNotFoundException)) throw ioe;<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      handleFileNotFound(path, (FileNotFoundException)ioe);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    } catch (LeaseNotRecoveredException lnre) {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      // HBASE-15019 the WAL was not closed due to some hiccup.<a name="line.348"></a>
-<span class="sourceLineNo">349</span>      LOG.warn("Try to recover the WAL lease " + currentPath, lnre);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      recoverLease(conf, currentPath);<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      reader = null;<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    } catch (NullPointerException npe) {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      // Workaround for race condition in HDFS-4380<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      // which throws a NPE if we open a file before any data node has the most recent block<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      // Just sleep and retry. Will require re-reading compressed WALs for compressionContext.<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      LOG.warn("Got NPE opening reader, will retry.");<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      reader = null;<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>  // For HBASE-15019<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  private void recoverLease(final Configuration conf, final Path path) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    try {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      final FileSystem dfs = FSUtils.getCurrentFileSystem(conf);<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      FSUtils fsUtils = FSUtils.getInstance(dfs, conf);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      fsUtils.recoverFileLease(dfs, path, conf, new CancelableProgressable() {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        @Override<a name="line.367"></a>
-<span class="sourceLineNo">368</span>        public boolean progress() {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>          LOG.debug("recover WAL lease: " + path);<a name="line.369"></a>
-<span class="sourceLineNo">370</span>          return true;<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>    } catch (IOException e) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      LOG.warn("unable to recover lease for WAL: " + path, e);<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
-<span class="sourceLineNo">376</span>  }<a name="line.376"></a>
-<span class="sourceLineNo">377</span><a name="line.377"></a>
-<span class="sourceLineNo">378</span>  private void resetReader() throws IOException {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    try {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      reader.reset();<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      seek();<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    } catch (FileNotFoundException fnfe) {<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      // If the log was archived, continue reading from there<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      Path archivedLog = getArchivedLog(currentPath);<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      if (!currentPath.equals(archivedLog)) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>        openReader(archivedLog);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      } else {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>        throw fnfe;<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      }<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    } catch (NullPointerException npe) {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      throw new IOException("NPE resetting reader, likely HDFS-4380", npe);<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    }<a name="line.392"></a>
-<span class="sourceLineNo">393</span>  }<a name="line.393"></a>
-<span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span>  private void seek() throws IOException {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    if (currentPosition != 0) {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      reader.seek(currentPosition);<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>  private long currentTrailerSize() {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    long size = -1L;<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    if (reader instanceof ProtobufLogReader) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      final ProtobufLogReader pblr = (ProtobufLogReader) reader;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      size = pblr.trailerSize();<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    }<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    return size;<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>  @InterfaceAudience.Private<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  public static class WALEntryStreamRuntimeException extends RuntimeException {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    private static final long serialVersionUID = -6298201811259982568L;<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span>    public WALEntryStreamRuntimeException(Exception e) {<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      super(e);<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    }<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>}<a name="line.419"></a>
+<span class="sourceLineNo">236</span>          if (LOG.isDebugEnabled()) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>            LOG.debug("Reached the end of WAL file '" + currentPath<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                + "'. It was not closed cleanly, so we did not parse " + skippedBytes<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                + " bytes of data. This is normally ok.");<a name="line.239"></a>
+<span class="sourceLineNo">240</span>          }<a name="line.240"></a>
+<span class="sourceLineNo">241</span>          metrics.incrUncleanlyClosedWALs();<a name="line.241"></a>
+<span class="sourceLineNo">242</span>          metrics.incrBytesSkippedInUncleanlyClosedWALs(skippedBytes);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        }<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      } else if (currentPosition + trailerSize &lt; stat.getLen()) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        LOG.warn("Processing end of WAL file '" + currentPath + "'. At position " + currentPosition<a name="line.245"></a>
+<span class="sourceLineNo">246</span>            + ", which is too far away from reported file length " + stat.getLen()<a name="line.246"></a>
+<span class="sourceLineNo">247</span>            + ". Restarting WAL reading (see HBASE-15983 for details). " + getCurrentPathStat());<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        setPosition(0);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        resetReader();<a name="line.249"></a>
+<span class="sourceLineNo">250</span>        metrics.incrRestartedWALReading();<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        metrics.incrRepeatedFileBytes(currentPosition);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        return false;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    }<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    if (LOG.isTraceEnabled()) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      LOG.trace("Reached the end of log " + this.currentPath + ", and the length of the file is "<a name="line.256"></a>
+<span class="sourceLineNo">257</span>          + (stat == null ? "N/A" : stat.getLen()));<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    }<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    metrics.incrCompletedWAL();<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    return true;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>  }<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span>  private void dequeueCurrentLog() throws IOException {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    if (LOG.isDebugEnabled()) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>      LOG.debug("Reached the end of log " + currentPath);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    closeReader();<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    logQueue.remove();<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    setPosition(0);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    metrics.decrSizeOfLogQueue();<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>  private void readNextEntryAndSetPosition() throws IOException {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    Entry readEntry = reader.next();<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    long readerPos = reader.getPosition();<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    if (readEntry != null) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      metrics.incrLogEditsRead();<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      metrics.incrLogReadInBytes(readerPos - currentPosition);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    }<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    currentEntry = readEntry; // could be null<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    setPosition(readerPos);<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>  private void closeReader() throws IOException {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    if (reader != null) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      reader.close();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      reader = null;<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    }<a name="line.288"></a>
+<span class="sourceLineNo">289</span>  }<a name="line.289"></a>
+<span class="sourceLineNo">290</span><a name="line.290"></a>
+<span class="sourceLineNo">291</span>  // if we don't have a reader, open a reader on the next log<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  private boolean checkReader() throws IOException {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    if (reader == null) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      return openNextLog();<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    }<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    return true;<a name="line.296"></a>
+<span class="sourceLineNo">297</span>  }<a name="line.297"></a>
+<span class="sourceLineNo">298</span><a name="line.298"></a>
+<span class="sourceLineNo">299</span>  // open a reader on the next log in queue<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  private boolean openNextLog() throws IOException {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    Path nextPath = logQueue.peek();<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    if (nextPath != null) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      openReader(nextPath);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      if (reader != null) return true;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    return false;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>  }<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>  private Path getArchivedLog(Path path) throws IOException {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    Path rootDir = FSUtils.getRootDir(conf);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    Path oldLogDir = new Path(rootDir, HConstants.HREGION_OLDLOGDIR_NAME);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    Path archivedLogLocation = new Path(oldLogDir, path.getName());<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    if (fs.exists(archivedLogLocation)) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      LOG.info("Log " + path + " was moved to " + archivedLogLocation);<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      return archivedLogLocation;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    } else {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      LOG.error("Couldn't locate log: " + path);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      return path;<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
+<span class="sourceLineNo">320</span>  }<a name="line.320"></a>
+<span class="sourceLineNo">321</span><a name="line.321"></a>
+<span class="sourceLineNo">322</span>  private void handleFileNotFound(Path path, FileNotFoundException fnfe) throws IOException {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    // If the log was archived, continue reading from there<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    Path archivedLog = getArchivedLog(path);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    if (!path.equals(archivedLog)) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      openReader(archivedLog);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    } else {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      throw fnfe;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    }<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>  private void openReader(Path path) throws IOException {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    try {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      // Detect if this is a new file, if so get a new reader else<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      // reset the current reader so that we see the new data<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      if (reader == null || !getCurrentPath().equals(path)) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        closeReader();<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        reader = WALFactory.createReader(fs, path, conf);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        seek();<a name="line.338"></a>
+<span class="sourceLineNo">339</span>        setCurrentPath(path);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      } else {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        resetReader();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      }<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    } catch (FileNotFoundException fnfe) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      handleFileNotFound(path, fnfe);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    }  catch (RemoteException re) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      IOException ioe = re.unwrapRemoteException(FileNotFoundException.class);<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      if (!(ioe instanceof FileNotFoundException)) throw ioe;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      handleFileNotFound(path, (FileNotFoundException)ioe);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    } catch (LeaseNotRecoveredException lnre) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>      // HBASE-15019 the WAL was not closed due to some hiccup.<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      LOG.warn("Try to recover the WAL lease " + currentPath, lnre);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      recoverLease(conf, currentPath);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      reader = null;<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    } catch (NullPointerException npe) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      // Workaround for race condition in HDFS-4380<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      // which throws a NPE if we open a file before any data node has the most recent block<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      // Just sleep and retry. Will require re-reading compressed WALs for compressionContext.<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      LOG.warn("Got NPE opening reader, will retry.");<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      reader = null;<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>  // For HBASE-15019<a name="line.363"></a>
+<span class="sourceLineNo">364</span>  private void recoverLease(final Configuration conf, final Path path) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    try {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      final FileSystem dfs = FSUtils.getCurrentFileSystem(conf);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      FSUtils fsUtils = FSUtils.getInstance(dfs, conf);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      fsUtils.recoverFileLease(dfs, path, conf, new CancelableProgressable() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        @Override<a name="line.369"></a>
+<span class="sourceLineNo">370</span>        public boolean progress() {<a name="line.370"></a>
+<span class="sourceLineNo">371</span>          LOG.debug("recover WAL lease: " + path);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>          return true;<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>    } catch (IOException e) {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      LOG.warn("unable to recover lease for WAL: " + path, e);<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>  private void resetReader() throws IOException {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    try {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>      reader.reset();<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      seek();<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    } catch (FileNotFoundException fnfe) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      // If the log was archived, continue reading from there<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      Path archivedLog = getArchivedLog(currentPath);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      if (!currentPath.equals(archivedLog)) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        openReader(archivedLog);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      } else {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        throw fnfe;<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      }<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    } catch (NullPointerException npe) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      throw new IOException("NPE resetting reader, likely HDFS-4380", npe);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    }<a name="line.394"></a>
+<span class="sourceLineNo">395</span>  }<a name="line.395"></a>
+<span class="sourceLineNo">396</span><a name="line.396"></a>
+<span class="sourceLineNo">397</span>  private void seek() throws IOException {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    if (currentPosition != 0) {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>      reader.seek(currentPosition);<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    }<a name="line.400"></a>
+<span class="sourceLineNo">401</span>  }<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>  private long currentTrailerSize() {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    long size = -1L;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    if (reader instanceof ProtobufLogReader) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      final ProtobufLogReader pblr = (ProtobufLogReader) reader;<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      size = pblr.trailerSize();<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    }<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    return size;<a name="line.409"></a>
+<span class="sourceLineNo">410</span>  }<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>  @InterfaceAudience.Private<a name="line.412"></a>
+<span class="sourceLineNo">413</span>  public static class WALEntryStreamRuntimeException extends RuntimeException {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    private static final long serialVersionUID = -6298201811259982568L;<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>    public WALEntryStreamRuntimeException(Exception e) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>      super(e);<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    }<a name="line.418"></a>
+<span class="sourceLineNo">419</span>  }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>}<a name="line.421"></a>
 
 
 


[13/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
index a7697c0..61c9b54 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
@@ -650,7 +650,7 @@
 <span class="sourceLineNo">642</span>    if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.642"></a>
 <span class="sourceLineNo">643</span>      // Open connection to zookeeper and set primary watcher<a name="line.643"></a>
 <span class="sourceLineNo">644</span>      zooKeeper = new ZooKeeperWatcher(conf, getProcessName() + ":" +<a name="line.644"></a>
-<span class="sourceLineNo">645</span>        rpcServices.isa.getPort(), this, canCreateBaseZNode(), true);<a name="line.645"></a>
+<span class="sourceLineNo">645</span>        rpcServices.isa.getPort(), this, canCreateBaseZNode());<a name="line.645"></a>
 <span class="sourceLineNo">646</span><a name="line.646"></a>
 <span class="sourceLineNo">647</span>      this.csm = (BaseCoordinatedStateManager) csm;<a name="line.647"></a>
 <span class="sourceLineNo">648</span>      this.csm.initialize(this);<a name="line.648"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
index a7697c0..61c9b54 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
@@ -650,7 +650,7 @@
 <span class="sourceLineNo">642</span>    if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.642"></a>
 <span class="sourceLineNo">643</span>      // Open connection to zookeeper and set primary watcher<a name="line.643"></a>
 <span class="sourceLineNo">644</span>      zooKeeper = new ZooKeeperWatcher(conf, getProcessName() + ":" +<a name="line.644"></a>
-<span class="sourceLineNo">645</span>        rpcServices.isa.getPort(), this, canCreateBaseZNode(), true);<a name="line.645"></a>
+<span class="sourceLineNo">645</span>        rpcServices.isa.getPort(), this, canCreateBaseZNode());<a name="line.645"></a>
 <span class="sourceLineNo">646</span><a name="line.646"></a>
 <span class="sourceLineNo">647</span>      this.csm = (BaseCoordinatedStateManager) csm;<a name="line.647"></a>
 <span class="sourceLineNo">648</span>      this.csm.initialize(this);<a name="line.648"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
index a7697c0..61c9b54 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
@@ -650,7 +650,7 @@
 <span class="sourceLineNo">642</span>    if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.642"></a>
 <span class="sourceLineNo">643</span>      // Open connection to zookeeper and set primary watcher<a name="line.643"></a>
 <span class="sourceLineNo">644</span>      zooKeeper = new ZooKeeperWatcher(conf, getProcessName() + ":" +<a name="line.644"></a>
-<span class="sourceLineNo">645</span>        rpcServices.isa.getPort(), this, canCreateBaseZNode(), true);<a name="line.645"></a>
+<span class="sourceLineNo">645</span>        rpcServices.isa.getPort(), this, canCreateBaseZNode());<a name="line.645"></a>
 <span class="sourceLineNo">646</span><a name="line.646"></a>
 <span class="sourceLineNo">647</span>      this.csm = (BaseCoordinatedStateManager) csm;<a name="line.647"></a>
 <span class="sourceLineNo">648</span>      this.csm.initialize(this);<a name="line.648"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html
index a7697c0..61c9b54 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html
@@ -650,7 +650,7 @@
 <span class="sourceLineNo">642</span>    if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.642"></a>
 <span class="sourceLineNo">643</span>      // Open connection to zookeeper and set primary watcher<a name="line.643"></a>
 <span class="sourceLineNo">644</span>      zooKeeper = new ZooKeeperWatcher(conf, getProcessName() + ":" +<a name="line.644"></a>
-<span class="sourceLineNo">645</span>        rpcServices.isa.getPort(), this, canCreateBaseZNode(), true);<a name="line.645"></a>
+<span class="sourceLineNo">645</span>        rpcServices.isa.getPort(), this, canCreateBaseZNode());<a name="line.645"></a>
 <span class="sourceLineNo">646</span><a name="line.646"></a>
 <span class="sourceLineNo">647</span>      this.csm = (BaseCoordinatedStateManager) csm;<a name="line.647"></a>
 <span class="sourceLineNo">648</span>      this.csm.initialize(this);<a name="line.648"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html
index a7697c0..61c9b54 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html
@@ -650,7 +650,7 @@
 <span class="sourceLineNo">642</span>    if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.642"></a>
 <span class="sourceLineNo">643</span>      // Open connection to zookeeper and set primary watcher<a name="line.643"></a>
 <span class="sourceLineNo">644</span>      zooKeeper = new ZooKeeperWatcher(conf, getProcessName() + ":" +<a name="line.644"></a>
-<span class="sourceLineNo">645</span>        rpcServices.isa.getPort(), this, canCreateBaseZNode(), true);<a name="line.645"></a>
+<span class="sourceLineNo">645</span>        rpcServices.isa.getPort(), this, canCreateBaseZNode());<a name="line.645"></a>
 <span class="sourceLineNo">646</span><a name="line.646"></a>
 <span class="sourceLineNo">647</span>      this.csm = (BaseCoordinatedStateManager) csm;<a name="line.647"></a>
 <span class="sourceLineNo">648</span>      this.csm.initialize(this);<a name="line.648"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html
index d94f6c2..b75513b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html
@@ -406,177 +406,175 @@
 <span class="sourceLineNo">398</span>            rsWrap.getSmallCompactionQueueSize())<a name="line.398"></a>
 <span class="sourceLineNo">399</span>          .addGauge(Interns.info(LARGE_COMPACTION_QUEUE_LENGTH, LARGE_COMPACTION_QUEUE_LENGTH_DESC),<a name="line.399"></a>
 <span class="sourceLineNo">400</span>            rsWrap.getLargeCompactionQueueSize())<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          .addGauge(Interns.info(COMPACTION_QUEUE_LENGTH, COMPACTION_QUEUE_LENGTH_DESC),<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            rsWrap.getCompactionQueueSize())<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          .addGauge(Interns.info(FLUSH_QUEUE_LENGTH, FLUSH_QUEUE_LENGTH_DESC),<a name="line.403"></a>
-<span class="sourceLineNo">404</span>              rsWrap.getFlushQueueSize())<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>          .addGauge(Interns.info(BLOCK_CACHE_FREE_SIZE, BLOCK_CACHE_FREE_DESC),<a name="line.406"></a>
-<span class="sourceLineNo">407</span>              rsWrap.getBlockCacheFreeSize())<a name="line.407"></a>
-<span class="sourceLineNo">408</span>          .addGauge(Interns.info(BLOCK_CACHE_COUNT, BLOCK_CACHE_COUNT_DESC),<a name="line.408"></a>
-<span class="sourceLineNo">409</span>              rsWrap.getBlockCacheCount())<a name="line.409"></a>
-<span class="sourceLineNo">410</span>          .addGauge(Interns.info(BLOCK_CACHE_SIZE, BLOCK_CACHE_SIZE_DESC),<a name="line.410"></a>
-<span class="sourceLineNo">411</span>              rsWrap.getBlockCacheSize())<a name="line.411"></a>
-<span class="sourceLineNo">412</span>          .addCounter(Interns.info(BLOCK_CACHE_HIT_COUNT, BLOCK_CACHE_HIT_COUNT_DESC),<a name="line.412"></a>
-<span class="sourceLineNo">413</span>              rsWrap.getBlockCacheHitCount())<a name="line.413"></a>
-<span class="sourceLineNo">414</span>          .addCounter(Interns.info(BLOCK_CACHE_PRIMARY_HIT_COUNT,<a name="line.414"></a>
-<span class="sourceLineNo">415</span>            BLOCK_CACHE_PRIMARY_HIT_COUNT_DESC), rsWrap.getBlockCachePrimaryHitCount())<a name="line.415"></a>
-<span class="sourceLineNo">416</span>          .addCounter(Interns.info(BLOCK_CACHE_MISS_COUNT, BLOCK_COUNT_MISS_COUNT_DESC),<a name="line.416"></a>
-<span class="sourceLineNo">417</span>              rsWrap.getBlockCacheMissCount())<a name="line.417"></a>
-<span class="sourceLineNo">418</span>          .addCounter(Interns.info(BLOCK_CACHE_PRIMARY_MISS_COUNT,<a name="line.418"></a>
-<span class="sourceLineNo">419</span>            BLOCK_COUNT_PRIMARY_MISS_COUNT_DESC), rsWrap.getBlockCachePrimaryMissCount())<a name="line.419"></a>
-<span class="sourceLineNo">420</span>          .addCounter(Interns.info(BLOCK_CACHE_EVICTION_COUNT, BLOCK_CACHE_EVICTION_COUNT_DESC),<a name="line.420"></a>
-<span class="sourceLineNo">421</span>              rsWrap.getBlockCacheEvictedCount())<a name="line.421"></a>
-<span class="sourceLineNo">422</span>          .addCounter(Interns.info(BLOCK_CACHE_PRIMARY_EVICTION_COUNT,<a name="line.422"></a>
-<span class="sourceLineNo">423</span>            BLOCK_CACHE_PRIMARY_EVICTION_COUNT_DESC), rsWrap.getBlockCachePrimaryEvictedCount())<a name="line.423"></a>
-<span class="sourceLineNo">424</span>          .addGauge(Interns.info(BLOCK_CACHE_HIT_PERCENT, BLOCK_CACHE_HIT_PERCENT_DESC),<a name="line.424"></a>
-<span class="sourceLineNo">425</span>              rsWrap.getBlockCacheHitPercent())<a name="line.425"></a>
-<span class="sourceLineNo">426</span>          .addGauge(Interns.info(BLOCK_CACHE_EXPRESS_HIT_PERCENT,<a name="line.426"></a>
-<span class="sourceLineNo">427</span>              BLOCK_CACHE_EXPRESS_HIT_PERCENT_DESC), rsWrap.getBlockCacheHitCachingPercent())<a name="line.427"></a>
-<span class="sourceLineNo">428</span>          .addCounter(Interns.info(BLOCK_CACHE_FAILED_INSERTION_COUNT,<a name="line.428"></a>
-<span class="sourceLineNo">429</span>              BLOCK_CACHE_FAILED_INSERTION_COUNT_DESC),rsWrap.getBlockCacheFailedInsertions())<a name="line.429"></a>
-<span class="sourceLineNo">430</span>          .addCounter(Interns.info(BLOCK_CACHE_DATA_MISS_COUNT, ""), rsWrap.getDataMissCount())<a name="line.430"></a>
-<span class="sourceLineNo">431</span>          .addCounter(Interns.info(BLOCK_CACHE_LEAF_INDEX_MISS_COUNT, ""),<a name="line.431"></a>
-<span class="sourceLineNo">432</span>              rsWrap.getLeafIndexMissCount())<a name="line.432"></a>
-<span class="sourceLineNo">433</span>          .addCounter(Interns.info(BLOCK_CACHE_BLOOM_CHUNK_MISS_COUNT, ""),<a name="line.433"></a>
-<span class="sourceLineNo">434</span>              rsWrap.getBloomChunkMissCount())<a name="line.434"></a>
-<span class="sourceLineNo">435</span>          .addCounter(Interns.info(BLOCK_CACHE_META_MISS_COUNT, ""), rsWrap.getMetaMissCount())<a name="line.435"></a>
-<span class="sourceLineNo">436</span>          .addCounter(Interns.info(BLOCK_CACHE_ROOT_INDEX_MISS_COUNT, ""),<a name="line.436"></a>
-<span class="sourceLineNo">437</span>              rsWrap.getRootIndexMissCount())<a name="line.437"></a>
-<span class="sourceLineNo">438</span>          .addCounter(Interns.info(BLOCK_CACHE_INTERMEDIATE_INDEX_MISS_COUNT, ""),<a name="line.438"></a>
-<span class="sourceLineNo">439</span>              rsWrap.getIntermediateIndexMissCount())<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          .addCounter(Interns.info(BLOCK_CACHE_FILE_INFO_MISS_COUNT, ""),<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              rsWrap.getFileInfoMissCount())<a name="line.441"></a>
-<span class="sourceLineNo">442</span>          .addCounter(Interns.info(BLOCK_CACHE_GENERAL_BLOOM_META_MISS_COUNT, ""),<a name="line.442"></a>
-<span class="sourceLineNo">443</span>              rsWrap.getGeneralBloomMetaMissCount())<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          .addCounter(Interns.info(BLOCK_CACHE_DELETE_FAMILY_BLOOM_MISS_COUNT, ""),<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              rsWrap.getDeleteFamilyBloomMissCount())<a name="line.445"></a>
-<span class="sourceLineNo">446</span>          .addCounter(Interns.info(BLOCK_CACHE_TRAILER_MISS_COUNT, ""),<a name="line.446"></a>
-<span class="sourceLineNo">447</span>              rsWrap.getTrailerMissCount())<a name="line.447"></a>
-<span class="sourceLineNo">448</span>          .addCounter(Interns.info(BLOCK_CACHE_DATA_HIT_COUNT, ""), rsWrap.getDataHitCount())<a name="line.448"></a>
-<span class="sourceLineNo">449</span>          .addCounter(Interns.info(BLOCK_CACHE_LEAF_INDEX_HIT_COUNT, ""),<a name="line.449"></a>
-<span class="sourceLineNo">450</span>              rsWrap.getLeafIndexHitCount())<a name="line.450"></a>
-<span class="sourceLineNo">451</span>          .addCounter(Interns.info(BLOCK_CACHE_BLOOM_CHUNK_HIT_COUNT, ""),<a name="line.451"></a>
-<span class="sourceLineNo">452</span>              rsWrap.getBloomChunkHitCount())<a name="line.452"></a>
-<span class="sourceLineNo">453</span>          .addCounter(Interns.info(BLOCK_CACHE_META_HIT_COUNT, ""), rsWrap.getMetaHitCount())<a name="line.453"></a>
-<span class="sourceLineNo">454</span>          .addCounter(Interns.info(BLOCK_CACHE_ROOT_INDEX_HIT_COUNT, ""),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>              rsWrap.getRootIndexHitCount())<a name="line.455"></a>
-<span class="sourceLineNo">456</span>          .addCounter(Interns.info(BLOCK_CACHE_INTERMEDIATE_INDEX_HIT_COUNT, ""),<a name="line.456"></a>
-<span class="sourceLineNo">457</span>              rsWrap.getIntermediateIndexHitCount())<a name="line.457"></a>
-<span class="sourceLineNo">458</span>          .addCounter(Interns.info(BLOCK_CACHE_FILE_INFO_HIT_COUNT, ""),<a name="line.458"></a>
-<span class="sourceLineNo">459</span>              rsWrap.getFileInfoHitCount())<a name="line.459"></a>
-<span class="sourceLineNo">460</span>          .addCounter(Interns.info(BLOCK_CACHE_GENERAL_BLOOM_META_HIT_COUNT, ""),<a name="line.460"></a>
-<span class="sourceLineNo">461</span>              rsWrap.getGeneralBloomMetaHitCount())<a name="line.461"></a>
-<span class="sourceLineNo">462</span>          .addCounter(Interns.info(BLOCK_CACHE_DELETE_FAMILY_BLOOM_HIT_COUNT, ""),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>              rsWrap.getDeleteFamilyBloomHitCount())<a name="line.463"></a>
-<span class="sourceLineNo">464</span>          .addCounter(Interns.info(BLOCK_CACHE_TRAILER_HIT_COUNT, ""), rsWrap.getTrailerHitCount())<a name="line.464"></a>
-<span class="sourceLineNo">465</span>          .addCounter(Interns.info(UPDATES_BLOCKED_TIME, UPDATES_BLOCKED_DESC),<a name="line.465"></a>
-<span class="sourceLineNo">466</span>              rsWrap.getUpdatesBlockedTime())<a name="line.466"></a>
-<span class="sourceLineNo">467</span>          .addCounter(Interns.info(FLUSHED_CELLS, FLUSHED_CELLS_DESC),<a name="line.467"></a>
-<span class="sourceLineNo">468</span>              rsWrap.getFlushedCellsCount())<a name="line.468"></a>
-<span class="sourceLineNo">469</span>          .addCounter(Interns.info(COMPACTED_CELLS, COMPACTED_CELLS_DESC),<a name="line.469"></a>
-<span class="sourceLineNo">470</span>              rsWrap.getCompactedCellsCount())<a name="line.470"></a>
-<span class="sourceLineNo">471</span>          .addCounter(Interns.info(MAJOR_COMPACTED_CELLS, MAJOR_COMPACTED_CELLS_DESC),<a name="line.471"></a>
-<span class="sourceLineNo">472</span>              rsWrap.getMajorCompactedCellsCount())<a name="line.472"></a>
-<span class="sourceLineNo">473</span>          .addCounter(Interns.info(FLUSHED_CELLS_SIZE, FLUSHED_CELLS_SIZE_DESC),<a name="line.473"></a>
-<span class="sourceLineNo">474</span>              rsWrap.getFlushedCellsSize())<a name="line.474"></a>
-<span class="sourceLineNo">475</span>          .addCounter(Interns.info(COMPACTED_CELLS_SIZE, COMPACTED_CELLS_SIZE_DESC),<a name="line.475"></a>
-<span class="sourceLineNo">476</span>              rsWrap.getCompactedCellsSize())<a name="line.476"></a>
-<span class="sourceLineNo">477</span>          .addCounter(Interns.info(MAJOR_COMPACTED_CELLS_SIZE, MAJOR_COMPACTED_CELLS_SIZE_DESC),<a name="line.477"></a>
-<span class="sourceLineNo">478</span>              rsWrap.getMajorCompactedCellsSize())<a name="line.478"></a>
-<span class="sourceLineNo">479</span>          .addCounter(<a name="line.479"></a>
-<span class="sourceLineNo">480</span>              Interns.info(CELLS_COUNT_COMPACTED_FROM_MOB, CELLS_COUNT_COMPACTED_FROM_MOB_DESC),<a name="line.480"></a>
-<span class="sourceLineNo">481</span>              rsWrap.getCellsCountCompactedFromMob())<a name="line.481"></a>
-<span class="sourceLineNo">482</span>          .addCounter(Interns.info(CELLS_COUNT_COMPACTED_TO_MOB, CELLS_COUNT_COMPACTED_TO_MOB_DESC),<a name="line.482"></a>
-<span class="sourceLineNo">483</span>              rsWrap.getCellsCountCompactedToMob())<a name="line.483"></a>
-<span class="sourceLineNo">484</span>          .addCounter(<a name="line.484"></a>
-<span class="sourceLineNo">485</span>              Interns.info(CELLS_SIZE_COMPACTED_FROM_MOB, CELLS_SIZE_COMPACTED_FROM_MOB_DESC),<a name="line.485"></a>
-<span class="sourceLineNo">486</span>              rsWrap.getCellsSizeCompactedFromMob())<a name="line.486"></a>
-<span class="sourceLineNo">487</span>          .addCounter(Interns.info(CELLS_SIZE_COMPACTED_TO_MOB, CELLS_SIZE_COMPACTED_TO_MOB_DESC),<a name="line.487"></a>
-<span class="sourceLineNo">488</span>              rsWrap.getCellsSizeCompactedToMob())<a name="line.488"></a>
-<span class="sourceLineNo">489</span>          .addCounter(Interns.info(MOB_FLUSH_COUNT, MOB_FLUSH_COUNT_DESC),<a name="line.489"></a>
-<span class="sourceLineNo">490</span>              rsWrap.getMobFlushCount())<a name="line.490"></a>
-<span class="sourceLineNo">491</span>          .addCounter(Interns.info(MOB_FLUSHED_CELLS_COUNT, MOB_FLUSHED_CELLS_COUNT_DESC),<a name="line.491"></a>
-<span class="sourceLineNo">492</span>              rsWrap.getMobFlushedCellsCount())<a name="line.492"></a>
-<span class="sourceLineNo">493</span>          .addCounter(Interns.info(MOB_FLUSHED_CELLS_SIZE, MOB_FLUSHED_CELLS_SIZE_DESC),<a name="line.493"></a>
-<span class="sourceLineNo">494</span>              rsWrap.getMobFlushedCellsSize())<a name="line.494"></a>
-<span class="sourceLineNo">495</span>          .addCounter(Interns.info(MOB_SCAN_CELLS_COUNT, MOB_SCAN_CELLS_COUNT_DESC),<a name="line.495"></a>
-<span class="sourceLineNo">496</span>              rsWrap.getMobScanCellsCount())<a name="line.496"></a>
-<span class="sourceLineNo">497</span>          .addCounter(Interns.info(MOB_SCAN_CELLS_SIZE, MOB_SCAN_CELLS_SIZE_DESC),<a name="line.497"></a>
-<span class="sourceLineNo">498</span>              rsWrap.getMobScanCellsSize())<a name="line.498"></a>
-<span class="sourceLineNo">499</span>          .addGauge(Interns.info(MOB_FILE_CACHE_COUNT, MOB_FILE_CACHE_COUNT_DESC),<a name="line.499"></a>
-<span class="sourceLineNo">500</span>              rsWrap.getMobFileCacheCount())<a name="line.500"></a>
-<span class="sourceLineNo">501</span>          .addCounter(Interns.info(MOB_FILE_CACHE_ACCESS_COUNT, MOB_FILE_CACHE_ACCESS_COUNT_DESC),<a name="line.501"></a>
-<span class="sourceLineNo">502</span>              rsWrap.getMobFileCacheAccessCount())<a name="line.502"></a>
-<span class="sourceLineNo">503</span>          .addCounter(Interns.info(MOB_FILE_CACHE_MISS_COUNT, MOB_FILE_CACHE_MISS_COUNT_DESC),<a name="line.503"></a>
-<span class="sourceLineNo">504</span>              rsWrap.getMobFileCacheMissCount())<a name="line.504"></a>
-<span class="sourceLineNo">505</span>          .addCounter(<a name="line.505"></a>
-<span class="sourceLineNo">506</span>              Interns.info(MOB_FILE_CACHE_EVICTED_COUNT, MOB_FILE_CACHE_EVICTED_COUNT_DESC),<a name="line.506"></a>
-<span class="sourceLineNo">507</span>              rsWrap.getMobFileCacheEvictedCount())<a name="line.507"></a>
-<span class="sourceLineNo">508</span>          .addGauge(Interns.info(MOB_FILE_CACHE_HIT_PERCENT, MOB_FILE_CACHE_HIT_PERCENT_DESC),<a name="line.508"></a>
-<span class="sourceLineNo">509</span>              rsWrap.getMobFileCacheHitPercent())<a name="line.509"></a>
-<span class="sourceLineNo">510</span><a name="line.510"></a>
-<span class="sourceLineNo">511</span>          .addCounter(Interns.info(HEDGED_READS, HEDGED_READS_DESC), rsWrap.getHedgedReadOps())<a name="line.511"></a>
-<span class="sourceLineNo">512</span>          .addCounter(Interns.info(HEDGED_READ_WINS, HEDGED_READ_WINS_DESC),<a name="line.512"></a>
-<span class="sourceLineNo">513</span>              rsWrap.getHedgedReadWins())<a name="line.513"></a>
-<span class="sourceLineNo">514</span>          .addCounter(Interns.info(BLOCKED_REQUESTS_COUNT, BLOCKED_REQUESTS_COUNT_DESC),<a name="line.514"></a>
-<span class="sourceLineNo">515</span>            rsWrap.getBlockedRequestsCount())<a name="line.515"></a>
-<span class="sourceLineNo">516</span>          .tag(Interns.info(ZOOKEEPER_QUORUM_NAME, ZOOKEEPER_QUORUM_DESC),<a name="line.516"></a>
-<span class="sourceLineNo">517</span>              rsWrap.getZookeeperQuorum())<a name="line.517"></a>
-<span class="sourceLineNo">518</span>          .tag(Interns.info(SERVER_NAME_NAME, SERVER_NAME_DESC), rsWrap.getServerName())<a name="line.518"></a>
-<span class="sourceLineNo">519</span>          .tag(Interns.info(CLUSTER_ID_NAME, CLUSTER_ID_DESC), rsWrap.getClusterId());<a name="line.519"></a>
+<span class="sourceLineNo">401</span>          .addGauge(Interns.info(FLUSH_QUEUE_LENGTH, FLUSH_QUEUE_LENGTH_DESC),<a name="line.401"></a>
+<span class="sourceLineNo">402</span>              rsWrap.getFlushQueueSize())<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>          .addGauge(Interns.info(BLOCK_CACHE_FREE_SIZE, BLOCK_CACHE_FREE_DESC),<a name="line.404"></a>
+<span class="sourceLineNo">405</span>              rsWrap.getBlockCacheFreeSize())<a name="line.405"></a>
+<span class="sourceLineNo">406</span>          .addGauge(Interns.info(BLOCK_CACHE_COUNT, BLOCK_CACHE_COUNT_DESC),<a name="line.406"></a>
+<span class="sourceLineNo">407</span>              rsWrap.getBlockCacheCount())<a name="line.407"></a>
+<span class="sourceLineNo">408</span>          .addGauge(Interns.info(BLOCK_CACHE_SIZE, BLOCK_CACHE_SIZE_DESC),<a name="line.408"></a>
+<span class="sourceLineNo">409</span>              rsWrap.getBlockCacheSize())<a name="line.409"></a>
+<span class="sourceLineNo">410</span>          .addCounter(Interns.info(BLOCK_CACHE_HIT_COUNT, BLOCK_CACHE_HIT_COUNT_DESC),<a name="line.410"></a>
+<span class="sourceLineNo">411</span>              rsWrap.getBlockCacheHitCount())<a name="line.411"></a>
+<span class="sourceLineNo">412</span>          .addCounter(Interns.info(BLOCK_CACHE_PRIMARY_HIT_COUNT,<a name="line.412"></a>
+<span class="sourceLineNo">413</span>            BLOCK_CACHE_PRIMARY_HIT_COUNT_DESC), rsWrap.getBlockCachePrimaryHitCount())<a name="line.413"></a>
+<span class="sourceLineNo">414</span>          .addCounter(Interns.info(BLOCK_CACHE_MISS_COUNT, BLOCK_COUNT_MISS_COUNT_DESC),<a name="line.414"></a>
+<span class="sourceLineNo">415</span>              rsWrap.getBlockCacheMissCount())<a name="line.415"></a>
+<span class="sourceLineNo">416</span>          .addCounter(Interns.info(BLOCK_CACHE_PRIMARY_MISS_COUNT,<a name="line.416"></a>
+<span class="sourceLineNo">417</span>            BLOCK_COUNT_PRIMARY_MISS_COUNT_DESC), rsWrap.getBlockCachePrimaryMissCount())<a name="line.417"></a>
+<span class="sourceLineNo">418</span>          .addCounter(Interns.info(BLOCK_CACHE_EVICTION_COUNT, BLOCK_CACHE_EVICTION_COUNT_DESC),<a name="line.418"></a>
+<span class="sourceLineNo">419</span>              rsWrap.getBlockCacheEvictedCount())<a name="line.419"></a>
+<span class="sourceLineNo">420</span>          .addCounter(Interns.info(BLOCK_CACHE_PRIMARY_EVICTION_COUNT,<a name="line.420"></a>
+<span class="sourceLineNo">421</span>            BLOCK_CACHE_PRIMARY_EVICTION_COUNT_DESC), rsWrap.getBlockCachePrimaryEvictedCount())<a name="line.421"></a>
+<span class="sourceLineNo">422</span>          .addGauge(Interns.info(BLOCK_CACHE_HIT_PERCENT, BLOCK_CACHE_HIT_PERCENT_DESC),<a name="line.422"></a>
+<span class="sourceLineNo">423</span>              rsWrap.getBlockCacheHitPercent())<a name="line.423"></a>
+<span class="sourceLineNo">424</span>          .addGauge(Interns.info(BLOCK_CACHE_EXPRESS_HIT_PERCENT,<a name="line.424"></a>
+<span class="sourceLineNo">425</span>              BLOCK_CACHE_EXPRESS_HIT_PERCENT_DESC), rsWrap.getBlockCacheHitCachingPercent())<a name="line.425"></a>
+<span class="sourceLineNo">426</span>          .addCounter(Interns.info(BLOCK_CACHE_FAILED_INSERTION_COUNT,<a name="line.426"></a>
+<span class="sourceLineNo">427</span>              BLOCK_CACHE_FAILED_INSERTION_COUNT_DESC),rsWrap.getBlockCacheFailedInsertions())<a name="line.427"></a>
+<span class="sourceLineNo">428</span>          .addCounter(Interns.info(BLOCK_CACHE_DATA_MISS_COUNT, ""), rsWrap.getDataMissCount())<a name="line.428"></a>
+<span class="sourceLineNo">429</span>          .addCounter(Interns.info(BLOCK_CACHE_LEAF_INDEX_MISS_COUNT, ""),<a name="line.429"></a>
+<span class="sourceLineNo">430</span>              rsWrap.getLeafIndexMissCount())<a name="line.430"></a>
+<span class="sourceLineNo">431</span>          .addCounter(Interns.info(BLOCK_CACHE_BLOOM_CHUNK_MISS_COUNT, ""),<a name="line.431"></a>
+<span class="sourceLineNo">432</span>              rsWrap.getBloomChunkMissCount())<a name="line.432"></a>
+<span class="sourceLineNo">433</span>          .addCounter(Interns.info(BLOCK_CACHE_META_MISS_COUNT, ""), rsWrap.getMetaMissCount())<a name="line.433"></a>
+<span class="sourceLineNo">434</span>          .addCounter(Interns.info(BLOCK_CACHE_ROOT_INDEX_MISS_COUNT, ""),<a name="line.434"></a>
+<span class="sourceLineNo">435</span>              rsWrap.getRootIndexMissCount())<a name="line.435"></a>
+<span class="sourceLineNo">436</span>          .addCounter(Interns.info(BLOCK_CACHE_INTERMEDIATE_INDEX_MISS_COUNT, ""),<a name="line.436"></a>
+<span class="sourceLineNo">437</span>              rsWrap.getIntermediateIndexMissCount())<a name="line.437"></a>
+<span class="sourceLineNo">438</span>          .addCounter(Interns.info(BLOCK_CACHE_FILE_INFO_MISS_COUNT, ""),<a name="line.438"></a>
+<span class="sourceLineNo">439</span>              rsWrap.getFileInfoMissCount())<a name="line.439"></a>
+<span class="sourceLineNo">440</span>          .addCounter(Interns.info(BLOCK_CACHE_GENERAL_BLOOM_META_MISS_COUNT, ""),<a name="line.440"></a>
+<span class="sourceLineNo">441</span>              rsWrap.getGeneralBloomMetaMissCount())<a name="line.441"></a>
+<span class="sourceLineNo">442</span>          .addCounter(Interns.info(BLOCK_CACHE_DELETE_FAMILY_BLOOM_MISS_COUNT, ""),<a name="line.442"></a>
+<span class="sourceLineNo">443</span>              rsWrap.getDeleteFamilyBloomMissCount())<a name="line.443"></a>
+<span class="sourceLineNo">444</span>          .addCounter(Interns.info(BLOCK_CACHE_TRAILER_MISS_COUNT, ""),<a name="line.444"></a>
+<span class="sourceLineNo">445</span>              rsWrap.getTrailerMissCount())<a name="line.445"></a>
+<span class="sourceLineNo">446</span>          .addCounter(Interns.info(BLOCK_CACHE_DATA_HIT_COUNT, ""), rsWrap.getDataHitCount())<a name="line.446"></a>
+<span class="sourceLineNo">447</span>          .addCounter(Interns.info(BLOCK_CACHE_LEAF_INDEX_HIT_COUNT, ""),<a name="line.447"></a>
+<span class="sourceLineNo">448</span>              rsWrap.getLeafIndexHitCount())<a name="line.448"></a>
+<span class="sourceLineNo">449</span>          .addCounter(Interns.info(BLOCK_CACHE_BLOOM_CHUNK_HIT_COUNT, ""),<a name="line.449"></a>
+<span class="sourceLineNo">450</span>              rsWrap.getBloomChunkHitCount())<a name="line.450"></a>
+<span class="sourceLineNo">451</span>          .addCounter(Interns.info(BLOCK_CACHE_META_HIT_COUNT, ""), rsWrap.getMetaHitCount())<a name="line.451"></a>
+<span class="sourceLineNo">452</span>          .addCounter(Interns.info(BLOCK_CACHE_ROOT_INDEX_HIT_COUNT, ""),<a name="line.452"></a>
+<span class="sourceLineNo">453</span>              rsWrap.getRootIndexHitCount())<a name="line.453"></a>
+<span class="sourceLineNo">454</span>          .addCounter(Interns.info(BLOCK_CACHE_INTERMEDIATE_INDEX_HIT_COUNT, ""),<a name="line.454"></a>
+<span class="sourceLineNo">455</span>              rsWrap.getIntermediateIndexHitCount())<a name="line.455"></a>
+<span class="sourceLineNo">456</span>          .addCounter(Interns.info(BLOCK_CACHE_FILE_INFO_HIT_COUNT, ""),<a name="line.456"></a>
+<span class="sourceLineNo">457</span>              rsWrap.getFileInfoHitCount())<a name="line.457"></a>
+<span class="sourceLineNo">458</span>          .addCounter(Interns.info(BLOCK_CACHE_GENERAL_BLOOM_META_HIT_COUNT, ""),<a name="line.458"></a>
+<span class="sourceLineNo">459</span>              rsWrap.getGeneralBloomMetaHitCount())<a name="line.459"></a>
+<span class="sourceLineNo">460</span>          .addCounter(Interns.info(BLOCK_CACHE_DELETE_FAMILY_BLOOM_HIT_COUNT, ""),<a name="line.460"></a>
+<span class="sourceLineNo">461</span>              rsWrap.getDeleteFamilyBloomHitCount())<a name="line.461"></a>
+<span class="sourceLineNo">462</span>          .addCounter(Interns.info(BLOCK_CACHE_TRAILER_HIT_COUNT, ""), rsWrap.getTrailerHitCount())<a name="line.462"></a>
+<span class="sourceLineNo">463</span>          .addCounter(Interns.info(UPDATES_BLOCKED_TIME, UPDATES_BLOCKED_DESC),<a name="line.463"></a>
+<span class="sourceLineNo">464</span>              rsWrap.getUpdatesBlockedTime())<a name="line.464"></a>
+<span class="sourceLineNo">465</span>          .addCounter(Interns.info(FLUSHED_CELLS, FLUSHED_CELLS_DESC),<a name="line.465"></a>
+<span class="sourceLineNo">466</span>              rsWrap.getFlushedCellsCount())<a name="line.466"></a>
+<span class="sourceLineNo">467</span>          .addCounter(Interns.info(COMPACTED_CELLS, COMPACTED_CELLS_DESC),<a name="line.467"></a>
+<span class="sourceLineNo">468</span>              rsWrap.getCompactedCellsCount())<a name="line.468"></a>
+<span class="sourceLineNo">469</span>          .addCounter(Interns.info(MAJOR_COMPACTED_CELLS, MAJOR_COMPACTED_CELLS_DESC),<a name="line.469"></a>
+<span class="sourceLineNo">470</span>              rsWrap.getMajorCompactedCellsCount())<a name="line.470"></a>
+<span class="sourceLineNo">471</span>          .addCounter(Interns.info(FLUSHED_CELLS_SIZE, FLUSHED_CELLS_SIZE_DESC),<a name="line.471"></a>
+<span class="sourceLineNo">472</span>              rsWrap.getFlushedCellsSize())<a name="line.472"></a>
+<span class="sourceLineNo">473</span>          .addCounter(Interns.info(COMPACTED_CELLS_SIZE, COMPACTED_CELLS_SIZE_DESC),<a name="line.473"></a>
+<span class="sourceLineNo">474</span>              rsWrap.getCompactedCellsSize())<a name="line.474"></a>
+<span class="sourceLineNo">475</span>          .addCounter(Interns.info(MAJOR_COMPACTED_CELLS_SIZE, MAJOR_COMPACTED_CELLS_SIZE_DESC),<a name="line.475"></a>
+<span class="sourceLineNo">476</span>              rsWrap.getMajorCompactedCellsSize())<a name="line.476"></a>
+<span class="sourceLineNo">477</span>          .addCounter(<a name="line.477"></a>
+<span class="sourceLineNo">478</span>              Interns.info(CELLS_COUNT_COMPACTED_FROM_MOB, CELLS_COUNT_COMPACTED_FROM_MOB_DESC),<a name="line.478"></a>
+<span class="sourceLineNo">479</span>              rsWrap.getCellsCountCompactedFromMob())<a name="line.479"></a>
+<span class="sourceLineNo">480</span>          .addCounter(Interns.info(CELLS_COUNT_COMPACTED_TO_MOB, CELLS_COUNT_COMPACTED_TO_MOB_DESC),<a name="line.480"></a>
+<span class="sourceLineNo">481</span>              rsWrap.getCellsCountCompactedToMob())<a name="line.481"></a>
+<span class="sourceLineNo">482</span>          .addCounter(<a name="line.482"></a>
+<span class="sourceLineNo">483</span>              Interns.info(CELLS_SIZE_COMPACTED_FROM_MOB, CELLS_SIZE_COMPACTED_FROM_MOB_DESC),<a name="line.483"></a>
+<span class="sourceLineNo">484</span>              rsWrap.getCellsSizeCompactedFromMob())<a name="line.484"></a>
+<span class="sourceLineNo">485</span>          .addCounter(Interns.info(CELLS_SIZE_COMPACTED_TO_MOB, CELLS_SIZE_COMPACTED_TO_MOB_DESC),<a name="line.485"></a>
+<span class="sourceLineNo">486</span>              rsWrap.getCellsSizeCompactedToMob())<a name="line.486"></a>
+<span class="sourceLineNo">487</span>          .addCounter(Interns.info(MOB_FLUSH_COUNT, MOB_FLUSH_COUNT_DESC),<a name="line.487"></a>
+<span class="sourceLineNo">488</span>              rsWrap.getMobFlushCount())<a name="line.488"></a>
+<span class="sourceLineNo">489</span>          .addCounter(Interns.info(MOB_FLUSHED_CELLS_COUNT, MOB_FLUSHED_CELLS_COUNT_DESC),<a name="line.489"></a>
+<span class="sourceLineNo">490</span>              rsWrap.getMobFlushedCellsCount())<a name="line.490"></a>
+<span class="sourceLineNo">491</span>          .addCounter(Interns.info(MOB_FLUSHED_CELLS_SIZE, MOB_FLUSHED_CELLS_SIZE_DESC),<a name="line.491"></a>
+<span class="sourceLineNo">492</span>              rsWrap.getMobFlushedCellsSize())<a name="line.492"></a>
+<span class="sourceLineNo">493</span>          .addCounter(Interns.info(MOB_SCAN_CELLS_COUNT, MOB_SCAN_CELLS_COUNT_DESC),<a name="line.493"></a>
+<span class="sourceLineNo">494</span>              rsWrap.getMobScanCellsCount())<a name="line.494"></a>
+<span class="sourceLineNo">495</span>          .addCounter(Interns.info(MOB_SCAN_CELLS_SIZE, MOB_SCAN_CELLS_SIZE_DESC),<a name="line.495"></a>
+<span class="sourceLineNo">496</span>              rsWrap.getMobScanCellsSize())<a name="line.496"></a>
+<span class="sourceLineNo">497</span>          .addGauge(Interns.info(MOB_FILE_CACHE_COUNT, MOB_FILE_CACHE_COUNT_DESC),<a name="line.497"></a>
+<span class="sourceLineNo">498</span>              rsWrap.getMobFileCacheCount())<a name="line.498"></a>
+<span class="sourceLineNo">499</span>          .addCounter(Interns.info(MOB_FILE_CACHE_ACCESS_COUNT, MOB_FILE_CACHE_ACCESS_COUNT_DESC),<a name="line.499"></a>
+<span class="sourceLineNo">500</span>              rsWrap.getMobFileCacheAccessCount())<a name="line.500"></a>
+<span class="sourceLineNo">501</span>          .addCounter(Interns.info(MOB_FILE_CACHE_MISS_COUNT, MOB_FILE_CACHE_MISS_COUNT_DESC),<a name="line.501"></a>
+<span class="sourceLineNo">502</span>              rsWrap.getMobFileCacheMissCount())<a name="line.502"></a>
+<span class="sourceLineNo">503</span>          .addCounter(<a name="line.503"></a>
+<span class="sourceLineNo">504</span>              Interns.info(MOB_FILE_CACHE_EVICTED_COUNT, MOB_FILE_CACHE_EVICTED_COUNT_DESC),<a name="line.504"></a>
+<span class="sourceLineNo">505</span>              rsWrap.getMobFileCacheEvictedCount())<a name="line.505"></a>
+<span class="sourceLineNo">506</span>          .addGauge(Interns.info(MOB_FILE_CACHE_HIT_PERCENT, MOB_FILE_CACHE_HIT_PERCENT_DESC),<a name="line.506"></a>
+<span class="sourceLineNo">507</span>              rsWrap.getMobFileCacheHitPercent())<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>          .addCounter(Interns.info(HEDGED_READS, HEDGED_READS_DESC), rsWrap.getHedgedReadOps())<a name="line.509"></a>
+<span class="sourceLineNo">510</span>          .addCounter(Interns.info(HEDGED_READ_WINS, HEDGED_READ_WINS_DESC),<a name="line.510"></a>
+<span class="sourceLineNo">511</span>              rsWrap.getHedgedReadWins())<a name="line.511"></a>
+<span class="sourceLineNo">512</span>          .addCounter(Interns.info(BLOCKED_REQUESTS_COUNT, BLOCKED_REQUESTS_COUNT_DESC),<a name="line.512"></a>
+<span class="sourceLineNo">513</span>            rsWrap.getBlockedRequestsCount())<a name="line.513"></a>
+<span class="sourceLineNo">514</span>          .tag(Interns.info(ZOOKEEPER_QUORUM_NAME, ZOOKEEPER_QUORUM_DESC),<a name="line.514"></a>
+<span class="sourceLineNo">515</span>              rsWrap.getZookeeperQuorum())<a name="line.515"></a>
+<span class="sourceLineNo">516</span>          .tag(Interns.info(SERVER_NAME_NAME, SERVER_NAME_DESC), rsWrap.getServerName())<a name="line.516"></a>
+<span class="sourceLineNo">517</span>          .tag(Interns.info(CLUSTER_ID_NAME, CLUSTER_ID_DESC), rsWrap.getClusterId());<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>    }<a name="line.519"></a>
 <span class="sourceLineNo">520</span><a name="line.520"></a>
-<span class="sourceLineNo">521</span>    }<a name="line.521"></a>
+<span class="sourceLineNo">521</span>    metricsRegistry.snapshot(mrb, all);<a name="line.521"></a>
 <span class="sourceLineNo">522</span><a name="line.522"></a>
-<span class="sourceLineNo">523</span>    metricsRegistry.snapshot(mrb, all);<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>    // source is registered in supers constructor, sometimes called before the whole initialization.<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    if (metricsAdapter != null) {<a name="line.526"></a>
-<span class="sourceLineNo">527</span>      // snapshot MetricRegistry as well<a name="line.527"></a>
-<span class="sourceLineNo">528</span>      metricsAdapter.snapshotAllMetrics(registry, mrb);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    }<a name="line.529"></a>
-<span class="sourceLineNo">530</span>  }<a name="line.530"></a>
-<span class="sourceLineNo">531</span><a name="line.531"></a>
-<span class="sourceLineNo">532</span>  @Override<a name="line.532"></a>
-<span class="sourceLineNo">533</span>  public void incInfoThresholdExceeded(int count) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>    infoPauseThresholdExceeded.incr(count);<a name="line.534"></a>
-<span class="sourceLineNo">535</span>  }<a name="line.535"></a>
-<span class="sourceLineNo">536</span><a name="line.536"></a>
-<span class="sourceLineNo">537</span>  @Override<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  public void incWarnThresholdExceeded(int count) {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    warnPauseThresholdExceeded.incr(count);<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>  @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span>  public void updatePauseTimeWithGc(long t) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    pausesWithGc.add(t);<a name="line.544"></a>
-<span class="sourceLineNo">545</span>  }<a name="line.545"></a>
-<span class="sourceLineNo">546</span><a name="line.546"></a>
-<span class="sourceLineNo">547</span>  @Override<a name="line.547"></a>
-<span class="sourceLineNo">548</span>  public void updatePauseTimeWithoutGc(long t) {<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    pausesWithoutGc.add(t);<a name="line.549"></a>
-<span class="sourceLineNo">550</span>  }<a name="line.550"></a>
-<span class="sourceLineNo">551</span><a name="line.551"></a>
-<span class="sourceLineNo">552</span>  @Override<a name="line.552"></a>
-<span class="sourceLineNo">553</span>  public void updateDeleteBatch(long t) {<a name="line.553"></a>
-<span class="sourceLineNo">554</span>    deleteBatchHisto.add(t);<a name="line.554"></a>
-<span class="sourceLineNo">555</span>  }<a name="line.555"></a>
-<span class="sourceLineNo">556</span><a name="line.556"></a>
-<span class="sourceLineNo">557</span>  @Override<a name="line.557"></a>
-<span class="sourceLineNo">558</span>  public void updateCheckAndDelete(long t) {<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    checkAndDeleteHisto.add(t);<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>  @Override<a name="line.562"></a>
-<span class="sourceLineNo">563</span>  public void updateCheckAndPut(long t) {<a name="line.563"></a>
-<span class="sourceLineNo">564</span>    checkAndPutHisto.add(t);<a name="line.564"></a>
-<span class="sourceLineNo">565</span>  }<a name="line.565"></a>
-<span class="sourceLineNo">566</span><a name="line.566"></a>
-<span class="sourceLineNo">567</span>  @Override<a name="line.567"></a>
-<span class="sourceLineNo">568</span>  public void updatePutBatch(long t) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    putBatchHisto.add(t);<a name="line.569"></a>
-<span class="sourceLineNo">570</span>  }<a name="line.570"></a>
-<span class="sourceLineNo">571</span>}<a name="line.571"></a>
+<span class="sourceLineNo">523</span>    // source is registered in supers constructor, sometimes called before the whole initialization.<a name="line.523"></a>
+<span class="sourceLineNo">524</span>    if (metricsAdapter != null) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>      // snapshot MetricRegistry as well<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      metricsAdapter.snapshotAllMetrics(registry, mrb);<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><a name="line.529"></a>
+<span class="sourceLineNo">530</span>  @Override<a name="line.530"></a>
+<span class="sourceLineNo">531</span>  public void incInfoThresholdExceeded(int count) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>    infoPauseThresholdExceeded.incr(count);<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>  @Override<a name="line.535"></a>
+<span class="sourceLineNo">536</span>  public void incWarnThresholdExceeded(int count) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>    warnPauseThresholdExceeded.incr(count);<a name="line.537"></a>
+<span class="sourceLineNo">538</span>  }<a name="line.538"></a>
+<span class="sourceLineNo">539</span><a name="line.539"></a>
+<span class="sourceLineNo">540</span>  @Override<a name="line.540"></a>
+<span class="sourceLineNo">541</span>  public void updatePauseTimeWithGc(long t) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>    pausesWithGc.add(t);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>  }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>  @Override<a name="line.545"></a>
+<span class="sourceLineNo">546</span>  public void updatePauseTimeWithoutGc(long t) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    pausesWithoutGc.add(t);<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>  @Override<a name="line.550"></a>
+<span class="sourceLineNo">551</span>  public void updateDeleteBatch(long t) {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>    deleteBatchHisto.add(t);<a name="line.552"></a>
+<span class="sourceLineNo">553</span>  }<a name="line.553"></a>
+<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">555</span>  @Override<a name="line.555"></a>
+<span class="sourceLineNo">556</span>  public void updateCheckAndDelete(long t) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>    checkAndDeleteHisto.add(t);<a name="line.557"></a>
+<span class="sourceLineNo">558</span>  }<a name="line.558"></a>
+<span class="sourceLineNo">559</span><a name="line.559"></a>
+<span class="sourceLineNo">560</span>  @Override<a name="line.560"></a>
+<span class="sourceLineNo">561</span>  public void updateCheckAndPut(long t) {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    checkAndPutHisto.add(t);<a name="line.562"></a>
+<span class="sourceLineNo">563</span>  }<a name="line.563"></a>
+<span class="sourceLineNo">564</span><a name="line.564"></a>
+<span class="sourceLineNo">565</span>  @Override<a name="line.565"></a>
+<span class="sourceLineNo">566</span>  public void updatePutBatch(long t) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>    putBatchHisto.add(t);<a name="line.567"></a>
+<span class="sourceLineNo">568</span>  }<a name="line.568"></a>
+<span class="sourceLineNo">569</span>}<a name="line.569"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.WALEntryStreamRuntimeException.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.WALEntryStreamRuntimeException.html b/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.WALEntryStreamRuntimeException.html
index 745d53a..613d163 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.WALEntryStreamRuntimeException.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.WALEntryStreamRuntimeException.html
@@ -241,190 +241,192 @@
 <span class="sourceLineNo">233</span>      if (trailerSize &lt; 0) {<a name="line.233"></a>
 <span class="sourceLineNo">234</span>        if (currentPosition &lt; stat.getLen()) {<a name="line.234"></a>
 <span class="sourceLineNo">235</span>          final long skippedBytes = stat.getLen() - currentPosition;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>          LOG.info("Reached the end of WAL file '" + currentPath<a name="line.236"></a>
-<span class="sourceLineNo">237</span>              + "'. It was not closed cleanly, so we did not parse " + skippedBytes<a name="line.237"></a>
-<span class="sourceLineNo">238</span>              + " bytes of data.");<a name="line.238"></a>
-<span class="sourceLineNo">239</span>          metrics.incrUncleanlyClosedWALs();<a name="line.239"></a>
-<span class="sourceLineNo">240</span>          metrics.incrBytesSkippedInUncleanlyClosedWALs(skippedBytes);<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        }<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      } else if (currentPosition + trailerSize &lt; stat.getLen()) {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        LOG.warn("Processing end of WAL file '" + currentPath + "'. At position " + currentPosition<a name="line.243"></a>
-<span class="sourceLineNo">244</span>            + ", which is too far away from reported file length " + stat.getLen()<a name="line.244"></a>
-<span class="sourceLineNo">245</span>            + ". Restarting WAL reading (see HBASE-15983 for details). " + getCurrentPathStat());<a name="line.245"></a>
-<span class="sourceLineNo">246</span>        setPosition(0);<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        resetReader();<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        metrics.incrRestartedWALReading();<a name="line.248"></a>
-<span class="sourceLineNo">249</span>        metrics.incrRepeatedFileBytes(currentPosition);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>        return false;<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>    if (LOG.isTraceEnabled()) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      LOG.trace("Reached the end of log " + this.currentPath + ", and the length of the file is "<a name="line.254"></a>
-<span class="sourceLineNo">255</span>          + (stat == null ? "N/A" : stat.getLen()));<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    }<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    metrics.incrCompletedWAL();<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    return true;<a name="line.258"></a>
-<span class="sourceLineNo">259</span>  }<a name="line.259"></a>
-<span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>  private void dequeueCurrentLog() throws IOException {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    if (LOG.isDebugEnabled()) {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      LOG.debug("Reached the end of log " + currentPath);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    closeReader();<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    logQueue.remove();<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    setPosition(0);<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    metrics.decrSizeOfLogQueue();<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>  private void readNextEntryAndSetPosition() throws IOException {<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    Entry readEntry = reader.next();<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    long readerPos = reader.getPosition();<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    if (readEntry != null) {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      metrics.incrLogEditsRead();<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      metrics.incrLogReadInBytes(readerPos - currentPosition);<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    }<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    currentEntry = readEntry; // could be null<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    setPosition(readerPos);<a name="line.279"></a>
-<span class="sourceLineNo">280</span>  }<a name="line.280"></a>
-<span class="sourceLineNo">281</span><a name="line.281"></a>
-<span class="sourceLineNo">282</span>  private void closeReader() throws IOException {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    if (reader != null) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      reader.close();<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      reader = null;<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    }<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  }<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span>  // if we don't have a reader, open a reader on the next log<a name="line.289"></a>
-<span class="sourceLineNo">290</span>  private boolean checkReader() throws IOException {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    if (reader == null) {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      return openNextLog();<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    }<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return true;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  // open a reader on the next log in queue<a name="line.297"></a>
-<span class="sourceLineNo">298</span>  private boolean openNextLog() throws IOException {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    Path nextPath = logQueue.peek();<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    if (nextPath != null) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      openReader(nextPath);<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      if (reader != null) return true;<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    }<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    return false;<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>  private Path getArchivedLog(Path path) throws IOException {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    Path rootDir = FSUtils.getRootDir(conf);<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    Path oldLogDir = new Path(rootDir, HConstants.HREGION_OLDLOGDIR_NAME);<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    Path archivedLogLocation = new Path(oldLogDir, path.getName());<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    if (fs.exists(archivedLogLocation)) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      LOG.info("Log " + path + " was moved to " + archivedLogLocation);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      return archivedLogLocation;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    } else {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      LOG.error("Couldn't locate log: " + path);<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      return path;<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    }<a name="line.317"></a>
-<span class="sourceLineNo">318</span>  }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>  private void handleFileNotFound(Path path, FileNotFoundException fnfe) throws IOException {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    // If the log was archived, continue reading from there<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    Path archivedLog = getArchivedLog(path);<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    if (!path.equals(archivedLog)) {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      openReader(archivedLog);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    } else {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      throw fnfe;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    }<a name="line.327"></a>
-<span class="sourceLineNo">328</span>  }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  private void openReader(Path path) throws IOException {<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    try {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      // Detect if this is a new file, if so get a new reader else<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      // reset the current reader so that we see the new data<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      if (reader == null || !getCurrentPath().equals(path)) {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>        closeReader();<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        reader = WALFactory.createReader(fs, path, conf);<a name="line.335"></a>
-<span class="sourceLineNo">336</span>        seek();<a name="line.336"></a>
-<span class="sourceLineNo">337</span>        setCurrentPath(path);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>      } else {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>        resetReader();<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      }<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    } catch (FileNotFoundException fnfe) {<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      handleFileNotFound(path, fnfe);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    }  catch (RemoteException re) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      IOException ioe = re.unwrapRemoteException(FileNotFoundException.class);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      if (!(ioe instanceof FileNotFoundException)) throw ioe;<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      handleFileNotFound(path, (FileNotFoundException)ioe);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    } catch (LeaseNotRecoveredException lnre) {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      // HBASE-15019 the WAL was not closed due to some hiccup.<a name="line.348"></a>
-<span class="sourceLineNo">349</span>      LOG.warn("Try to recover the WAL lease " + currentPath, lnre);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      recoverLease(conf, currentPath);<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      reader = null;<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    } catch (NullPointerException npe) {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      // Workaround for race condition in HDFS-4380<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      // which throws a NPE if we open a file before any data node has the most recent block<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      // Just sleep and retry. Will require re-reading compressed WALs for compressionContext.<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      LOG.warn("Got NPE opening reader, will retry.");<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      reader = null;<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>  // For HBASE-15019<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  private void recoverLease(final Configuration conf, final Path path) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    try {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      final FileSystem dfs = FSUtils.getCurrentFileSystem(conf);<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      FSUtils fsUtils = FSUtils.getInstance(dfs, conf);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      fsUtils.recoverFileLease(dfs, path, conf, new CancelableProgressable() {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        @Override<a name="line.367"></a>
-<span class="sourceLineNo">368</span>        public boolean progress() {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>          LOG.debug("recover WAL lease: " + path);<a name="line.369"></a>
-<span class="sourceLineNo">370</span>          return true;<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>    } catch (IOException e) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      LOG.warn("unable to recover lease for WAL: " + path, e);<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
-<span class="sourceLineNo">376</span>  }<a name="line.376"></a>
-<span class="sourceLineNo">377</span><a name="line.377"></a>
-<span class="sourceLineNo">378</span>  private void resetReader() throws IOException {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    try {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      reader.reset();<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      seek();<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    } catch (FileNotFoundException fnfe) {<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      // If the log was archived, continue reading from there<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      Path archivedLog = getArchivedLog(currentPath);<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      if (!currentPath.equals(archivedLog)) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>        openReader(archivedLog);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      } else {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>        throw fnfe;<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      }<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    } catch (NullPointerException npe) {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      throw new IOException("NPE resetting reader, likely HDFS-4380", npe);<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    }<a name="line.392"></a>
-<span class="sourceLineNo">393</span>  }<a name="line.393"></a>
-<span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span>  private void seek() throws IOException {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    if (currentPosition != 0) {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      reader.seek(currentPosition);<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>  private long currentTrailerSize() {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    long size = -1L;<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    if (reader instanceof ProtobufLogReader) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      final ProtobufLogReader pblr = (ProtobufLogReader) reader;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      size = pblr.trailerSize();<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    }<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    return size;<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>  @InterfaceAudience.Private<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  public static class WALEntryStreamRuntimeException extends RuntimeException {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    private static final long serialVersionUID = -6298201811259982568L;<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span>    public WALEntryStreamRuntimeException(Exception e) {<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      super(e);<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    }<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>}<a name="line.419"></a>
+<span class="sourceLineNo">236</span>          if (LOG.isDebugEnabled()) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>            LOG.debug("Reached the end of WAL file '" + currentPath<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                + "'. It was not closed cleanly, so we did not parse " + skippedBytes<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                + " bytes of data. This is normally ok.");<a name="line.239"></a>
+<span class="sourceLineNo">240</span>          }<a name="line.240"></a>
+<span class="sourceLineNo">241</span>          metrics.incrUncleanlyClosedWALs();<a name="line.241"></a>
+<span class="sourceLineNo">242</span>          metrics.incrBytesSkippedInUncleanlyClosedWALs(skippedBytes);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        }<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      } else if (currentPosition + trailerSize &lt; stat.getLen()) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        LOG.warn("Processing end of WAL file '" + currentPath + "'. At position " + currentPosition<a name="line.245"></a>
+<span class="sourceLineNo">246</span>            + ", which is too far away from reported file length " + stat.getLen()<a name="line.246"></a>
+<span class="sourceLineNo">247</span>            + ". Restarting WAL reading (see HBASE-15983 for details). " + getCurrentPathStat());<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        setPosition(0);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        resetReader();<a name="line.249"></a>
+<span class="sourceLineNo">250</span>        metrics.incrRestartedWALReading();<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        metrics.incrRepeatedFileBytes(currentPosition);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        return false;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    }<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    if (LOG.isTraceEnabled()) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      LOG.trace("Reached the end of log " + this.currentPath + ", and the length of the file is "<a name="line.256"></a>
+<span class="sourceLineNo">257</span>          + (stat == null ? "N/A" : stat.getLen()));<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    }<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    metrics.incrCompletedWAL();<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    return true;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>  }<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span>  private void dequeueCurrentLog() throws IOException {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    if (LOG.isDebugEnabled()) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>      LOG.debug("Reached the end of log " + currentPath);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    closeReader();<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    logQueue.remove();<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    setPosition(0);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    metrics.decrSizeOfLogQueue();<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>  private void readNextEntryAndSetPosition() throws IOException {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    Entry readEntry = reader.next();<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    long readerPos = reader.getPosition();<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    if (readEntry != null) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      metrics.incrLogEditsRead();<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      metrics.incrLogReadInBytes(readerPos - currentPosition);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    }<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    currentEntry = readEntry; // could be null<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    setPosition(readerPos);<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>  private void closeReader() throws IOException {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    if (reader != null) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      reader.close();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      reader = null;<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    }<a name="line.288"></a>
+<span class="sourceLineNo">289</span>  }<a name="line.289"></a>
+<span class="sourceLineNo">290</span><a name="line.290"></a>
+<span class="sourceLineNo">291</span>  // if we don't have a reader, open a reader on the next log<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  private boolean checkReader() throws IOException {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    if (reader == null) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      return openNextLog();<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    }<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    return true;<a name="line.296"></a>
+<span class="sourceLineNo">297</span>  }<a name="line.297"></a>
+<span class="sourceLineNo">298</span><a name="line.298"></a>
+<span class="sourceLineNo">299</span>  // open a reader on the next log in queue<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  private boolean openNextLog() throws IOException {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    Path nextPath = logQueue.peek();<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    if (nextPath != null) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      openReader(nextPath);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      if (reader != null) return true;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    return false;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>  }<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>  private Path getArchivedLog(Path path) throws IOException {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    Path rootDir = FSUtils.getRootDir(conf);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    Path oldLogDir = new Path(rootDir, HConstants.HREGION_OLDLOGDIR_NAME);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    Path archivedLogLocation = new Path(oldLogDir, path.getName());<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    if (fs.exists(archivedLogLocation)) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      LOG.info("Log " + path + " was moved to " + archivedLogLocation);<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      return archivedLogLocation;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    } else {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      LOG.error("Couldn't locate log: " + path);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      return path;<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
+<span class="sourceLineNo">320</span>  }<a name="line.320"></a>
+<span class="sourceLineNo">321</span><a name="line.321"></a>
+<span class="sourceLineNo">322</span>  private void handleFileNotFound(Path path, FileNotFoundException fnfe) throws IOException {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    // If the log was archived, continue reading from there<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    Path archivedLog = getArchivedLog(path);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    if (!path.equals(archivedLog)) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      openReader(archivedLog);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    } else {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      throw fnfe;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    }<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>  private void openReader(Path path) throws IOException {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    try {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      // Detect if this is a new file, if so get a new reader else<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      // reset the current reader so that we see the new data<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      if (reader == null || !getCurrentPath().equals(path)) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        closeReader();<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        reader = WALFactory.createReader(fs, path, conf);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        seek();<a name="line.338"></a>
+<span class="sourceLineNo">339</span>        setCurrentPath(path);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      } else {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        resetReader();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      }<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    } catch (FileNotFoundException fnfe) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      handleFileNotFound(path, fnfe);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    }  catch (RemoteException re) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      IOException ioe = re.unwrapRemoteException(FileNotFoundException.class);<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      if (!(ioe instanceof FileNotFoundException)) throw ioe;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      handleFileNotFound(path, (FileNotFoundException)ioe);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    } catch (LeaseNotRecoveredException lnre) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>      // HBASE-15019 the WAL was not closed due to some hiccup.<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      LOG.warn("Try to recover the WAL lease " + currentPath, lnre);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      recoverLease(conf, currentPath);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      reader = null;<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    } catch (NullPointerException npe) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      // Workaround for race condition in HDFS-4380<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      // which throws a NPE if we open a file before any data node has the most recent block<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      // Just sleep and retry. Will require re-reading compressed WALs for compressionContext.<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      LOG.warn("Got NPE opening reader, will retry.");<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      reader = null;<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>  // For HBASE-15019<a name="line.363"></a>
+<span class="sourceLineNo">364</span>  private void recoverLease(final Configuration conf, final Path path) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    try {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      final FileSystem dfs = FSUtils.getCurrentFileSystem(conf);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      FSUtils fsUtils = FSUtils.getInstance(dfs, conf);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      fsUtils.recoverFileLease(dfs, path, conf, new CancelableProgressable() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        @Override<a name="line.369"></a>
+<span class="sourceLineNo">370</span>        public boolean progress() {<a name="line.370"></a>
+<span class="sourceLineNo">371</span>          LOG.debug("recover WAL lease: " + path);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>          return true;<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>    } catch (IOException e) {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      LOG.warn("unable to recover lease for WAL: " + path, e);<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>  private void resetReader() throws IOException {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    try {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>      reader.reset();<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      seek();<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    } catch (FileNotFoundException fnfe) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      // If the log was archived, continue reading from there<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      Path archivedLog = getArchivedLog(currentPath);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      if (!currentPath.equals(archivedLog)) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        openReader(archivedLog);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      } else {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        throw fnfe;<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      }<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    } catch (NullPointerException npe) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      throw new IOException("NPE resetting reader, likely HDFS-4380", npe);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    }<a name="line.394"></a>
+<span class="sourceLineNo">395</span>  }<a name="line.395"></a>
+<span class="sourceLineNo">396</span><a name="line.396"></a>
+<span class="sourceLineNo">397</span>  private void seek() throws IOException {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    if (currentPosition != 0) {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>      reader.seek(currentPosition);<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    }<a name="line.400"></a>
+<span class="sourceLineNo">401</span>  }<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>  private long currentTrailerSize() {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    long size = -1L;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    if (reader instanceof ProtobufLogReader) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      final ProtobufLogReader pblr = (ProtobufLogReader) reader;<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      size = pblr.trailerSize();<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    }<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    return size;<a name="line.409"></a>
+<span class="sourceLineNo">410</span>  }<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>  @InterfaceAudience.Private<a name="line.412"></a>
+<span class="sourceLineNo">413</span>  public static class WALEntryStreamRuntimeException extends RuntimeException {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    private static final long serialVersionUID = -6298201811259982568L;<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>    public WALEntryStreamRuntimeException(Exception e) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>      super(e);<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    }<a name="line.418"></a>
+<span class="sourceLineNo">419</span>  }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>}<a name="line.421"></a>
 
 
 

[15/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html
index 883a87d..6eb57fa 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html
@@ -54,1801 +54,1804 @@
 <span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.RegionStateListener;<a name="line.46"></a>
 <span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.ServerName;<a name="line.47"></a>
 <span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.TableName;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.exceptions.UnexpectedStateException;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.master.balancer.FavoredStochasticBalancer;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.master.AssignmentListener;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.master.LoadBalancer;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.master.MetricsAssignmentManager;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.master.NoSuchProcedureException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.master.RegionPlan;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.master.RegionState;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.master.RegionState.State;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.master.ServerListener;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.master.TableStateManager;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.ServerState;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.ServerStateNode;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>// TODO: why are they here?<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.master.procedure.ProcedureSyncWait;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.master.procedure.ServerCrashProcedure;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.procedure2.ProcedureEvent;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.procedure2.ProcedureInMemoryChore;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.procedure2.util.StringUtils;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionRequest;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionResponse;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.util.VersionInfo;<a name="line.88"></a>
-<span class="sourceLineNo">089</span><a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.com.google.common.annotations.VisibleForTesting;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Lists;<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>/**<a name="line.93"></a>
-<span class="sourceLineNo">094</span> * The AssignmentManager is the coordinator for region assign/unassign operations.<a name="line.94"></a>
-<span class="sourceLineNo">095</span> * &lt;ul&gt;<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * &lt;li&gt;In-memory states of regions and servers are stored in {@link RegionStates}.&lt;/li&gt;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> * &lt;li&gt;hbase:meta state updates are handled by {@link RegionStateStore}.&lt;/li&gt;<a name="line.97"></a>
-<span class="sourceLineNo">098</span> * &lt;/ul&gt;<a name="line.98"></a>
-<span class="sourceLineNo">099</span> * Regions are created by CreateTable, Split, Merge.<a name="line.99"></a>
-<span class="sourceLineNo">100</span> * Regions are deleted by DeleteTable, Split, Merge.<a name="line.100"></a>
-<span class="sourceLineNo">101</span> * Assigns are triggered by CreateTable, EnableTable, Split, Merge, ServerCrash.<a name="line.101"></a>
-<span class="sourceLineNo">102</span> * Unassigns are triggered by DisableTable, Split, Merge<a name="line.102"></a>
-<span class="sourceLineNo">103</span> */<a name="line.103"></a>
-<span class="sourceLineNo">104</span>@InterfaceAudience.Private<a name="line.104"></a>
-<span class="sourceLineNo">105</span>public class AssignmentManager implements ServerListener {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  private static final Log LOG = LogFactory.getLog(AssignmentManager.class);<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>  // TODO: AMv2<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  //  - handle region migration from hbase1 to hbase2.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>  //  - handle sys table assignment first (e.g. acl, namespace)<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  //  - handle table priorities<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  //  - If ServerBusyException trying to update hbase:meta, we abort the Master<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  //   See updateRegionLocation in RegionStateStore.<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  //<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  // See also<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  // https://docs.google.com/document/d/1eVKa7FHdeoJ1-9o8yZcOTAQbv0u0bblBlCCzVSIn69g/edit#heading=h.ystjyrkbtoq5<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  // for other TODOs.<a name="line.117"></a>
-<span class="sourceLineNo">118</span><a name="line.118"></a>
-<span class="sourceLineNo">119</span>  public static final String BOOTSTRAP_THREAD_POOL_SIZE_CONF_KEY =<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      "hbase.assignment.bootstrap.thread.pool.size";<a name="line.120"></a>
-<span class="sourceLineNo">121</span><a name="line.121"></a>
-<span class="sourceLineNo">122</span>  public static final String ASSIGN_DISPATCH_WAIT_MSEC_CONF_KEY =<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      "hbase.assignment.dispatch.wait.msec";<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  private static final int DEFAULT_ASSIGN_DISPATCH_WAIT_MSEC = 150;<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>  public static final String ASSIGN_DISPATCH_WAITQ_MAX_CONF_KEY =<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      "hbase.assignment.dispatch.wait.queue.max.size";<a name="line.127"></a>
-<span class="sourceLineNo">128</span>  private static final int DEFAULT_ASSIGN_DISPATCH_WAITQ_MAX = 100;<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span>  public static final String RIT_CHORE_INTERVAL_MSEC_CONF_KEY =<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      "hbase.assignment.rit.chore.interval.msec";<a name="line.131"></a>
-<span class="sourceLineNo">132</span>  private static final int DEFAULT_RIT_CHORE_INTERVAL_MSEC = 5 * 1000;<a name="line.132"></a>
-<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>  public static final String ASSIGN_MAX_ATTEMPTS =<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      "hbase.assignment.maximum.attempts";<a name="line.135"></a>
-<span class="sourceLineNo">136</span>  private static final int DEFAULT_ASSIGN_MAX_ATTEMPTS = 10;<a name="line.136"></a>
-<span class="sourceLineNo">137</span><a name="line.137"></a>
-<span class="sourceLineNo">138</span>  /** Region in Transition metrics threshold time */<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  public static final String METRICS_RIT_STUCK_WARNING_THRESHOLD =<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      "hbase.metrics.rit.stuck.warning.threshold";<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  private static final int DEFAULT_RIT_STUCK_WARNING_THRESHOLD = 60 * 1000;<a name="line.141"></a>
-<span class="sourceLineNo">142</span><a name="line.142"></a>
-<span class="sourceLineNo">143</span>  private final ProcedureEvent&lt;?&gt; metaInitializedEvent = new ProcedureEvent&lt;&gt;("meta initialized");<a name="line.143"></a>
-<span class="sourceLineNo">144</span>  private final ProcedureEvent&lt;?&gt; metaLoadEvent = new ProcedureEvent&lt;&gt;("meta load");<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>   * Indicator that AssignmentManager has recovered the region states so<a name="line.147"></a>
-<span class="sourceLineNo">148</span>   * that ServerCrashProcedure can be fully enabled and re-assign regions<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   * of dead servers. So that when re-assignment happens, AssignmentManager<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   * has proper region states.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   */<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  private final ProcedureEvent&lt;?&gt; failoverCleanupDone = new ProcedureEvent&lt;&gt;("failover cleanup");<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>  /** Listeners that are called on assignment events. */<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  private final CopyOnWriteArrayList&lt;AssignmentListener&gt; listeners =<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      new CopyOnWriteArrayList&lt;AssignmentListener&gt;();<a name="line.156"></a>
-<span class="sourceLineNo">157</span><a name="line.157"></a>
-<span class="sourceLineNo">158</span>  // TODO: why is this different from the listeners (carried over from the old AM)<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  private RegionStateListener regionStateListener;<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  private RegionNormalizer regionNormalizer;<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>  private final MetricsAssignmentManager metrics;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  private final RegionInTransitionChore ritChore;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private final MasterServices master;<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  private final AtomicBoolean running = new AtomicBoolean(false);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private final RegionStates regionStates = new RegionStates();<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  private final RegionStateStore regionStateStore;<a name="line.169"></a>
-<span class="sourceLineNo">170</span><a name="line.170"></a>
-<span class="sourceLineNo">171</span>  private final boolean shouldAssignRegionsWithFavoredNodes;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>  private final int assignDispatchWaitQueueMaxSize;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  private final int assignDispatchWaitMillis;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  private final int assignMaxAttempts;<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>  private final Object checkIfShouldMoveSystemRegionLock = new Object();<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>  private Thread assignThread;<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>  public AssignmentManager(final MasterServices master) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    this(master, new RegionStateStore(master));<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>  public AssignmentManager(final MasterServices master, final RegionStateStore stateStore) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    this.master = master;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    this.regionStateStore = stateStore;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    this.metrics = new MetricsAssignmentManager();<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>    final Configuration conf = master.getConfiguration();<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>    // Only read favored nodes if using the favored nodes load balancer.<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    this.shouldAssignRegionsWithFavoredNodes = FavoredStochasticBalancer.class.isAssignableFrom(<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        conf.getClass(HConstants.HBASE_MASTER_LOADBALANCER_CLASS, Object.class));<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>    this.assignDispatchWaitMillis = conf.getInt(ASSIGN_DISPATCH_WAIT_MSEC_CONF_KEY,<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        DEFAULT_ASSIGN_DISPATCH_WAIT_MSEC);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    this.assignDispatchWaitQueueMaxSize = conf.getInt(ASSIGN_DISPATCH_WAITQ_MAX_CONF_KEY,<a name="line.197"></a>
-<span class="sourceLineNo">198</span>        DEFAULT_ASSIGN_DISPATCH_WAITQ_MAX);<a name="line.198"></a>
-<span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span>    this.assignMaxAttempts = Math.max(1, conf.getInt(ASSIGN_MAX_ATTEMPTS,<a name="line.200"></a>
-<span class="sourceLineNo">201</span>        DEFAULT_ASSIGN_MAX_ATTEMPTS));<a name="line.201"></a>
-<span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>    int ritChoreInterval = conf.getInt(RIT_CHORE_INTERVAL_MSEC_CONF_KEY,<a name="line.203"></a>
-<span class="sourceLineNo">204</span>        DEFAULT_RIT_CHORE_INTERVAL_MSEC);<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    this.ritChore = new RegionInTransitionChore(ritChoreInterval);<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>    // Used for region related procedure.<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    setRegionNormalizer(master.getRegionNormalizer());<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>  public void start() throws IOException {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    if (!running.compareAndSet(false, true)) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      return;<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>    LOG.info("Starting assignment manager");<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>    // Register Server Listener<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    master.getServerManager().registerListener(this);<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>    // Start the RegionStateStore<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    regionStateStore.start();<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span>    // Start the Assignment Thread<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    startAssignmentThread();<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  }<a name="line.226"></a>
-<span class="sourceLineNo">227</span><a name="line.227"></a>
-<span class="sourceLineNo">228</span>  public void stop() {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    if (!running.compareAndSet(true, false)) {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      return;<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>    LOG.info("Stopping assignment manager");<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>    // The AM is started before the procedure executor,<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    // but the actual work will be loaded/submitted only once we have the executor<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    final boolean hasProcExecutor = master.getMasterProcedureExecutor() != null;<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>    // Remove the RIT chore<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    if (hasProcExecutor) {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      master.getMasterProcedureExecutor().removeChore(this.ritChore);<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>    // Stop the Assignment Thread<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    stopAssignmentThread();<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>    // Stop the RegionStateStore<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    regionStates.clear();<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    regionStateStore.stop();<a name="line.249"></a>
-<span class="sourceLineNo">250</span><a name="line.250"></a>
-<span class="sourceLineNo">251</span>    // Unregister Server Listener<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    master.getServerManager().unregisterListener(this);<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span>    // Update meta events (for testing)<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    if (hasProcExecutor) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      getProcedureScheduler().suspendEvent(metaLoadEvent);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      setFailoverCleanupDone(false);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      for (HRegionInfo hri: getMetaRegionSet()) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        setMetaInitialized(hri, false);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    }<a name="line.261"></a>
-<span class="sourceLineNo">262</span>  }<a name="line.262"></a>
-<span class="sourceLineNo">263</span><a name="line.263"></a>
-<span class="sourceLineNo">264</span>  public boolean isRunning() {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    return running.get();<a name="line.265"></a>
-<span class="sourceLineNo">266</span>  }<a name="line.266"></a>
-<span class="sourceLineNo">267</span><a name="line.267"></a>
-<span class="sourceLineNo">268</span>  public Configuration getConfiguration() {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    return master.getConfiguration();<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>  public MetricsAssignmentManager getAssignmentManagerMetrics() {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    return metrics;<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  }<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>  private LoadBalancer getBalancer() {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    return master.getLoadBalancer();<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  }<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  private MasterProcedureEnv getProcedureEnvironment() {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    return master.getMasterProcedureExecutor().getEnvironment();<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>  private MasterProcedureScheduler getProcedureScheduler() {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    return getProcedureEnvironment().getProcedureScheduler();<a name="line.285"></a>
-<span class="sourceLineNo">286</span>  }<a name="line.286"></a>
-<span class="sourceLineNo">287</span><a name="line.287"></a>
-<span class="sourceLineNo">288</span>  protected int getAssignMaxAttempts() {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    return assignMaxAttempts;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>  }<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>  /**<a name="line.292"></a>
-<span class="sourceLineNo">293</span>   * Add the listener to the notification list.<a name="line.293"></a>
-<span class="sourceLineNo">294</span>   * @param listener The AssignmentListener to register<a name="line.294"></a>
-<span class="sourceLineNo">295</span>   */<a name="line.295"></a>
-<span class="sourceLineNo">296</span>  public void registerListener(final AssignmentListener listener) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    this.listeners.add(listener);<a name="line.297"></a>
-<span class="sourceLineNo">298</span>  }<a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>  /**<a name="line.300"></a>
-<span class="sourceLineNo">301</span>   * Remove the listener from the notification list.<a name="line.301"></a>
-<span class="sourceLineNo">302</span>   * @param listener The AssignmentListener to unregister<a name="line.302"></a>
-<span class="sourceLineNo">303</span>   */<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  public boolean unregisterListener(final AssignmentListener listener) {<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return this.listeners.remove(listener);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  public void setRegionStateListener(final RegionStateListener listener) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    this.regionStateListener = listener;<a name="line.309"></a>
-<span class="sourceLineNo">310</span>  }<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>  public void setRegionNormalizer(final RegionNormalizer normalizer) {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    this.regionNormalizer = normalizer;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>  }<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>  public RegionNormalizer getRegionNormalizer() {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    return regionNormalizer;<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>  public RegionStates getRegionStates() {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    return regionStates;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span>  public RegionStateStore getRegionStateStore() {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    return regionStateStore;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>  }<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>  public List&lt;ServerName&gt; getFavoredNodes(final HRegionInfo regionInfo) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    return this.shouldAssignRegionsWithFavoredNodes?<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        ((FavoredStochasticBalancer)getBalancer()).getFavoredNodes(regionInfo):<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          ServerName.EMPTY_SERVER_LIST;<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>  // ============================================================================================<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  //  Table State Manager helpers<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  // ============================================================================================<a name="line.336"></a>
-<span class="sourceLineNo">337</span>  TableStateManager getTableStateManager() {<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    return master.getTableStateManager();<a name="line.338"></a>
-<span class="sourceLineNo">339</span>  }<a name="line.339"></a>
-<span class="sourceLineNo">340</span><a name="line.340"></a>
-<span class="sourceLineNo">341</span>  public boolean isTableEnabled(final TableName tableName) {<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    return getTableStateManager().isTableState(tableName, TableState.State.ENABLED);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  }<a name="line.343"></a>
-<span class="sourceLineNo">344</span><a name="line.344"></a>
-<span class="sourceLineNo">345</span>  public boolean isTableDisabled(final TableName tableName) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    return getTableStateManager().isTableState(tableName,<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      TableState.State.DISABLED, TableState.State.DISABLING);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
-<span class="sourceLineNo">349</span><a name="line.349"></a>
-<span class="sourceLineNo">350</span>  // ============================================================================================<a name="line.350"></a>
-<span class="sourceLineNo">351</span>  //  META Helpers<a name="line.351"></a>
-<span class="sourceLineNo">352</span>  // ============================================================================================<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  private boolean isMetaRegion(final HRegionInfo regionInfo) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return regionInfo.isMetaRegion();<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>  public boolean isMetaRegion(final byte[] regionName) {<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    return getMetaRegionFromName(regionName) != null;<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>  public HRegionInfo getMetaRegionFromName(final byte[] regionName) {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    for (HRegionInfo hri: getMetaRegionSet()) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      if (Bytes.equals(hri.getRegionName(), regionName)) {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>        return hri;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      }<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    }<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    return null;<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>  public boolean isCarryingMeta(final ServerName serverName) {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    for (HRegionInfo hri: getMetaRegionSet()) {<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      if (isCarryingRegion(serverName, hri)) {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>        return true;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      }<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return false;<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  private boolean isCarryingRegion(final ServerName serverName, final HRegionInfo regionInfo) {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    // TODO: check for state?<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    final RegionStateNode node = regionStates.getRegionNode(regionInfo);<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    return(node != null &amp;&amp; serverName.equals(node.getRegionLocation()));<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>  private HRegionInfo getMetaForRegion(final HRegionInfo regionInfo) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    //if (regionInfo.isMetaRegion()) return regionInfo;<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    // TODO: handle multiple meta. if the region provided is not meta lookup<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    // which meta the region belongs to.<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    return HRegionInfo.FIRST_META_REGIONINFO;<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>  // TODO: handle multiple meta.<a name="line.392"></a>
-<span class="sourceLineNo">393</span>  private static final Set&lt;HRegionInfo&gt; META_REGION_SET =<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      Collections.singleton(HRegionInfo.FIRST_META_REGIONINFO);<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  public Set&lt;HRegionInfo&gt; getMetaRegionSet() {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    return META_REGION_SET;<a name="line.396"></a>
-<span class="sourceLineNo">397</span>  }<a name="line.397"></a>
-<span class="sourceLineNo">398</span><a name="line.398"></a>
-<span class="sourceLineNo">399</span>  // ============================================================================================<a name="line.399"></a>
-<span class="sourceLineNo">400</span>  //  META Event(s) helpers<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  // ============================================================================================<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  public boolean isMetaInitialized() {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    return metaInitializedEvent.isReady();<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>  public boolean isMetaRegionInTransition() {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    return !isMetaInitialized();<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>  public boolean waitMetaInitialized(final Procedure proc) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    // TODO: handle multiple meta. should this wait on all meta?<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    // this is used by the ServerCrashProcedure...<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    return waitMetaInitialized(proc, HRegionInfo.FIRST_META_REGIONINFO);<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>  public boolean waitMetaInitialized(final Procedure proc, final HRegionInfo regionInfo) {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    return getProcedureScheduler().waitEvent(<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      getMetaInitializedEvent(getMetaForRegion(regionInfo)), proc);<a name="line.418"></a>
-<span class="sourceLineNo">419</span>  }<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>  private void setMetaInitialized(final HRegionInfo metaRegionInfo, final boolean isInitialized) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    assert isMetaRegion(metaRegionInfo) : "unexpected non-meta region " + metaRegionInfo;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    final ProcedureEvent metaInitEvent = getMetaInitializedEvent(metaRegionInfo);<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    if (isInitialized) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      getProcedureScheduler().wakeEvent(metaInitEvent);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    } else {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      getProcedureScheduler().suspendEvent(metaInitEvent);<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>  private ProcedureEvent getMetaInitializedEvent(final HRegionInfo metaRegionInfo) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    assert isMetaRegion(metaRegionInfo) : "unexpected non-meta region " + metaRegionInfo;<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    // TODO: handle multiple meta.<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    return metaInitializedEvent;<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>  public boolean waitMetaLoaded(final Procedure proc) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    return getProcedureScheduler().waitEvent(metaLoadEvent, proc);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  }<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>  protected void wakeMetaLoadedEvent() {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    getProcedureScheduler().wakeEvent(metaLoadEvent);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    assert isMetaLoaded() : "expected meta to be loaded";<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>  public boolean isMetaLoaded() {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    return metaLoadEvent.isReady();<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>  //  TODO: Sync helpers<a name="line.451"></a>
-<span class="sourceLineNo">452</span>  // ============================================================================================<a name="line.452"></a>
-<span class="sourceLineNo">453</span>  public void assignMeta(final HRegionInfo metaRegionInfo) throws IOException {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    assignMeta(metaRegionInfo, null);<a name="line.454"></a>
-<span class="sourceLineNo">455</span>  }<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>  public void assignMeta(final HRegionInfo metaRegionInfo, final ServerName serverName)<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      throws IOException {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    assert isMetaRegion(metaRegionInfo) : "unexpected non-meta region " + metaRegionInfo;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    AssignProcedure proc;<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    if (serverName != null) {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      LOG.debug("Try assigning Meta " + metaRegionInfo + " to " + serverName);<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      proc = createAssignProcedure(metaRegionInfo, serverName);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    } else {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      LOG.debug("Assigning " + metaRegionInfo.getRegionNameAsString());<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      proc = createAssignProcedure(metaRegionInfo, false);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    ProcedureSyncWait.submitAndWaitProcedure(master.getMasterProcedureExecutor(), proc);<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>   * Start a new thread to check if there are region servers whose versions are higher than others.<a name="line.472"></a>
-<span class="sourceLineNo">473</span>   * If so, move all system table regions to RS with the highest version to keep compatibility.<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   * The reason is, RS in new version may not be able to access RS in old version when there are<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   * some incompatible changes.<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   */<a name="line.476"></a>
-<span class="sourceLineNo">477</span>  public void checkIfShouldMoveSystemRegionAsync() {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    new Thread(() -&gt; {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      try {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        synchronized (checkIfShouldMoveSystemRegionLock) {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>          List&lt;RegionPlan&gt; plans = new ArrayList&lt;&gt;();<a name="line.481"></a>
-<span class="sourceLineNo">482</span>          for (ServerName server : getExcludedServersForSystemTable()) {<a name="line.482"></a>
-<span class="sourceLineNo">483</span>            if (master.getServerManager().isServerDead(server)) {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>              // TODO: See HBASE-18494 and HBASE-18495. Though getExcludedServersForSystemTable()<a name="line.484"></a>
-<span class="sourceLineNo">485</span>              // considers only online servers, the server could be queued for dead server<a name="line.485"></a>
-<span class="sourceLineNo">486</span>              // processing. As region assignments for crashed server is handled by<a name="line.486"></a>
-<span class="sourceLineNo">487</span>              // ServerCrashProcedure, do NOT handle them here. The goal is to handle this through<a name="line.487"></a>
-<span class="sourceLineNo">488</span>              // regular flow of LoadBalancer as a favored node and not to have this special<a name="line.488"></a>
-<span class="sourceLineNo">489</span>              // handling.<a name="line.489"></a>
-<span class="sourceLineNo">490</span>              continue;<a name="line.490"></a>
-<span class="sourceLineNo">491</span>            }<a name="line.491"></a>
-<span class="sourceLineNo">492</span>            List&lt;HRegionInfo&gt; regionsShouldMove = getCarryingSystemTables(server);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>            if (!regionsShouldMove.isEmpty()) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>              for (HRegionInfo regionInfo : regionsShouldMove) {<a name="line.494"></a>
-<span class="sourceLineNo">495</span>                // null value for dest forces destination server to be selected by balancer<a name="line.495"></a>
-<span class="sourceLineNo">496</span>                RegionPlan plan = new RegionPlan(regionInfo, server, null);<a name="line.496"></a>
-<span class="sourceLineNo">497</span>                if (regionInfo.isMetaRegion()) {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>                  // Must move meta region first.<a name="line.498"></a>
-<span class="sourceLineNo">499</span>                  moveAsync(plan);<a name="line.499"></a>
-<span class="sourceLineNo">500</span>                } else {<a name="line.500"></a>
-<span class="sourceLineNo">501</span>                  plans.add(plan);<a name="line.501"></a>
-<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
-<span class="sourceLineNo">503</span>              }<a name="line.503"></a>
-<span class="sourceLineNo">504</span>            }<a name="line.504"></a>
-<span class="sourceLineNo">505</span>            for (RegionPlan plan : plans) {<a name="line.505"></a>
-<span class="sourceLineNo">506</span>              moveAsync(plan);<a name="line.506"></a>
-<span class="sourceLineNo">507</span>            }<a name="line.507"></a>
-<span class="sourceLineNo">508</span>          }<a name="line.508"></a>
-<span class="sourceLineNo">509</span>        }<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      } catch (Throwable t) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>        LOG.error(t);<a name="line.511"></a>
-<span class="sourceLineNo">512</span>      }<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    }).start();<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>  private List&lt;HRegionInfo&gt; getCarryingSystemTables(ServerName serverName) {<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    Set&lt;RegionStateNode&gt; regions = this.getRegionStates().getServerNode(serverName).getRegions();<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    if (regions == null) {<a name="line.518"></a>
-<span class="sourceLineNo">519</span>      return new ArrayList&lt;&gt;();<a name="line.519"></a>
-<span class="sourceLineNo">520</span>    }<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    return regions.stream()<a name="line.521"></a>
-<span class="sourceLineNo">522</span>        .map(RegionStateNode::getRegionInfo)<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        .filter(HRegionInfo::isSystemTable)<a name="line.523"></a>
-<span class="sourceLineNo">524</span>        .collect(Collectors.toList());<a name="line.524"></a>
-<span class="sourceLineNo">525</span>  }<a name="line.525"></a>
-<span class="sourceLineNo">526</span><a name="line.526"></a>
-<span class="sourceLineNo">527</span>  public void assign(final HRegionInfo regionInfo) throws IOException {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    assign(regionInfo, true);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>  }<a name="line.529"></a>
-<span class="sourceLineNo">530</span><a name="line.530"></a>
-<span class="sourceLineNo">531</span>  public void assign(final HRegionInfo regionInfo, final boolean forceNewPlan) throws IOException {<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    AssignProcedure proc = createAssignProcedure(regionInfo, forceNewPlan);<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    ProcedureSyncWait.submitAndWaitProcedure(master.getMasterProcedureExecutor(), proc);<a name="line.533"></a>
-<span class="sourceLineNo">534</span>  }<a name="line.534"></a>
-<span class="sourceLineNo">535</span><a name="line.535"></a>
-<span class="sourceLineNo">536</span>  public void unassign(final HRegionInfo regionInfo) throws IOException {<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    unassign(regionInfo, false);<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span>  public void unassign(final HRegionInfo regionInfo, final boolean forceNewPlan)<a name="line.540"></a>
-<span class="sourceLineNo">541</span>  throws IOException {<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    // TODO: rename this reassign<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    RegionStateNode node = this.regionStates.getRegionNode(regionInfo);<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    ServerName destinationServer = node.getRegionLocation();<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    if (destinationServer == null) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      throw new UnexpectedStateException("DestinationServer is null; Assigned? " + node.toString());<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    }<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    assert destinationServer != null; node.toString();<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    UnassignProcedure proc = createUnassignProcedure(regionInfo, destinationServer, forceNewPlan);<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    ProcedureSyncWait.submitAndWaitProcedure(master.getMasterProcedureExecutor(), proc);<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>  public Future&lt;byte[]&gt; moveAsync(final RegionPlan regionPlan) {<a name="line.553"></a>
-<span class="sourceLineNo">554</span>    MoveRegionProcedure proc = createMoveRegionProcedure(regionPlan);<a name="line.554"></a>
-<span class="sourceLineNo">555</span>    return ProcedureSyncWait.submitProcedure(master.getMasterProcedureExecutor(), proc);<a name="line.555"></a>
-<span class="sourceLineNo">556</span>  }<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>  @VisibleForTesting<a name="line.558"></a>
-<span class="sourceLineNo">559</span>  public boolean waitForAssignment(final HRegionInfo regionInfo) throws IOException {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    return waitForAssignment(regionInfo, Long.MAX_VALUE);<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>  @VisibleForTesting<a name="line.563"></a>
-<span class="sourceLineNo">564</span>  // TODO: Remove this?<a name="line.564"></a>
-<span class="sourceLineNo">565</span>  public boolean waitForAssignment(final HRegionInfo regionInfo, final long timeout)<a name="line.565"></a>
-<span class="sourceLineNo">566</span>  throws IOException {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    RegionStateNode node = null;<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    // This method can be called before the regionInfo has made it into the regionStateMap<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    // so wait around here a while.<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    long startTime = System.currentTimeMillis();<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    // Something badly wrong if takes ten seconds to register a region.<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    long endTime = startTime + 10000;<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    while ((node = regionStates.getRegionNode(regionInfo)) == null &amp;&amp; isRunning() &amp;&amp;<a name="line.573"></a>
-<span class="sourceLineNo">574</span>        System.currentTimeMillis() &lt; endTime) {<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      // Presume it not yet added but will be added soon. Let it spew a lot so we can tell if<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      // we are waiting here alot.<a name="line.576"></a>
-<span class="sourceLineNo">577</span>      LOG.debug("Waiting on " + regionInfo + " to be added to regionStateMap");<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      Threads.sleep(10);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    if (node == null) {<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      if (!isRunning()) return false;<a name="line.581"></a>
-<span class="sourceLineNo">582</span>      throw new RegionException(regionInfo.getRegionNameAsString() + " never registered with Assigment.");<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    }<a name="line.583"></a>
-<span class="sourceLineNo">584</span><a name="line.584"></a>
-<span class="sourceLineNo">585</span>    RegionTransitionProcedure proc = node.getProcedure();<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    if (proc == null) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      throw new NoSuchProcedureException(node.toString());<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>    ProcedureSyncWait.waitForProcedureToCompleteIOE(<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      master.getMasterProcedureExecutor(), proc.getProcId(), timeout);<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    return true;<a name="line.592"></a>
-<span class="sourceLineNo">593</span>  }<a name="line.593"></a>
-<span class="sourceLineNo">594</span><a name="line.594"></a>
-<span class="sourceLineNo">595</span>  // ============================================================================================<a name="line.595"></a>
-<span class="sourceLineNo">596</span>  //  RegionTransition procedures helpers<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>  public AssignProcedure[] createAssignProcedures(final Collection&lt;HRegionInfo&gt; regionInfo) {<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    return createAssignProcedures(regionInfo, false);<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>  public AssignProcedure[] createAssignProcedures(final Collection&lt;HRegionInfo&gt; regionInfo,<a name="line.603"></a>
-<span class="sourceLineNo">604</span>      final boolean forceNewPlan) {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    if (regionInfo.isEmpty()) return null;<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    final AssignProcedure[] procs = new AssignProcedure[regionInfo.size()];<a name="line.606"></a>
-<span class="sourceLineNo">607</span>    int index = 0;<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    for (HRegionInfo hri: regionInfo) {<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      procs[index++] = createAssignProcedure(hri, forceNewPlan);<a name="line.609"></a>
-<span class="sourceLineNo">610</span>    }<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    return procs;<a name="line.611"></a>
-<span class="sourceLineNo">612</span>  }<a name="line.612"></a>
-<span class="sourceLineNo">613</span><a name="line.613"></a>
-<span class="sourceLineNo">614</span>  // Needed for the following method so it can type the created Array we return<a name="line.614"></a>
-<span class="sourceLineNo">615</span>  private static final UnassignProcedure [] UNASSIGNED_PROCEDURE_FOR_TYPE_INFO =<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      new UnassignProcedure[0];<a name="line.616"></a>
-<span class="sourceLineNo">617</span><a name="line.617"></a>
-<span class="sourceLineNo">618</span>  UnassignProcedure[] createUnassignProcedures(final Collection&lt;RegionStateNode&gt; nodes) {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    if (nodes.isEmpty()) return null;<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    final List&lt;UnassignProcedure&gt; procs = new ArrayList&lt;UnassignProcedure&gt;(nodes.size());<a name="line.620"></a>
-<span class="sourceLineNo">621</span>    for (RegionStateNode node: nodes) {<a name="line.621"></a>
-<span class="sourceLineNo">622</span>      if (!this.regionStates.include(node, false)) continue;<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      // Look for regions that are offline/closed; i.e. already unassigned.<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      if (this.regionStates.isRegionOffline(node.getRegionInfo())) continue;<a name="line.624"></a>
-<span class="sourceLineNo">625</span>      assert node.getRegionLocation() != null: node.toString();<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      procs.add(createUnassignProcedure(node.getRegionInfo(), node.getRegionLocation(), false));<a name="line.626"></a>
-<span class="sourceLineNo">627</span>    }<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    return procs.toArray(UNASSIGNED_PROCEDURE_FOR_TYPE_INFO);<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>  public MoveRegionProcedure[] createReopenProcedures(final Collection&lt;HRegionInfo&gt; regionInfo) {<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    final MoveRegionProcedure[] procs = new MoveRegionProcedure[regionInfo.size()];<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    int index = 0;<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    for (HRegionInfo hri: regionInfo) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      final ServerName serverName = regionStates.getRegionServerOfRegion(hri);<a name="line.635"></a>
-<span class="sourceLineNo">636</span>      final RegionPlan plan = new RegionPlan(hri, serverName, serverName);<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      procs[index++] = createMoveRegionProcedure(plan);<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    }<a name="line.638"></a>
-<span class="sourceLineNo">639</span>    return procs;<a name="line.639"></a>
-<span class="sourceLineNo">640</span>  }<a name="line.640"></a>
-<span class="sourceLineNo">641</span><a name="line.641"></a>
-<span class="sourceLineNo">642</span>  /**<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * Called by things like EnableTableProcedure to get a list of AssignProcedure<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   * to assign the regions of the table.<a name="line.644"></a>
-<span class="sourceLineNo">645</span>   */<a name="line.645"></a>
-<span class="sourceLineNo">646</span>  public AssignProcedure[] createAssignProcedures(final TableName tableName) {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    return createAssignProcedures(regionStates.getRegionsOfTable(tableName));<a name="line.647"></a>
-<span class="sourceLineNo">648</span>  }<a name="line.648"></a>
-<span class="sourceLineNo">649</span><a name="line.649"></a>
-<span class="sourceLineNo">650</span>  /**<a name="line.650"></a>
-<span class="sourceLineNo">651</span>   * Called by things like DisableTableProcedure to get a list of UnassignProcedure<a name="line.651"></a>
-<span class="sourceLineNo">652</span>   * to unassign the regions of the table.<a name="line.652"></a>
-<span class="sourceLineNo">653</span>   */<a name="line.653"></a>
-<span class="sourceLineNo">654</span>  public UnassignProcedure[] createUnassignProcedures(final TableName tableName) {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    return createUnassignProcedures(regionStates.getTableRegionStateNodes(tableName));<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
-<span class="sourceLineNo">657</span><a name="line.657"></a>
-<span class="sourceLineNo">658</span>  /**<a name="line.658"></a>
-<span class="sourceLineNo">659</span>   * Called by things like ModifyColumnFamilyProcedure to get a list of MoveRegionProcedure<a name="line.659"></a>
-<span class="sourceLineNo">660</span>   * to reopen the regions of the table.<a name="line.660"></a>
-<span class="sourceLineNo">661</span>   */<a name="line.661"></a>
-<span class="sourceLineNo">662</span>  public MoveRegionProcedure[] createReopenProcedures(final TableName tableName) {<a name="line.662"></a>
-<span class="sourceLineNo">663</span>    return createReopenProcedures(regionStates.getRegionsOfTable(tableName));<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>  public AssignProcedure createAssignProcedure(final HRegionInfo regionInfo,<a name="line.666"></a>
-<span class="sourceLineNo">667</span>      final boolean forceNewPlan) {<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    AssignProcedure proc = new AssignProcedure(regionInfo, forceNewPlan);<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    proc.setOwner(getProcedureEnvironment().getRequestUser().getShortName());<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    return proc;<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>  public AssignProcedure createAssignProcedure(final HRegionInfo regionInfo,<a name="line.673"></a>
-<span class="sourceLineNo">674</span>      final ServerName targetServer) {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>    AssignProcedure proc = new AssignProcedure(regionInfo, targetServer);<a name="line.675"></a>
-<span class="sourceLineNo">676</span>    proc.setOwner(getProcedureEnvironment().getRequestUser().getShortName());<a name="line.676"></a>
-<span class="sourceLineNo">677</span>    return proc;<a name="line.677"></a>
-<span class="sourceLineNo">678</span>  }<a name="line.678"></a>
-<span class="sourceLineNo">679</span><a name="line.679"></a>
-<span class="sourceLineNo">680</span>  public UnassignProcedure createUnassignProcedure(final HRegionInfo regionInfo,<a name="line.680"></a>
-<span class="sourceLineNo">681</span>      final ServerName destinationServer, final boolean force) {<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    // If destinationServer is null, figure it.<a name="line.682"></a>
-<span class="sourceLineNo">683</span>    ServerName sn = destinationServer != null? destinationServer:<a name="line.683"></a>
-<span class="sourceLineNo">684</span>      getRegionStates().getRegionState(regionInfo).getServerName();<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    assert sn != null;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    UnassignProcedure proc = new UnassignProcedure(regionInfo, sn, force);<a name="line.686"></a>
-<span class="sourceLineNo">687</span>    proc.setOwner(getProcedureEnvironment().getRequestUser().getShortName());<a name="line.687"></a>
-<span class="sourceLineNo">688</span>    return proc;<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>  public MoveRegionProcedure createMoveRegionProcedure(final RegionPlan plan) {<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    if (plan.getRegionInfo().isSystemTable()) {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>      List&lt;ServerName&gt; exclude = getExcludedServersForSystemTable();<a name="line.693"></a>
-<span class="sourceLineNo">694</span>      if (plan.getDestination() != null &amp;&amp; exclude.contains(plan.getDestination())) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>        try {<a name="line.695"></a>
-<span class="sourceLineNo">696</span>          LOG.info("Can not move " + plan.getRegionInfo() + " to " + plan.getDestination()<a name="line.696"></a>
-<span class="sourceLineNo">697</span>              + " because the server is not with highest version");<a name="line.697"></a>
-<span class="sourceLineNo">698</span>          plan.setDestination(getBalancer().randomAssignment(plan.getRegionInfo(),<a name="line.698"></a>
-<span class="sourceLineNo">699</span>              this.master.getServerManager().createDestinationServersList(exclude)));<a name="line.699"></a>
-<span class="sourceLineNo">700</span>        } catch (HBaseIOException e) {<a name="line.700"></a>
-<span class="sourceLineNo">701</span>          LOG.warn(e);<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>    }<a name="line.704"></a>
-<span class="sourceLineNo">705</span>    return new MoveRegionProcedure(getProcedureEnvironment(), plan);<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">049</span>import org.apache.hadoop.hbase.YouAreDeadException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.exceptions.UnexpectedStateException;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.master.balancer.FavoredStochasticBalancer;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.master.AssignmentListener;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.master.LoadBalancer;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.master.MetricsAssignmentManager;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.master.NoSuchProcedureException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.master.RegionPlan;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.master.RegionState;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.master.RegionState.State;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.master.ServerListener;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.master.TableStateManager;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.ServerState;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.ServerStateNode;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>// TODO: why are they here?<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.master.procedure.ProcedureSyncWait;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.master.procedure.ServerCrashProcedure;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.procedure2.ProcedureEvent;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.procedure2.ProcedureInMemoryChore;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.procedure2.util.StringUtils;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.util.VersionInfo;<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.com.google.common.annotations.VisibleForTesting;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Lists;<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> * The AssignmentManager is the coordinator for region assign/unassign operations.<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * &lt;ul&gt;<a name="line.96"></a>
+<span class="sourceLineNo">097</span> * &lt;li&gt;In-memory states of regions and servers are stored in {@link RegionStates}.&lt;/li&gt;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> * &lt;li&gt;hbase:meta state updates are handled by {@link RegionStateStore}.&lt;/li&gt;<a name="line.98"></a>
+<span class="sourceLineNo">099</span> * &lt;/ul&gt;<a name="line.99"></a>
+<span class="sourceLineNo">100</span> * Regions are created by CreateTable, Split, Merge.<a name="line.100"></a>
+<span class="sourceLineNo">101</span> * Regions are deleted by DeleteTable, Split, Merge.<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * Assigns are triggered by CreateTable, EnableTable, Split, Merge, ServerCrash.<a name="line.102"></a>
+<span class="sourceLineNo">103</span> * Unassigns are triggered by DisableTable, Split, Merge<a name="line.103"></a>
+<span class="sourceLineNo">104</span> */<a name="line.104"></a>
+<span class="sourceLineNo">105</span>@InterfaceAudience.Private<a name="line.105"></a>
+<span class="sourceLineNo">106</span>public class AssignmentManager implements ServerListener {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  private static final Log LOG = LogFactory.getLog(AssignmentManager.class);<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  // TODO: AMv2<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  //  - handle region migration from hbase1 to hbase2.<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  //  - handle sys table assignment first (e.g. acl, namespace)<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  //  - handle table priorities<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  //  - If ServerBusyException trying to update hbase:meta, we abort the Master<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  //   See updateRegionLocation in RegionStateStore.<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  //<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  // See also<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  // https://docs.google.com/document/d/1eVKa7FHdeoJ1-9o8yZcOTAQbv0u0bblBlCCzVSIn69g/edit#heading=h.ystjyrkbtoq5<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  // for other TODOs.<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>  public static final String BOOTSTRAP_THREAD_POOL_SIZE_CONF_KEY =<a name="line.120"></a>
+<span class="sourceLineNo">121</span>      "hbase.assignment.bootstrap.thread.pool.size";<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>  public static final String ASSIGN_DISPATCH_WAIT_MSEC_CONF_KEY =<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      "hbase.assignment.dispatch.wait.msec";<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  private static final int DEFAULT_ASSIGN_DISPATCH_WAIT_MSEC = 150;<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>  public static final String ASSIGN_DISPATCH_WAITQ_MAX_CONF_KEY =<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      "hbase.assignment.dispatch.wait.queue.max.size";<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  private static final int DEFAULT_ASSIGN_DISPATCH_WAITQ_MAX = 100;<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>  public static final String RIT_CHORE_INTERVAL_MSEC_CONF_KEY =<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      "hbase.assignment.rit.chore.interval.msec";<a name="line.132"></a>
+<span class="sourceLineNo">133</span>  private static final int DEFAULT_RIT_CHORE_INTERVAL_MSEC = 5 * 1000;<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>  public static final String ASSIGN_MAX_ATTEMPTS =<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      "hbase.assignment.maximum.attempts";<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  private static final int DEFAULT_ASSIGN_MAX_ATTEMPTS = 10;<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>  /** Region in Transition metrics threshold time */<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  public static final String METRICS_RIT_STUCK_WARNING_THRESHOLD =<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      "hbase.metrics.rit.stuck.warning.threshold";<a name="line.141"></a>
+<span class="sourceLineNo">142</span>  private static final int DEFAULT_RIT_STUCK_WARNING_THRESHOLD = 60 * 1000;<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>  private final ProcedureEvent&lt;?&gt; metaInitializedEvent = new ProcedureEvent&lt;&gt;("meta initialized");<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  private final ProcedureEvent&lt;?&gt; metaLoadEvent = new ProcedureEvent&lt;&gt;("meta load");<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>   * Indicator that AssignmentManager has recovered the region states so<a name="line.148"></a>
+<span class="sourceLineNo">149</span>   * that ServerCrashProcedure can be fully enabled and re-assign regions<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   * of dead servers. So that when re-assignment happens, AssignmentManager<a name="line.150"></a>
+<span class="sourceLineNo">151</span>   * has proper region states.<a name="line.151"></a>
+<span class="sourceLineNo">152</span>   */<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  private final ProcedureEvent&lt;?&gt; failoverCleanupDone = new ProcedureEvent&lt;&gt;("failover cleanup");<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  /** Listeners that are called on assignment events. */<a name="line.155"></a>
+<span class="sourceLineNo">156</span>  private final CopyOnWriteArrayList&lt;AssignmentListener&gt; listeners =<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      new CopyOnWriteArrayList&lt;AssignmentListener&gt;();<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  // TODO: why is this different from the listeners (carried over from the old AM)<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  private RegionStateListener regionStateListener;<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>  private RegionNormalizer regionNormalizer;<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>  private final MetricsAssignmentManager metrics;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  private final RegionInTransitionChore ritChore;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  private final MasterServices master;<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>  private final AtomicBoolean running = new AtomicBoolean(false);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  private final RegionStates regionStates = new RegionStates();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  private final RegionStateStore regionStateStore;<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>  private final boolean shouldAssignRegionsWithFavoredNodes;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  private final int assignDispatchWaitQueueMaxSize;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  private final int assignDispatchWaitMillis;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  private final int assignMaxAttempts;<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>  private final Object checkIfShouldMoveSystemRegionLock = new Object();<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>  private Thread assignThread;<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>  public AssignmentManager(final MasterServices master) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    this(master, new RegionStateStore(master));<a name="line.182"></a>
+<span class="sourceLineNo">183</span>  }<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>  public AssignmentManager(final MasterServices master, final RegionStateStore stateStore) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    this.master = master;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    this.regionStateStore = stateStore;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    this.metrics = new MetricsAssignmentManager();<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>    final Configuration conf = master.getConfiguration();<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>    // Only read favored nodes if using the favored nodes load balancer.<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    this.shouldAssignRegionsWithFavoredNodes = FavoredStochasticBalancer.class.isAssignableFrom(<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        conf.getClass(HConstants.HBASE_MASTER_LOADBALANCER_CLASS, Object.class));<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>    this.assignDispatchWaitMillis = conf.getInt(ASSIGN_DISPATCH_WAIT_MSEC_CONF_KEY,<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        DEFAULT_ASSIGN_DISPATCH_WAIT_MSEC);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    this.assignDispatchWaitQueueMaxSize = conf.getInt(ASSIGN_DISPATCH_WAITQ_MAX_CONF_KEY,<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        DEFAULT_ASSIGN_DISPATCH_WAITQ_MAX);<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>    this.assignMaxAttempts = Math.max(1, conf.getInt(ASSIGN_MAX_ATTEMPTS,<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        DEFAULT_ASSIGN_MAX_ATTEMPTS));<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>    int ritChoreInterval = conf.getInt(RIT_CHORE_INTERVAL_MSEC_CONF_KEY,<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        DEFAULT_RIT_CHORE_INTERVAL_MSEC);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    this.ritChore = new RegionInTransitionChore(ritChoreInterval);<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>    // Used for region related procedure.<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    setRegionNormalizer(master.getRegionNormalizer());<a name="line.209"></a>
+<span class="sourceLineNo">210</span>  }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>  public void start() throws IOException {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    if (!running.compareAndSet(false, true)) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      return;<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>    LOG.info("Starting assignment manager");<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>    // Register Server Listener<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    master.getServerManager().registerListener(this);<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>    // Start the RegionStateStore<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    regionStateStore.start();<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>    // Start the Assignment Thread<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    startAssignmentThread();<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  }<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>  public void stop() {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    if (!running.compareAndSet(true, false)) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      return;<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>    LOG.info("Stopping assignment manager");<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>    // The AM is started before the procedure executor,<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    // but the actual work will be loaded/submitted only once we have the executor<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    final boolean hasProcExecutor = master.getMasterProcedureExecutor() != null;<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span>    // Remove the RIT chore<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    if (hasProcExecutor) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      master.getMasterProcedureExecutor().removeChore(this.ritChore);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    }<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>    // Stop the Assignment Thread<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    stopAssignmentThread();<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>    // Stop the RegionStateStore<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    regionStates.clear();<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    regionStateStore.stop();<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span>    // Unregister Server Listener<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    master.getServerManager().unregisterListener(

<TRUNCATED>

[19/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b7626a4c/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html
index 8ea3013..22c636a 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre><a href="../../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.105">AssignmentManager</a>
+public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.106">AssignmentManager</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListener.html" title="interface in org.apache.hadoop.hbase.master">ServerListener</a></pre>
 <div class="block">The AssignmentManager is the coordinator for region assign/unassign operations.
@@ -957,7 +957,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.106">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.107">LOG</a></pre>
 </li>
 </ul>
 <a name="BOOTSTRAP_THREAD_POOL_SIZE_CONF_KEY">
@@ -966,7 +966,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>BOOTSTRAP_THREAD_POOL_SIZE_CONF_KEY</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.119">BOOTSTRAP_THREAD_POOL_SIZE_CONF_KEY</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.120">BOOTSTRAP_THREAD_POOL_SIZE_CONF_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.assignment.AssignmentManager.BOOTSTRAP_THREAD_POOL_SIZE_CONF_KEY">Constant Field Values</a></dd>
@@ -979,7 +979,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>ASSIGN_DISPATCH_WAIT_MSEC_CONF_KEY</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.122">ASSIGN_DISPATCH_WAIT_MSEC_CONF_KEY</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.123">ASSIGN_DISPATCH_WAIT_MSEC_CONF_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.assignment.AssignmentManager.ASSIGN_DISPATCH_WAIT_MSEC_CONF_KEY">Constant Field Values</a></dd>
@@ -992,7 +992,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_ASSIGN_DISPATCH_WAIT_MSEC</h4>
-<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.124">DEFAULT_ASSIGN_DISPATCH_WAIT_MSEC</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.125">DEFAULT_ASSIGN_DISPATCH_WAIT_MSEC</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.assignment.AssignmentManager.DEFAULT_ASSIGN_DISPATCH_WAIT_MSEC">Constant Field Values</a></dd>
@@ -1005,7 +1005,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>ASSIGN_DISPATCH_WAITQ_MAX_CONF_KEY</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.126">ASSIGN_DISPATCH_WAITQ_MAX_CONF_KEY</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.127">ASSIGN_DISPATCH_WAITQ_MAX_CONF_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.assignment.AssignmentManager.ASSIGN_DISPATCH_WAITQ_MAX_CONF_KEY">Constant Field Values</a></dd>
@@ -1018,7 +1018,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_ASSIGN_DISPATCH_WAITQ_MAX</h4>
-<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.128">DEFAULT_ASSIGN_DISPATCH_WAITQ_MAX</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.129">DEFAULT_ASSIGN_DISPATCH_WAITQ_MAX</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.assignment.AssignmentManager.DEFAULT_ASSIGN_DISPATCH_WAITQ_MAX">Constant Field Values</a></dd>
@@ -1031,7 +1031,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>RIT_CHORE_INTERVAL_MSEC_CONF_KEY</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.130">RIT_CHORE_INTERVAL_MSEC_CONF_KEY</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.131">RIT_CHORE_INTERVAL_MSEC_CONF_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.assignment.AssignmentManager.RIT_CHORE_INTERVAL_MSEC_CONF_KEY">Constant Field Values</a></dd>
@@ -1044,7 +1044,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_RIT_CHORE_INTERVAL_MSEC</h4>
-<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.132">DEFAULT_RIT_CHORE_INTERVAL_MSEC</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.133">DEFAULT_RIT_CHORE_INTERVAL_MSEC</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.assignment.AssignmentManager.DEFAULT_RIT_CHORE_INTERVAL_MSEC">Constant Field Values</a></dd>
@@ -1057,7 +1057,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>ASSIGN_MAX_ATTEMPTS</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.134">ASSIGN_MAX_ATTEMPTS</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.135">ASSIGN_MAX_ATTEMPTS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.assignment.AssignmentManager.ASSIGN_MAX_ATTEMPTS">Constant Field Values</a></dd>
@@ -1070,7 +1070,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_ASSIGN_MAX_ATTEMPTS</h4>
-<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.136">DEFAULT_ASSIGN_MAX_ATTEMPTS</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.137">DEFAULT_ASSIGN_MAX_ATTEMPTS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.assignment.AssignmentManager.DEFAULT_ASSIGN_MAX_ATTEMPTS">Constant Field Values</a></dd>
@@ -1083,7 +1083,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>METRICS_RIT_STUCK_WARNING_THRESHOLD</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.139">METRICS_RIT_STUCK_WARNING_THRESHOLD</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.140">METRICS_RIT_STUCK_WARNING_THRESHOLD</a></pre>
 <div class="block">Region in Transition metrics threshold time</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -1097,7 +1097,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_RIT_STUCK_WARNING_THRESHOLD</h4>
-<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.141">DEFAULT_RIT_STUCK_WARNING_THRESHOLD</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.142">DEFAULT_RIT_STUCK_WARNING_THRESHOLD</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.assignment.AssignmentManager.DEFAULT_RIT_STUCK_WARNING_THRESHOLD">Constant Field Values</a></dd>
@@ -1110,7 +1110,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>metaInitializedEvent</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&lt;?&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.143">metaInitializedEvent</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&lt;?&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.144">metaInitializedEvent</a></pre>
 </li>
 </ul>
 <a name="metaLoadEvent">
@@ -1119,7 +1119,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>metaLoadEvent</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&lt;?&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.144">metaLoadEvent</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&lt;?&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.145">metaLoadEvent</a></pre>
 </li>
 </ul>
 <a name="failoverCleanupDone">
@@ -1128,7 +1128,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>failoverCleanupDone</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&lt;?&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.152">failoverCleanupDone</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&lt;?&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.153">failoverCleanupDone</a></pre>
 <div class="block">Indicator that AssignmentManager has recovered the region states so
  that ServerCrashProcedure can be fully enabled and re-assign regions
  of dead servers. So that when re-assignment happens, AssignmentManager
@@ -1141,7 +1141,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>listeners</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CopyOnWriteArrayList.html?is-external=true" title="class or interface in java.util.concurrent">CopyOnWriteArrayList</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentListener.html" title="interface in org.apache.hadoop.hbase.master">AssignmentListener</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.155">listeners</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CopyOnWriteArrayList.html?is-external=true" title="class or interface in java.util.concurrent">CopyOnWriteArrayList</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentListener.html" title="interface in org.apache.hadoop.hbase.master">AssignmentListener</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.156">listeners</a></pre>
 <div class="block">Listeners that are called on assignment events.</div>
 </li>
 </ul>
@@ -1151,7 +1151,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>regionStateListener</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/RegionStateListener.html" title="interface in org.apache.hadoop.hbase">RegionStateListener</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.159">regionStateListener</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/RegionStateListener.html" title="interface in org.apache.hadoop.hbase">RegionStateListener</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.160">regionStateListener</a></pre>
 </li>
 </ul>
 <a name="regionNormalizer">
@@ -1160,7 +1160,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>regionNormalizer</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizer.html" title="interface in org.apache.hadoop.hbase.master.normalizer">RegionNormalizer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.161">regionNormalizer</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizer.html" title="interface in org.apache.hadoop.hbase.master.normalizer">RegionNormalizer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.162">regionNormalizer</a></pre>
 </li>
 </ul>
 <a name="metrics">
@@ -1169,7 +1169,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>metrics</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManager.html" title="class in org.apache.hadoop.hbase.master">MetricsAssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.163">metrics</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManager.html" title="class in org.apache.hadoop.hbase.master">MetricsAssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.164">metrics</a></pre>
 </li>
 </ul>
 <a name="ritChore">
@@ -1178,7 +1178,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>ritChore</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager.RegionInTransitionChore</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.164">ritChore</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager.RegionInTransitionChore</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.165">ritChore</a></pre>
 </li>
 </ul>
 <a name="master">
@@ -1187,7 +1187,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>master</h4>
-<pre>private final&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/master/assignment/AssignmentManager.html#line.165">master</a></pre>
+<pre>private final&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/master/assignment/AssignmentManager.html#line.166">master</a></pre>
 </li>
 </ul>
 <a name="running">
@@ -1196,7 +1196,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>running</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.167">running</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.168">running</a></pre>
 </li>
 </ul>
 <a name="regionStates">
@@ -1205,7 +1205,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>regionStates</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStates.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStates</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.168">regionStates</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStates.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStates</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.169">regionStates</a></pre>
 </li>
 </ul>
 <a name="regionStateStore">
@@ -1214,7 +1214,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>regionStateStore</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateStore.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateStore</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.169">regionStateStore</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateStore.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateStore</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.170">regionStateStore</a></pre>
 </li>
 </ul>
 <a name="shouldAssignRegionsWithFavoredNodes">
@@ -1223,7 +1223,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldAssignRegionsWithFavoredNodes</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.171">shouldAssignRegionsWithFavoredNodes</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.172">shouldAssignRegionsWithFavoredNodes</a></pre>
 </li>
 </ul>
 <a name="assignDispatchWaitQueueMaxSize">
@@ -1232,7 +1232,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>assignDispatchWaitQueueMaxSize</h4>
-<pre>private final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.172">assignDispatchWaitQueueMaxSize</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.173">assignDispatchWaitQueueMaxSize</a></pre>
 </li>
 </ul>
 <a name="assignDispatchWaitMillis">
@@ -1241,7 +1241,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>assignDispatchWaitMillis</h4>
-<pre>private final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.173">assignDispatchWaitMillis</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.174">assignDispatchWaitMillis</a></pre>
 </li>
 </ul>
 <a name="assignMaxAttempts">
@@ -1250,7 +1250,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>assignMaxAttempts</h4>
-<pre>private final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.174">assignMaxAttempts</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.175">assignMaxAttempts</a></pre>
 </li>
 </ul>
 <a name="checkIfShouldMoveSystemRegionLock">
@@ -1259,7 +1259,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>checkIfShouldMoveSystemRegionLock</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.176">checkIfShouldMoveSystemRegionLock</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.177">checkIfShouldMoveSystemRegionLock</a></pre>
 </li>
 </ul>
 <a name="assignThread">
@@ -1268,7 +1268,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>assignThread</h4>
-<pre>private&nbsp;<a href="http://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/master/assignment/AssignmentManager.html#line.178">assignThread</a></pre>
+<pre>private&nbsp;<a href="http://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/master/assignment/AssignmentManager.html#line.179">assignThread</a></pre>
 </li>
 </ul>
 <a name="META_REGION_SET">
@@ -1277,7 +1277,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>META_REGION_SET</h4>
-<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.393">META_REGION_SET</a></pre>
+<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.394">META_REGION_SET</a></pre>
 </li>
 </ul>
 <a name="UNASSIGNED_PROCEDURE_FOR_TYPE_INFO">
@@ -1286,7 +1286,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>UNASSIGNED_PROCEDURE_FOR_TYPE_INFO</h4>
-<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/UnassignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">UnassignProcedure</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.615">UNASSIGNED_PROCEDURE_FOR_TYPE_INFO</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/UnassignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">UnassignProcedure</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.616">UNASSIGNED_PROCEDURE_FOR_TYPE_INFO</a></pre>
 </li>
 </ul>
 <a name="pendingAssignQueue">
@@ -1295,7 +1295,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>pendingAssignQueue</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStates.RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStates.RegionStateNode</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1560">pendingAssignQueue</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStates.RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStates.RegionStateNode</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1563">pendingAssignQueue</a></pre>
 </li>
 </ul>
 <a name="assignQueueLock">
@@ -1304,7 +1304,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>assignQueueLock</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantLock</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1561">assignQueueLock</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantLock</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1564">assignQueueLock</a></pre>
 </li>
 </ul>
 <a name="assignQueueFullCond">
@@ -1313,7 +1313,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockListLast">
 <li class="blockList">
 <h4>assignQueueFullCond</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Condition.html?is-external=true" title="class or interface in java.util.concurrent.locks">Condition</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1562">assignQueueFullCond</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Condition.html?is-external=true" title="class or interface in java.util.concurrent.locks">Condition</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1565">assignQueueFullCond</a></pre>
 </li>
 </ul>
 </li>
@@ -1330,7 +1330,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>AssignmentManager</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.180">AssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;master)</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.181">AssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;master)</pre>
 </li>
 </ul>
 <a name="AssignmentManager-org.apache.hadoop.hbase.master.MasterServices-org.apache.hadoop.hbase.master.assignment.RegionStateStore-">
@@ -1339,7 +1339,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockListLast">
 <li class="blockList">
 <h4>AssignmentManager</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.184">AssignmentManager</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/master/assignment/AssignmentManager.html#line.185">AssignmentManager</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/master/assignment/RegionStateStore.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateStore</a>&nbsp;stateStore)</pre>
 </li>
 </ul>
@@ -1357,7 +1357,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>start</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.211">start</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.212">start</a>()
            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1371,7 +1371,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.228">stop</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.229">stop</a>()</pre>
 </li>
 </ul>
 <a name="isRunning--">
@@ -1380,7 +1380,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>isRunning</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.264">isRunning</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.265">isRunning</a>()</pre>
 </li>
 </ul>
 <a name="getConfiguration--">
@@ -1389,7 +1389,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>getConfiguration</h4>
-<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.268">getConfiguration</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.269">getConfiguration</a>()</pre>
 </li>
 </ul>
 <a name="getAssignmentManagerMetrics--">
@@ -1398,7 +1398,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>getAssignmentManagerMetrics</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManager.html" title="class in org.apache.hadoop.hbase.master">MetricsAssignmentManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.272">getAssignmentManagerMetrics</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManager.html" title="class in org.apache.hadoop.hbase.master">MetricsAssignmentManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.273">getAssignmentManagerMetrics</a>()</pre>
 </li>
 </ul>
 <a name="getBalancer--">
@@ -1407,7 +1407,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>getBalancer</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.276">getBalancer</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.277">getBalancer</a>()</pre>
 </li>
 </ul>
 <a name="getProcedureEnvironment--">
@@ -1416,7 +1416,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedureEnvironment</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.280">getProcedureEnvironment</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.281">getProcedureEnvironment</a>()</pre>
 </li>
 </ul>
 <a name="getProcedureScheduler--">
@@ -1425,7 +1425,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedureScheduler</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureScheduler</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.284">getProcedureScheduler</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureScheduler</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.285">getProcedureScheduler</a>()</pre>
 </li>
 </ul>
 <a name="getAssignMaxAttempts--">
@@ -1434,7 +1434,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>getAssignMaxAttempts</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.288">getAssignMaxAttempts</a>()</pre>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.289">getAssignMaxAttempts</a>()</pre>
 </li>
 </ul>
 <a name="registerListener-org.apache.hadoop.hbase.master.AssignmentListener-">
@@ -1443,7 +1443,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>registerListener</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.296">registerListener</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentListener.html" title="interface in org.apache.hadoop.hbase.master">AssignmentListener</a>&nbsp;listener)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.297">registerListener</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentListener.html" title="interface in org.apache.hadoop.hbase.master">AssignmentListener</a>&nbsp;listener)</pre>
 <div class="block">Add the listener to the notification list.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1457,7 +1457,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>unregisterListener</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.304">unregisterListener</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentListener.html" title="interface in org.apache.hadoop.hbase.master">AssignmentListener</a>&nbsp;listener)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.305">unregisterListener</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentListener.html" title="interface in org.apache.hadoop.hbase.master">AssignmentListener</a>&nbsp;listener)</pre>
 <div class="block">Remove the listener from the notification list.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1471,7 +1471,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>setRegionStateListener</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.308">setRegionStateListener</a>(<a href="../../../../../../org/apache/hadoop/hbase/RegionStateListener.html" title="interface in org.apache.hadoop.hbase">RegionStateListener</a>&nbsp;listener)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.309">setRegionStateListener</a>(<a href="../../../../../../org/apache/hadoop/hbase/RegionStateListener.html" title="interface in org.apache.hadoop.hbase">RegionStateListener</a>&nbsp;listener)</pre>
 </li>
 </ul>
 <a name="setRegionNormalizer-org.apache.hadoop.hbase.master.normalizer.RegionNormalizer-">
@@ -1480,7 +1480,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>setRegionNormalizer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.312">setRegionNormalizer</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizer.html" title="interface in org.apache.hadoop.hbase.master.normalizer">RegionNormalizer</a>&nbsp;normalizer)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.313">setRegionNormalizer</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizer.html" title="interface in org.apache.hadoop.hbase.master.normalizer">RegionNormalizer</a>&nbsp;normalizer)</pre>
 </li>
 </ul>
 <a name="getRegionNormalizer--">
@@ -1489,7 +1489,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionNormalizer</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizer.html" title="interface in org.apache.hadoop.hbase.master.normalizer">RegionNormalizer</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.316">getRegionNormalizer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizer.html" title="interface in org.apache.hadoop.hbase.master.normalizer">RegionNormalizer</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.317">getRegionNormalizer</a>()</pre>
 </li>
 </ul>
 <a name="getRegionStates--">
@@ -1498,7 +1498,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionStates</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStates.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStates</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.320">getRegionStates</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStates.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStates</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.321">getRegionStates</a>()</pre>
 </li>
 </ul>
 <a name="getRegionStateStore--">
@@ -1507,7 +1507,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionStateStore</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateStore.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateStore</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.324">getRegionStateStore</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateStore.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateStore</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.325">getRegionStateStore</a>()</pre>
 </li>
 </ul>
 <a name="getFavoredNodes-org.apache.hadoop.hbase.HRegionInfo-">
@@ -1516,7 +1516,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>getFavoredNodes</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.328">getFavoredNodes</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.329">getFavoredNodes</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</pre>
 </li>
 </ul>
 <a name="getTableStateManager--">
@@ -1525,7 +1525,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableStateManager</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/master/TableStateManager.html" title="class in org.apache.hadoop.hbase.master">TableStateManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.337">getTableStateManager</a>()</pre>
+<pre><a href="../../../../../../org/apache/hadoop/hbase/master/TableStateManager.html" title="class in org.apache.hadoop.hbase.master">TableStateManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.338">getTableStateManager</a>()</pre>
 </li>
 </ul>
 <a name="isTableEnabled-org.apache.hadoop.hbase.TableName-">
@@ -1534,7 +1534,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>isTableEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.341">isTableEnabled</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.342">isTableEnabled</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 </li>
 </ul>
 <a name="isTableDisabled-org.apache.hadoop.hbase.TableName-">
@@ -1543,7 +1543,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>isTableDisabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.345">isTableDisabled</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.346">isTableDisabled</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 </li>
 </ul>
 <a name="isMetaRegion-org.apache.hadoop.hbase.HRegionInfo-">
@@ -1552,7 +1552,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>isMetaRegion</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.353">isMetaRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.354">isMetaRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</pre>
 </li>
 </ul>
 <a name="isMetaRegion-byte:A-">
@@ -1561,7 +1561,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>isMetaRegion</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.357">isMetaRegion</a>(byte[]&nbsp;regionName)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.358">isMetaRegion</a>(byte[]&nbsp;regionName)</pre>
 </li>
 </ul>
 <a name="getMetaRegionFromName-byte:A-">
@@ -1570,7 +1570,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaRegionFromName</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.361">getMetaRegionFromName</a>(byte[]&nbsp;regionName)</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.362">getMetaRegionFromName</a>(byte[]&nbsp;regionName)</pre>
 </li>
 </ul>
 <a name="isCarryingMeta-org.apache.hadoop.hbase.ServerName-">
@@ -1579,7 +1579,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>isCarryingMeta</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.370">isCarryingMeta</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.371">isCarryingMeta</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
 </li>
 </ul>
 <a name="isCarryingRegion-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.HRegionInfo-">
@@ -1588,7 +1588,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>isCarryingRegion</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.379">isCarryingRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.380">isCarryingRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                                  <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</pre>
 </li>
 </ul>
@@ -1598,7 +1598,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaForRegion</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.385">getMetaForRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.386">getMetaForRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</pre>
 </li>
 </ul>
 <a name="getMetaRegionSet--">
@@ -1607,7 +1607,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaRegionSet</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.395">getMetaRegionSet</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.396">getMetaRegionSet</a>()</pre>
 </li>
 </ul>
 <a name="isMetaInitialized--">
@@ -1616,7 +1616,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>isMetaInitialized</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.402">isMetaInitialized</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.403">isMetaInitialized</a>()</pre>
 </li>
 </ul>
 <a name="isMetaRegionInTransition--">
@@ -1625,7 +1625,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>isMetaRegionInTransition</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.406">isMetaRegionInTransition</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.407">isMetaRegionInTransition</a>()</pre>
 </li>
 </ul>
 <a name="waitMetaInitialized-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -1634,7 +1634,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>waitMetaInitialized</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.410">waitMetaInitialized</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.411">waitMetaInitialized</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc)</pre>
 </li>
 </ul>
 <a name="waitMetaInitialized-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.HRegionInfo-">
@@ -1643,7 +1643,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>waitMetaInitialized</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.416">waitMetaInitialized</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.417">waitMetaInitialized</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc,
                                    <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</pre>
 </li>
 </ul>
@@ -1653,7 +1653,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>setMetaInitialized</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.421">setMetaInitialized</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;metaRegionInfo,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.422">setMetaInitialized</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;metaRegionInfo,
                                 boolean&nbsp;isInitialized)</pre>
 </li>
 </ul>
@@ -1663,7 +1663,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaInitializedEvent</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.431">getMetaInitializedEvent</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;metaRegionInfo)</pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.432">getMetaInitializedEvent</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;metaRegionInfo)</pre>
 </li>
 </ul>
 <a name="waitMetaLoaded-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -1672,7 +1672,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>waitMetaLoaded</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.437">waitMetaLoaded</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.438">waitMetaLoaded</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc)</pre>
 </li>
 </ul>
 <a name="wakeMetaLoadedEvent--">
@@ -1681,7 +1681,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>wakeMetaLoadedEvent</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.441">wakeMetaLoadedEvent</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.442">wakeMetaLoadedEvent</a>()</pre>
 </li>
 </ul>
 <a name="isMetaLoaded--">
@@ -1690,7 +1690,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>isMetaLoaded</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.446">isMetaLoaded</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.447">isMetaLoaded</a>()</pre>
 </li>
 </ul>
 <a name="assignMeta-org.apache.hadoop.hbase.HRegionInfo-">
@@ -1699,7 +1699,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>assignMeta</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.453">assignMeta</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;metaRegionInfo)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.454">assignMeta</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;metaRegionInfo)
                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1713,7 +1713,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>assignMeta</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.457">assignMeta</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;metaRegionInfo,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.458">assignMeta</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;metaRegionInfo,
                        <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)
                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -1728,7 +1728,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>checkIfShouldMoveSystemRegionAsync</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.477">checkIfShouldMoveSystemRegionAsync</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.478">checkIfShouldMoveSystemRegionAsync</a>()</pre>
 <div class="block">Start a new thread to check if there are region servers whose versions are higher than others.
  If so, move all system table regions to RS with the highest version to keep compatibility.
  The reason is, RS in new version may not be able to access RS in old version when there are
@@ -1741,7 +1741,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>getCarryingSystemTables</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.516">getCarryingSystemTables</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.517">getCarryingSystemTables</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
 </li>
 </ul>
 <a name="assign-org.apache.hadoop.hbase.HRegionInfo-">
@@ -1750,7 +1750,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>assign</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.527">assign</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.528">assign</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)
             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1764,7 +1764,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>assign</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.531">assign</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.532">assign</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,
                    boolean&nbsp;forceNewPlan)
             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -1779,7 +1779,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>unassign</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.536">unassign</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.537">unassign</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1793,7 +1793,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>unassign</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.540">unassign</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.541">unassign</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,
                      boolean&nbsp;forceNewPlan)
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -1808,7 +1808,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>moveAsync</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;byte[]&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.553">moveAsync</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&nbsp;regionPlan)</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;byte[]&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.554">moveAsync</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&nbsp;regionPlan)</pre>
 </li>
 </ul>
 <a name="waitForAssignment-org.apache.hadoop.hbase.HRegionInfo-">
@@ -1817,7 +1817,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForAssignment</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.559">waitForAssignment</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.560">waitForAssignment</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1831,7 +1831,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForAssignment</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.565">waitForAssignment</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.566">waitForAssignment</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,
                                  long&nbsp;timeout)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -1846,7 +1846,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>createAssignProcedures</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.599">createAssignProcedures</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;&nbsp;regionInfo)</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.600">createAssignProcedures</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;&nbsp;regionInfo)</pre>
 </li>
 </ul>
 <a name="createAssignProcedures-java.util.Collection-boolean-">
@@ -1855,7 +1855,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>createAssignProcedures</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.603">createAssignProcedures</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;&nbsp;regionInfo,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.604">createAssignProcedures</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;&nbsp;regionInfo,
                                                 boolean&nbsp;forceNewPlan)</pre>
 </li>
 </ul>
@@ -1865,7 +1865,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>createUnassignProcedures</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/UnassignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">UnassignProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.618">createUnassignProcedures</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStates.RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStates.RegionStateNode</a>&gt;&nbsp;nodes)</pre>
+<pre><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/UnassignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">UnassignProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.619">createUnassignProcedures</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStates.RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStates.RegionStateNode</a>&gt;&nbsp;nodes)</pre>
 </li>
 </ul>
 <a name="createReopenProcedures-java.util.Collection-">
@@ -1874,7 +1874,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>createReopenProcedures</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">MoveRegionProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.631">createReopenProcedures</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;&nbsp;regionInfo)</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">MoveRegionProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.632">createReopenProcedures</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;&nbsp;regionInfo)</pre>
 </li>
 </ul>
 <a name="createAssignProcedures-org.apache.hadoop.hbase.TableName-">
@@ -1883,7 +1883,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>createAssignProcedures</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.646">createAssignProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.647">createAssignProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 <div class="block">Called by things like EnableTableProcedure to get a list of AssignProcedure
  to assign the regions of the table.</div>
 </li>
@@ -1894,7 +1894,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>createUnassignProcedures</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/UnassignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">UnassignProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.654">createUnassignProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/UnassignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">UnassignProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.655">createUnassignProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 <div class="block">Called by things like DisableTableProcedure to get a list of UnassignProcedure
  to unassign the regions of the table.</div>
 </li>
@@ -1905,7 +1905,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>createReopenProcedures</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">MoveRegionProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.662">createReopenProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">MoveRegionProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.663">createReopenProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 <div class="block">Called by things like ModifyColumnFamilyProcedure to get a list of MoveRegionProcedure
  to reopen the regions of the table.</div>
 </li>
@@ -1916,7 +1916,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>createAssignProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignProcedure</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.666">createAssignProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignProcedure</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.667">createAssignProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,
                                              boolean&nbsp;forceNewPlan)</pre>
 </li>
 </ul>
@@ -1926,7 +1926,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/ServerListe
 <ul class="blockList">
 <li class="blockList">
 <h4>createAssignProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignProcedure</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.673">createAssignProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class i

<TRUNCATED>