You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by mi...@apache.org on 2016/01/25 18:03:45 UTC

[01/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site 29e338589 -> f8d6f4200


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


[35/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
index 9b4d86d..6b02ffe 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
@@ -141,8 +141,8 @@
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="strong">Permission.Action</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="strong">AccessControlFilter.Strategy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="strong">AccessController.OpType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="strong">AccessControlFilter.Strategy</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/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 9869b17..63a2b08 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
@@ -152,9 +152,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/7/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/7/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="strong">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="strong">SaslUtil.QualityOfProtection</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security"><span class="strong">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="strong">AuthMethod</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/security/visibility/VisibilityController.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/visibility/VisibilityController.html b/devapidocs/org/apache/hadoop/hbase/security/visibility/VisibilityController.html
index e452a99..5aee6e4 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/visibility/VisibilityController.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/visibility/VisibilityController.html
@@ -541,7 +541,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.Vis
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.coprocessor.<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html" title="class in org.apache.hadoop.hbase.coprocessor">BaseMasterAndRegionObserver</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAbortProcedure(org.apache.hadoop.hbase.coprocessor.ObserverContext)">postAbortProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAddColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postAddColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAddColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postAddColumnFamily</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAddColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor
 )">postAddColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAddColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postAddColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAssign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">postAssign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postBalance(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postBalance</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postBalanceSwitch(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20boolean,%20boolean)">postBalanceSwitch</a>, <a href="../../../../../../org/apache/hadoop/hbase/coproc
 essor/BaseMasterAndRegionObserver.html#postCloneSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postCloneSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postCreateNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postCreateNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postCreateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">postCreateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postCreateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apach
 e.hadoop.hbase.HRegionInfo[])">postCreateTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">postDeleteColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">postDeleteColumnFamily</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">postDeleteColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop
 .hbase.TableName,%20byte[])">postDeleteColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String)">postDeleteNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">postDeleteSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postDeleteTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postDeleteTableHand
 ler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDisableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postDisableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDisableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postDisableTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postEnableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postEnableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocess
 or/BaseMasterAndRegionObserver.html#postGetNamespaceDescriptor(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postGetNamespaceDescriptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postGetTableDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.util.List,%20java.lang.String)">postGetTableDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postGetTableNames(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.lang.String)">postGetTableNames</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postListNamespaceDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListNamespaceDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegion
 Observer.html#postListProcedures(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListProcedures</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postListSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">postListSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamily</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postModifyNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoo
 p.hbase.HTableDescriptor)">postModifyTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">postMove</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postRegionOffline(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">postRegionOffline</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postRestoreSnapshot(org.apache.hadoop.hbase.coprocess
 or.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postRestoreSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetNamespaceQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetNamespaceQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetTableQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetTableQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">
 postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Base
 MasterAndRegionObserver.html#postTableFlush(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postTableFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postTruncateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postTruncateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postTruncateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postTruncateTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postUnassign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20boolean)">postUnassign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAbortProcedure(org.apache.hadoop.hbase.cop
 rocessor.ObserverContext,%20org.apache.hadoop.hbase.procedure2.ProcedureExecutor,%20long)">preAbortProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAddColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAddColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAddColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/cop
 rocessor/BaseMasterAndRegionObserver.html#preAssign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">preAssign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preBalance(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preBalance</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preBalanceSwitch(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20boolean)">preBalanceSwitch</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preCloneSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">preCloneSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preCreateNamespace(org.apache.hadoop.hbase.coprocesso
 r.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">preCreateNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preCreateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preCreateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteColumnFamilyH
 andler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String)">preDeleteNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">preDeleteSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteTable(org.apache.had
 oop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDeleteTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDeleteTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDisableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDisableTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preEnableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preEnableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preEnableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableNa
 me)">preEnableTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preGetNamespaceDescriptor(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String)">preGetNamespaceDescriptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preGetTableDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.util.List,%20java.lang.String)">preGetTableDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preGetTableNames(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.lang.String)">preGetTableNames</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preListNamespaceDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">preListNamespaceDescriptors</a>, <a href="../../../../../.
 ./org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preListProcedures(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preListProcedures</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preListSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">preListSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preMasterInitialization(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preMasterInitialization</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preModifyColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preModifyColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.htm
 l#preModifyColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preModifyColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preModifyColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preModifyColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preModifyNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">preModifyNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preModifyTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">preModifyTableHandle
 r</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">preMove</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preRegionOffline(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">preRegionOffline</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preRestoreSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">preRestoreSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preSetNamespaceQuota(org.apache.hadoop.hbase.coprocessor.Observer
 Context,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">preSetNamespaceQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preSetTableQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">preSetTableQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">preSetUserQuota</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preShutdown(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preShutdown</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">preSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preStopMaster(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preStopMaster</a>, <a href="../../../../../../org/apache/hadoop/h
 base/coprocessor/BaseMasterAndRegionObserver.html#preTableFlush(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preTableFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preTruncateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preTruncateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preTruncateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preTruncateTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preUnassign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20boolean)">preUnassign</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAbortProcedure(org.apache.hadoop.hbase.coprocessor.ObserverContext)">postAbortProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAddColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postAddColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAddColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postAddColumnFamily</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAddColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor
 )">postAddColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAddColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postAddColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAssign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">postAssign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postBalance(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postBalance</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postBalanceSwitch(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20boolean,%20boolean)">postBalanceSwitch</a>, <a href="../../../../../../org/apache/hadoop/hbase/coproc
 essor/BaseMasterAndRegionObserver.html#postCloneSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postCloneSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postCreateNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postCreateNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postCreateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">postCreateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postCreateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apach
 e.hadoop.hbase.HRegionInfo[])">postCreateTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">postDeleteColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">postDeleteColumnFamily</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">postDeleteColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop
 .hbase.TableName,%20byte[])">postDeleteColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String)">postDeleteNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">postDeleteSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postDeleteTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postDeleteTableHand
 ler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDisableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postDisableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDisableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postDisableTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postEnableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTable</a>, <a href="../../../../../../or
 g/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postEnableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postGetNamespaceDescriptor(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postGetNamespaceDescriptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postGetTableDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.util.List,%20java.lang.String)">postGetTableDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postGetTableNames(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.lang.String)">postGetTableNames</a>, <a href="../../../../../../org/apache/hadoop
 /hbase/coprocessor/BaseMasterAndRegionObserver.html#postListNamespaceDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListNamespaceDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postListProcedures(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListProcedures</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postListSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">postListSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocesso
 r/BaseMasterAndRegionObserver.html#postModifyColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamily</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbas
 e.NamespaceDescriptor)">postModifyNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">postMove</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postRegionOffl
 ine(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">postRegionOffline</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postRestoreSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postRestoreSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetNamespaceQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetNamespaceQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetTableQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSe
 tTableQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postS
 napshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postTableFlush(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postTableFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postTruncateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postTruncateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postTruncateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postTruncateTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postUna
 ssign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20boolean)">postUnassign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAbortProcedure(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.procedure2.ProcedureExecutor,%20long)">preAbortProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAddColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAddColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor
 /BaseMasterAndRegionObserver.html#preAddColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAssign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">preAssign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preBalance(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preBalance</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preBalanceSwitch(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20boolean)">preBalanceSwitch</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preCloneSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase
 .protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">preCloneSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preCreateNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">preCreateNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preCreateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preCreateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionO
 bserver.html#preDeleteColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String)">preDeleteNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteSnapshot(org.apache.
 hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">preDeleteSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDeleteTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDeleteTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDisableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDisableTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDispatchMerge(org.apache.hadoop.hbase.coprocessor.Observer
 Context,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">preDispatchMerge</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preEnableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preEnableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preEnableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preEnableTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preGetNamespaceDescriptor(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String)">preGetNamespaceDescriptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preGetTableDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.util.
 List,%20java.lang.String)">preGetTableDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preGetTableNames(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.lang.String)">preGetTableNames</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preListNamespaceDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">preListNamespaceDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preListProcedures(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preListProcedures</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preListSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">preListSnapshot</a>, <a href="../../../../../../org
 /apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preMasterInitialization(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preMasterInitialization</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preModifyColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preModifyColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preModifyColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preModifyColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preModifyColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preMo
 difyColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preModifyNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">preModifyNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preModifyTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">preModifyTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">preMove</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preRegionOffline(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20
 org.apache.hadoop.hbase.HRegionInfo)">preRegionOffline</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preRestoreSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">preRestoreSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preSetNamespaceQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">preSetNamespaceQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preSetTableQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">preSetTableQuota</a>, <a href="../../../../../../org/apache/hadoop/hbas
 e/coprocessor/BaseMasterAndRegionObserver.html#preSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preShutdown(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preShutdown
 </a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">preSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preStopMaster(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preStopMaster</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preTableFlush(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preTableFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preTruncateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preTruncateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocesso
 r/BaseMasterAndRegionObserver.html#preTruncateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preTruncateTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preUnassign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20boolean)">preUnassign</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods_inherited_from_class_org.apache.hadoop.hbase.coprocessor.BaseRegionObserver">


[12/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.DeleteState.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.DeleteState.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.DeleteState.html
index f6c7b80..1c21359 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.DeleteState.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.DeleteState.html
@@ -422,180 +422,182 @@
 <span class="sourceLineNo">414</span>    node.updateState(procId, isDeleted);<a name="line.414"></a>
 <span class="sourceLineNo">415</span>  }<a name="line.415"></a>
 <span class="sourceLineNo">416</span><a name="line.416"></a>
-<span class="sourceLineNo">417</span>  public void clear() {<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    this.map.clear();<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    resetUpdates();<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>  public DeleteState isDeleted(long procId) {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    Map.Entry&lt;Long, BitSetNode&gt; entry = map.floorEntry(procId);<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    if (entry != null &amp;&amp; entry.getValue().contains(procId)) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      BitSetNode node = entry.getValue();<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      DeleteState state = node.isDeleted(procId);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      return partial &amp;&amp; !node.isUpdated(procId) ? DeleteState.MAYBE : state;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    }<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    return partial ? DeleteState.MAYBE : DeleteState.YES;<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  }<a name="line.430"></a>
-<span class="sourceLineNo">431</span><a name="line.431"></a>
-<span class="sourceLineNo">432</span>  public long getMinProcId() {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    // TODO: Cache?<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    Map.Entry&lt;Long, BitSetNode&gt; entry = map.firstEntry();<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    return entry == null ? 0 : entry.getValue().getMinProcId();<a name="line.435"></a>
-<span class="sourceLineNo">436</span>  }<a name="line.436"></a>
-<span class="sourceLineNo">437</span><a name="line.437"></a>
-<span class="sourceLineNo">438</span>  public void setKeepDeletes(boolean keepDeletes) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    this.keepDeletes = keepDeletes;<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    if (!keepDeletes) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      Iterator&lt;Map.Entry&lt;Long, BitSetNode&gt;&gt; it = map.entrySet().iterator();<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      while (it.hasNext()) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        Map.Entry&lt;Long, BitSetNode&gt; entry = it.next();<a name="line.443"></a>
-<span class="sourceLineNo">444</span>        if (entry.getValue().isEmpty()) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>          it.remove();<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>  }<a name="line.449"></a>
-<span class="sourceLineNo">450</span><a name="line.450"></a>
-<span class="sourceLineNo">451</span>  public void setPartialFlag(boolean isPartial) {<a name="line.451"></a>
-<span class="sourceLineNo">452</span>    if (this.partial &amp;&amp; !isPartial) {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>        entry.getValue().unsetPartialFlag();<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>    this.partial = isPartial;<a name="line.457"></a>
-<span class="sourceLineNo">458</span>  }<a name="line.458"></a>
-<span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>  public boolean isEmpty() {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      if (entry.getValue().isEmpty() == false) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>        return false;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      }<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    }<a name="line.465"></a>
-<span class="sourceLineNo">466</span>    return true;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>  }<a name="line.467"></a>
-<span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>  public boolean isUpdated() {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>      if (entry.getValue().isUpdated() == false) {<a name="line.471"></a>
-<span class="sourceLineNo">472</span>        return false;<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      }<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    }<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    return true;<a name="line.475"></a>
-<span class="sourceLineNo">476</span>  }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>  public boolean isTracking(long minId, long maxId) {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    // TODO: we can make it more precise, instead of looking just at the block<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    return map.floorEntry(minId) != null || map.floorEntry(maxId) != null;<a name="line.480"></a>
-<span class="sourceLineNo">481</span>  }<a name="line.481"></a>
-<span class="sourceLineNo">482</span><a name="line.482"></a>
-<span class="sourceLineNo">483</span>  public void resetUpdates() {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>      entry.getValue().resetUpdates();<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    }<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    minUpdatedProcId = Long.MAX_VALUE;<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    maxUpdatedProcId = Long.MIN_VALUE;<a name="line.488"></a>
-<span class="sourceLineNo">489</span>  }<a name="line.489"></a>
-<span class="sourceLineNo">490</span><a name="line.490"></a>
-<span class="sourceLineNo">491</span>  public void undeleteAll() {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      entry.getValue().undeleteAll();<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    }<a name="line.494"></a>
-<span class="sourceLineNo">495</span>  }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>  private BitSetNode getOrCreateNode(final long procId) {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    // can procId fit in the left node?<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    BitSetNode leftNode = null;<a name="line.499"></a>
-<span class="sourceLineNo">500</span>    boolean leftCanGrow = false;<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    Map.Entry&lt;Long, BitSetNode&gt; leftEntry = map.floorEntry(procId);<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    if (leftEntry != null) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      leftNode = leftEntry.getValue();<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      if (leftNode.contains(procId)) {<a name="line.504"></a>
-<span class="sourceLineNo">505</span>        return leftNode;<a name="line.505"></a>
-<span class="sourceLineNo">506</span>      }<a name="line.506"></a>
-<span class="sourceLineNo">507</span>      leftCanGrow = leftNode.canGrow(procId);<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>    BitSetNode rightNode = null;<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    boolean rightCanGrow = false;<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    Map.Entry&lt;Long, BitSetNode&gt; rightEntry = map.ceilingEntry(procId);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    if (rightEntry != null) {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      rightNode = rightEntry.getValue();<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      rightCanGrow = rightNode.canGrow(procId);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      if (leftNode != null) {<a name="line.516"></a>
-<span class="sourceLineNo">517</span>        if (leftNode.canMerge(rightNode)) {<a name="line.517"></a>
-<span class="sourceLineNo">518</span>          // merge left and right node<a name="line.518"></a>
-<span class="sourceLineNo">519</span>          return mergeNodes(leftNode, rightNode);<a name="line.519"></a>
-<span class="sourceLineNo">520</span>        }<a name="line.520"></a>
-<span class="sourceLineNo">521</span><a name="line.521"></a>
-<span class="sourceLineNo">522</span>        if (leftCanGrow &amp;&amp; rightCanGrow) {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>          if ((procId - leftNode.getEnd()) &lt;= (rightNode.getStart() - procId)) {<a name="line.523"></a>
-<span class="sourceLineNo">524</span>            // grow the left node<a name="line.524"></a>
-<span class="sourceLineNo">525</span>            return growNode(leftNode, procId);<a name="line.525"></a>
-<span class="sourceLineNo">526</span>          }<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          // grow the right node<a name="line.527"></a>
-<span class="sourceLineNo">528</span>          return growNode(rightNode, procId);<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><a name="line.532"></a>
-<span class="sourceLineNo">533</span>    // grow the left node<a name="line.533"></a>
-<span class="sourceLineNo">534</span>    if (leftCanGrow) {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>      return growNode(leftNode, procId);<a name="line.535"></a>
-<span class="sourceLineNo">536</span>    }<a name="line.536"></a>
-<span class="sourceLineNo">537</span><a name="line.537"></a>
-<span class="sourceLineNo">538</span>    // grow the right node<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    if (rightCanGrow) {<a name="line.539"></a>
-<span class="sourceLineNo">540</span>      return growNode(rightNode, procId);<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    }<a name="line.541"></a>
-<span class="sourceLineNo">542</span><a name="line.542"></a>
-<span class="sourceLineNo">543</span>    // add new node<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    BitSetNode node = new BitSetNode(procId, partial);<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    map.put(node.getStart(), node);<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    return node;<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>  private BitSetNode growNode(BitSetNode node, long procId) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    map.remove(node.getStart());<a name="line.550"></a>
-<span class="sourceLineNo">551</span>    node.grow(procId);<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    map.put(node.getStart(), node);<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    return node;<a name="line.553"></a>
-<span class="sourceLineNo">554</span>  }<a name="line.554"></a>
-<span class="sourceLineNo">555</span><a name="line.555"></a>
-<span class="sourceLineNo">556</span>  private BitSetNode mergeNodes(BitSetNode leftNode, BitSetNode rightNode) {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>    assert leftNode.getStart() &lt; rightNode.getStart();<a name="line.557"></a>
-<span class="sourceLineNo">558</span>    leftNode.merge(rightNode);<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    map.remove(rightNode.getStart());<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    return leftNode;<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>  public void dump() {<a name="line.563"></a>
-<span class="sourceLineNo">564</span>    System.out.println("map " + map.size());<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    System.out.println("isUpdated " + isUpdated());<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    System.out.println("isEmpty " + isEmpty());<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.567"></a>
-<span class="sourceLineNo">568</span>      entry.getValue().dump();<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    }<a name="line.569"></a>
-<span class="sourceLineNo">570</span>  }<a name="line.570"></a>
-<span class="sourceLineNo">571</span><a name="line.571"></a>
-<span class="sourceLineNo">572</span>  public void writeTo(final OutputStream stream) throws IOException {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    ProcedureProtos.ProcedureStoreTracker.Builder builder =<a name="line.573"></a>
-<span class="sourceLineNo">574</span>        ProcedureProtos.ProcedureStoreTracker.newBuilder();<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      builder.addNode(entry.getValue().convert());<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    }<a name="line.577"></a>
-<span class="sourceLineNo">578</span>    builder.build().writeDelimitedTo(stream);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>  }<a name="line.579"></a>
-<span class="sourceLineNo">580</span><a name="line.580"></a>
-<span class="sourceLineNo">581</span>  public void readFrom(final InputStream stream) throws IOException {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    ProcedureProtos.ProcedureStoreTracker data =<a name="line.582"></a>
-<span class="sourceLineNo">583</span>        ProcedureProtos.ProcedureStoreTracker.parseDelimitedFrom(stream);<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    map.clear();<a name="line.584"></a>
-<span class="sourceLineNo">585</span>    for (ProcedureProtos.ProcedureStoreTracker.TrackerNode protoNode: data.getNodeList()) {<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      BitSetNode node = BitSetNode.convert(protoNode);<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      map.put(node.getStart(), node);<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    }<a name="line.588"></a>
-<span class="sourceLineNo">589</span>  }<a name="line.589"></a>
-<span class="sourceLineNo">590</span>}<a name="line.590"></a>
+<span class="sourceLineNo">417</span>  public void reset() {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    this.keepDeletes = false;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    this.partial = false;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    this.map.clear();<a name="line.420"></a>
+<span class="sourceLineNo">421</span>    resetUpdates();<a name="line.421"></a>
+<span class="sourceLineNo">422</span>  }<a name="line.422"></a>
+<span class="sourceLineNo">423</span><a name="line.423"></a>
+<span class="sourceLineNo">424</span>  public DeleteState isDeleted(long procId) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    Map.Entry&lt;Long, BitSetNode&gt; entry = map.floorEntry(procId);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    if (entry != null &amp;&amp; entry.getValue().contains(procId)) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      BitSetNode node = entry.getValue();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      DeleteState state = node.isDeleted(procId);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      return partial &amp;&amp; !node.isUpdated(procId) ? DeleteState.MAYBE : state;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    }<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    return partial ? DeleteState.MAYBE : DeleteState.YES;<a name="line.431"></a>
+<span class="sourceLineNo">432</span>  }<a name="line.432"></a>
+<span class="sourceLineNo">433</span><a name="line.433"></a>
+<span class="sourceLineNo">434</span>  public long getMinProcId() {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>    // TODO: Cache?<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    Map.Entry&lt;Long, BitSetNode&gt; entry = map.firstEntry();<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    return entry == null ? 0 : entry.getValue().getMinProcId();<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>  public void setKeepDeletes(boolean keepDeletes) {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    this.keepDeletes = keepDeletes;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    if (!keepDeletes) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      Iterator&lt;Map.Entry&lt;Long, BitSetNode&gt;&gt; it = map.entrySet().iterator();<a name="line.443"></a>
+<span class="sourceLineNo">444</span>      while (it.hasNext()) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>        Map.Entry&lt;Long, BitSetNode&gt; entry = it.next();<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        if (entry.getValue().isEmpty()) {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>          it.remove();<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>  }<a name="line.451"></a>
+<span class="sourceLineNo">452</span><a name="line.452"></a>
+<span class="sourceLineNo">453</span>  public void setPartialFlag(boolean isPartial) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    if (this.partial &amp;&amp; !isPartial) {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>      for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        entry.getValue().unsetPartialFlag();<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      }<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    }<a name="line.458"></a>
+<span class="sourceLineNo">459</span>    this.partial = isPartial;<a name="line.459"></a>
+<span class="sourceLineNo">460</span>  }<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>  public boolean isEmpty() {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>      if (entry.getValue().isEmpty() == false) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        return false;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>      }<a name="line.466"></a>
+<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
+<span class="sourceLineNo">468</span>    return true;<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>  public boolean isUpdated() {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>      if (entry.getValue().isUpdated() == false) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        return false;<a name="line.474"></a>
+<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    }<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    return true;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>  }<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>  public boolean isTracking(long minId, long maxId) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    // TODO: we can make it more precise, instead of looking just at the block<a name="line.481"></a>
+<span class="sourceLineNo">482</span>    return map.floorEntry(minId) != null || map.floorEntry(maxId) != null;<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>  public void resetUpdates() {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.486"></a>
+<span class="sourceLineNo">487</span>      entry.getValue().resetUpdates();<a name="line.487"></a>
+<span class="sourceLineNo">488</span>    }<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    minUpdatedProcId = Long.MAX_VALUE;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    maxUpdatedProcId = Long.MIN_VALUE;<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>  public void undeleteAll() {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>      entry.getValue().undeleteAll();<a name="line.495"></a>
+<span class="sourceLineNo">496</span>    }<a name="line.496"></a>
+<span class="sourceLineNo">497</span>  }<a name="line.497"></a>
+<span class="sourceLineNo">498</span><a name="line.498"></a>
+<span class="sourceLineNo">499</span>  private BitSetNode getOrCreateNode(final long procId) {<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    // can procId fit in the left node?<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    BitSetNode leftNode = null;<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    boolean leftCanGrow = false;<a name="line.502"></a>
+<span class="sourceLineNo">503</span>    Map.Entry&lt;Long, BitSetNode&gt; leftEntry = map.floorEntry(procId);<a name="line.503"></a>
+<span class="sourceLineNo">504</span>    if (leftEntry != null) {<a name="line.504"></a>
+<span class="sourceLineNo">505</span>      leftNode = leftEntry.getValue();<a name="line.505"></a>
+<span class="sourceLineNo">506</span>      if (leftNode.contains(procId)) {<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        return leftNode;<a name="line.507"></a>
+<span class="sourceLineNo">508</span>      }<a name="line.508"></a>
+<span class="sourceLineNo">509</span>      leftCanGrow = leftNode.canGrow(procId);<a name="line.509"></a>
+<span class="sourceLineNo">510</span>    }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>    BitSetNode rightNode = null;<a name="line.512"></a>
+<span class="sourceLineNo">513</span>    boolean rightCanGrow = false;<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    Map.Entry&lt;Long, BitSetNode&gt; rightEntry = map.ceilingEntry(procId);<a name="line.514"></a>
+<span class="sourceLineNo">515</span>    if (rightEntry != null) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>      rightNode = rightEntry.getValue();<a name="line.516"></a>
+<span class="sourceLineNo">517</span>      rightCanGrow = rightNode.canGrow(procId);<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      if (leftNode != null) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        if (leftNode.canMerge(rightNode)) {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>          // merge left and right node<a name="line.520"></a>
+<span class="sourceLineNo">521</span>          return mergeNodes(leftNode, rightNode);<a name="line.521"></a>
+<span class="sourceLineNo">522</span>        }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span>        if (leftCanGrow &amp;&amp; rightCanGrow) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>          if ((procId - leftNode.getEnd()) &lt;= (rightNode.getStart() - procId)) {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>            // grow the left node<a name="line.526"></a>
+<span class="sourceLineNo">527</span>            return growNode(leftNode, procId);<a name="line.527"></a>
+<span class="sourceLineNo">528</span>          }<a name="line.528"></a>
+<span class="sourceLineNo">529</span>          // grow the right node<a name="line.529"></a>
+<span class="sourceLineNo">530</span>          return growNode(rightNode, procId);<a name="line.530"></a>
+<span class="sourceLineNo">531</span>        }<a name="line.531"></a>
+<span class="sourceLineNo">532</span>      }<a name="line.532"></a>
+<span class="sourceLineNo">533</span>    }<a name="line.533"></a>
+<span class="sourceLineNo">534</span><a name="line.534"></a>
+<span class="sourceLineNo">535</span>    // grow the left node<a name="line.535"></a>
+<span class="sourceLineNo">536</span>    if (leftCanGrow) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>      return growNode(leftNode, procId);<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>    // grow the right node<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    if (rightCanGrow) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>      return growNode(rightNode, procId);<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>    // add new node<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    BitSetNode node = new BitSetNode(procId, partial);<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    map.put(node.getStart(), node);<a name="line.547"></a>
+<span class="sourceLineNo">548</span>    return node;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>  private BitSetNode growNode(BitSetNode node, long procId) {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>    map.remove(node.getStart());<a name="line.552"></a>
+<span class="sourceLineNo">553</span>    node.grow(procId);<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    map.put(node.getStart(), node);<a name="line.554"></a>
+<span class="sourceLineNo">555</span>    return node;<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>  private BitSetNode mergeNodes(BitSetNode leftNode, BitSetNode rightNode) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>    assert leftNode.getStart() &lt; rightNode.getStart();<a name="line.559"></a>
+<span class="sourceLineNo">560</span>    leftNode.merge(rightNode);<a name="line.560"></a>
+<span class="sourceLineNo">561</span>    map.remove(rightNode.getStart());<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    return leftNode;<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>  public void dump() {<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    System.out.println("map " + map.size());<a name="line.566"></a>
+<span class="sourceLineNo">567</span>    System.out.println("isUpdated " + isUpdated());<a name="line.567"></a>
+<span class="sourceLineNo">568</span>    System.out.println("isEmpty " + isEmpty());<a name="line.568"></a>
+<span class="sourceLineNo">569</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>      entry.getValue().dump();<a name="line.570"></a>
+<span class="sourceLineNo">571</span>    }<a name="line.571"></a>
+<span class="sourceLineNo">572</span>  }<a name="line.572"></a>
+<span class="sourceLineNo">573</span><a name="line.573"></a>
+<span class="sourceLineNo">574</span>  public void writeTo(final OutputStream stream) throws IOException {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    ProcedureProtos.ProcedureStoreTracker.Builder builder =<a name="line.575"></a>
+<span class="sourceLineNo">576</span>        ProcedureProtos.ProcedureStoreTracker.newBuilder();<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>      builder.addNode(entry.getValue().convert());<a name="line.578"></a>
+<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
+<span class="sourceLineNo">580</span>    builder.build().writeDelimitedTo(stream);<a name="line.580"></a>
+<span class="sourceLineNo">581</span>  }<a name="line.581"></a>
+<span class="sourceLineNo">582</span><a name="line.582"></a>
+<span class="sourceLineNo">583</span>  public void readFrom(final InputStream stream) throws IOException {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>    reset();<a name="line.584"></a>
+<span class="sourceLineNo">585</span>    final ProcedureProtos.ProcedureStoreTracker data =<a name="line.585"></a>
+<span class="sourceLineNo">586</span>        ProcedureProtos.ProcedureStoreTracker.parseDelimitedFrom(stream);<a name="line.586"></a>
+<span class="sourceLineNo">587</span>    for (ProcedureProtos.ProcedureStoreTracker.TrackerNode protoNode: data.getNodeList()) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>      final BitSetNode node = BitSetNode.convert(protoNode);<a name="line.588"></a>
+<span class="sourceLineNo">589</span>      map.put(node.getStart(), node);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>    }<a name="line.590"></a>
+<span class="sourceLineNo">591</span>  }<a name="line.591"></a>
+<span class="sourceLineNo">592</span>}<a name="line.592"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html
index f6c7b80..1c21359 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html
@@ -422,180 +422,182 @@
 <span class="sourceLineNo">414</span>    node.updateState(procId, isDeleted);<a name="line.414"></a>
 <span class="sourceLineNo">415</span>  }<a name="line.415"></a>
 <span class="sourceLineNo">416</span><a name="line.416"></a>
-<span class="sourceLineNo">417</span>  public void clear() {<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    this.map.clear();<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    resetUpdates();<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>  public DeleteState isDeleted(long procId) {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    Map.Entry&lt;Long, BitSetNode&gt; entry = map.floorEntry(procId);<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    if (entry != null &amp;&amp; entry.getValue().contains(procId)) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      BitSetNode node = entry.getValue();<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      DeleteState state = node.isDeleted(procId);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      return partial &amp;&amp; !node.isUpdated(procId) ? DeleteState.MAYBE : state;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    }<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    return partial ? DeleteState.MAYBE : DeleteState.YES;<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  }<a name="line.430"></a>
-<span class="sourceLineNo">431</span><a name="line.431"></a>
-<span class="sourceLineNo">432</span>  public long getMinProcId() {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    // TODO: Cache?<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    Map.Entry&lt;Long, BitSetNode&gt; entry = map.firstEntry();<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    return entry == null ? 0 : entry.getValue().getMinProcId();<a name="line.435"></a>
-<span class="sourceLineNo">436</span>  }<a name="line.436"></a>
-<span class="sourceLineNo">437</span><a name="line.437"></a>
-<span class="sourceLineNo">438</span>  public void setKeepDeletes(boolean keepDeletes) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    this.keepDeletes = keepDeletes;<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    if (!keepDeletes) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      Iterator&lt;Map.Entry&lt;Long, BitSetNode&gt;&gt; it = map.entrySet().iterator();<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      while (it.hasNext()) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        Map.Entry&lt;Long, BitSetNode&gt; entry = it.next();<a name="line.443"></a>
-<span class="sourceLineNo">444</span>        if (entry.getValue().isEmpty()) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>          it.remove();<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>  }<a name="line.449"></a>
-<span class="sourceLineNo">450</span><a name="line.450"></a>
-<span class="sourceLineNo">451</span>  public void setPartialFlag(boolean isPartial) {<a name="line.451"></a>
-<span class="sourceLineNo">452</span>    if (this.partial &amp;&amp; !isPartial) {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>        entry.getValue().unsetPartialFlag();<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>    this.partial = isPartial;<a name="line.457"></a>
-<span class="sourceLineNo">458</span>  }<a name="line.458"></a>
-<span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>  public boolean isEmpty() {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      if (entry.getValue().isEmpty() == false) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>        return false;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      }<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    }<a name="line.465"></a>
-<span class="sourceLineNo">466</span>    return true;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>  }<a name="line.467"></a>
-<span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>  public boolean isUpdated() {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>      if (entry.getValue().isUpdated() == false) {<a name="line.471"></a>
-<span class="sourceLineNo">472</span>        return false;<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      }<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    }<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    return true;<a name="line.475"></a>
-<span class="sourceLineNo">476</span>  }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>  public boolean isTracking(long minId, long maxId) {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    // TODO: we can make it more precise, instead of looking just at the block<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    return map.floorEntry(minId) != null || map.floorEntry(maxId) != null;<a name="line.480"></a>
-<span class="sourceLineNo">481</span>  }<a name="line.481"></a>
-<span class="sourceLineNo">482</span><a name="line.482"></a>
-<span class="sourceLineNo">483</span>  public void resetUpdates() {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>      entry.getValue().resetUpdates();<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    }<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    minUpdatedProcId = Long.MAX_VALUE;<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    maxUpdatedProcId = Long.MIN_VALUE;<a name="line.488"></a>
-<span class="sourceLineNo">489</span>  }<a name="line.489"></a>
-<span class="sourceLineNo">490</span><a name="line.490"></a>
-<span class="sourceLineNo">491</span>  public void undeleteAll() {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      entry.getValue().undeleteAll();<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    }<a name="line.494"></a>
-<span class="sourceLineNo">495</span>  }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>  private BitSetNode getOrCreateNode(final long procId) {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    // can procId fit in the left node?<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    BitSetNode leftNode = null;<a name="line.499"></a>
-<span class="sourceLineNo">500</span>    boolean leftCanGrow = false;<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    Map.Entry&lt;Long, BitSetNode&gt; leftEntry = map.floorEntry(procId);<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    if (leftEntry != null) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      leftNode = leftEntry.getValue();<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      if (leftNode.contains(procId)) {<a name="line.504"></a>
-<span class="sourceLineNo">505</span>        return leftNode;<a name="line.505"></a>
-<span class="sourceLineNo">506</span>      }<a name="line.506"></a>
-<span class="sourceLineNo">507</span>      leftCanGrow = leftNode.canGrow(procId);<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>    BitSetNode rightNode = null;<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    boolean rightCanGrow = false;<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    Map.Entry&lt;Long, BitSetNode&gt; rightEntry = map.ceilingEntry(procId);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    if (rightEntry != null) {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      rightNode = rightEntry.getValue();<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      rightCanGrow = rightNode.canGrow(procId);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      if (leftNode != null) {<a name="line.516"></a>
-<span class="sourceLineNo">517</span>        if (leftNode.canMerge(rightNode)) {<a name="line.517"></a>
-<span class="sourceLineNo">518</span>          // merge left and right node<a name="line.518"></a>
-<span class="sourceLineNo">519</span>          return mergeNodes(leftNode, rightNode);<a name="line.519"></a>
-<span class="sourceLineNo">520</span>        }<a name="line.520"></a>
-<span class="sourceLineNo">521</span><a name="line.521"></a>
-<span class="sourceLineNo">522</span>        if (leftCanGrow &amp;&amp; rightCanGrow) {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>          if ((procId - leftNode.getEnd()) &lt;= (rightNode.getStart() - procId)) {<a name="line.523"></a>
-<span class="sourceLineNo">524</span>            // grow the left node<a name="line.524"></a>
-<span class="sourceLineNo">525</span>            return growNode(leftNode, procId);<a name="line.525"></a>
-<span class="sourceLineNo">526</span>          }<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          // grow the right node<a name="line.527"></a>
-<span class="sourceLineNo">528</span>          return growNode(rightNode, procId);<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><a name="line.532"></a>
-<span class="sourceLineNo">533</span>    // grow the left node<a name="line.533"></a>
-<span class="sourceLineNo">534</span>    if (leftCanGrow) {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>      return growNode(leftNode, procId);<a name="line.535"></a>
-<span class="sourceLineNo">536</span>    }<a name="line.536"></a>
-<span class="sourceLineNo">537</span><a name="line.537"></a>
-<span class="sourceLineNo">538</span>    // grow the right node<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    if (rightCanGrow) {<a name="line.539"></a>
-<span class="sourceLineNo">540</span>      return growNode(rightNode, procId);<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    }<a name="line.541"></a>
-<span class="sourceLineNo">542</span><a name="line.542"></a>
-<span class="sourceLineNo">543</span>    // add new node<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    BitSetNode node = new BitSetNode(procId, partial);<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    map.put(node.getStart(), node);<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    return node;<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>  private BitSetNode growNode(BitSetNode node, long procId) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    map.remove(node.getStart());<a name="line.550"></a>
-<span class="sourceLineNo">551</span>    node.grow(procId);<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    map.put(node.getStart(), node);<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    return node;<a name="line.553"></a>
-<span class="sourceLineNo">554</span>  }<a name="line.554"></a>
-<span class="sourceLineNo">555</span><a name="line.555"></a>
-<span class="sourceLineNo">556</span>  private BitSetNode mergeNodes(BitSetNode leftNode, BitSetNode rightNode) {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>    assert leftNode.getStart() &lt; rightNode.getStart();<a name="line.557"></a>
-<span class="sourceLineNo">558</span>    leftNode.merge(rightNode);<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    map.remove(rightNode.getStart());<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    return leftNode;<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>  public void dump() {<a name="line.563"></a>
-<span class="sourceLineNo">564</span>    System.out.println("map " + map.size());<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    System.out.println("isUpdated " + isUpdated());<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    System.out.println("isEmpty " + isEmpty());<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.567"></a>
-<span class="sourceLineNo">568</span>      entry.getValue().dump();<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    }<a name="line.569"></a>
-<span class="sourceLineNo">570</span>  }<a name="line.570"></a>
-<span class="sourceLineNo">571</span><a name="line.571"></a>
-<span class="sourceLineNo">572</span>  public void writeTo(final OutputStream stream) throws IOException {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    ProcedureProtos.ProcedureStoreTracker.Builder builder =<a name="line.573"></a>
-<span class="sourceLineNo">574</span>        ProcedureProtos.ProcedureStoreTracker.newBuilder();<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      builder.addNode(entry.getValue().convert());<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    }<a name="line.577"></a>
-<span class="sourceLineNo">578</span>    builder.build().writeDelimitedTo(stream);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>  }<a name="line.579"></a>
-<span class="sourceLineNo">580</span><a name="line.580"></a>
-<span class="sourceLineNo">581</span>  public void readFrom(final InputStream stream) throws IOException {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    ProcedureProtos.ProcedureStoreTracker data =<a name="line.582"></a>
-<span class="sourceLineNo">583</span>        ProcedureProtos.ProcedureStoreTracker.parseDelimitedFrom(stream);<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    map.clear();<a name="line.584"></a>
-<span class="sourceLineNo">585</span>    for (ProcedureProtos.ProcedureStoreTracker.TrackerNode protoNode: data.getNodeList()) {<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      BitSetNode node = BitSetNode.convert(protoNode);<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      map.put(node.getStart(), node);<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    }<a name="line.588"></a>
-<span class="sourceLineNo">589</span>  }<a name="line.589"></a>
-<span class="sourceLineNo">590</span>}<a name="line.590"></a>
+<span class="sourceLineNo">417</span>  public void reset() {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    this.keepDeletes = false;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    this.partial = false;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    this.map.clear();<a name="line.420"></a>
+<span class="sourceLineNo">421</span>    resetUpdates();<a name="line.421"></a>
+<span class="sourceLineNo">422</span>  }<a name="line.422"></a>
+<span class="sourceLineNo">423</span><a name="line.423"></a>
+<span class="sourceLineNo">424</span>  public DeleteState isDeleted(long procId) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    Map.Entry&lt;Long, BitSetNode&gt; entry = map.floorEntry(procId);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    if (entry != null &amp;&amp; entry.getValue().contains(procId)) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      BitSetNode node = entry.getValue();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      DeleteState state = node.isDeleted(procId);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      return partial &amp;&amp; !node.isUpdated(procId) ? DeleteState.MAYBE : state;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    }<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    return partial ? DeleteState.MAYBE : DeleteState.YES;<a name="line.431"></a>
+<span class="sourceLineNo">432</span>  }<a name="line.432"></a>
+<span class="sourceLineNo">433</span><a name="line.433"></a>
+<span class="sourceLineNo">434</span>  public long getMinProcId() {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>    // TODO: Cache?<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    Map.Entry&lt;Long, BitSetNode&gt; entry = map.firstEntry();<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    return entry == null ? 0 : entry.getValue().getMinProcId();<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>  public void setKeepDeletes(boolean keepDeletes) {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    this.keepDeletes = keepDeletes;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    if (!keepDeletes) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      Iterator&lt;Map.Entry&lt;Long, BitSetNode&gt;&gt; it = map.entrySet().iterator();<a name="line.443"></a>
+<span class="sourceLineNo">444</span>      while (it.hasNext()) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>        Map.Entry&lt;Long, BitSetNode&gt; entry = it.next();<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        if (entry.getValue().isEmpty()) {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>          it.remove();<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>  }<a name="line.451"></a>
+<span class="sourceLineNo">452</span><a name="line.452"></a>
+<span class="sourceLineNo">453</span>  public void setPartialFlag(boolean isPartial) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    if (this.partial &amp;&amp; !isPartial) {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>      for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        entry.getValue().unsetPartialFlag();<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      }<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    }<a name="line.458"></a>
+<span class="sourceLineNo">459</span>    this.partial = isPartial;<a name="line.459"></a>
+<span class="sourceLineNo">460</span>  }<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>  public boolean isEmpty() {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>      if (entry.getValue().isEmpty() == false) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        return false;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>      }<a name="line.466"></a>
+<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
+<span class="sourceLineNo">468</span>    return true;<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>  public boolean isUpdated() {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>      if (entry.getValue().isUpdated() == false) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        return false;<a name="line.474"></a>
+<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    }<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    return true;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>  }<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>  public boolean isTracking(long minId, long maxId) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    // TODO: we can make it more precise, instead of looking just at the block<a name="line.481"></a>
+<span class="sourceLineNo">482</span>    return map.floorEntry(minId) != null || map.floorEntry(maxId) != null;<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>  public void resetUpdates() {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.486"></a>
+<span class="sourceLineNo">487</span>      entry.getValue().resetUpdates();<a name="line.487"></a>
+<span class="sourceLineNo">488</span>    }<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    minUpdatedProcId = Long.MAX_VALUE;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    maxUpdatedProcId = Long.MIN_VALUE;<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>  public void undeleteAll() {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>      entry.getValue().undeleteAll();<a name="line.495"></a>
+<span class="sourceLineNo">496</span>    }<a name="line.496"></a>
+<span class="sourceLineNo">497</span>  }<a name="line.497"></a>
+<span class="sourceLineNo">498</span><a name="line.498"></a>
+<span class="sourceLineNo">499</span>  private BitSetNode getOrCreateNode(final long procId) {<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    // can procId fit in the left node?<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    BitSetNode leftNode = null;<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    boolean leftCanGrow = false;<a name="line.502"></a>
+<span class="sourceLineNo">503</span>    Map.Entry&lt;Long, BitSetNode&gt; leftEntry = map.floorEntry(procId);<a name="line.503"></a>
+<span class="sourceLineNo">504</span>    if (leftEntry != null) {<a name="line.504"></a>
+<span class="sourceLineNo">505</span>      leftNode = leftEntry.getValue();<a name="line.505"></a>
+<span class="sourceLineNo">506</span>      if (leftNode.contains(procId)) {<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        return leftNode;<a name="line.507"></a>
+<span class="sourceLineNo">508</span>      }<a name="line.508"></a>
+<span class="sourceLineNo">509</span>      leftCanGrow = leftNode.canGrow(procId);<a name="line.509"></a>
+<span class="sourceLineNo">510</span>    }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>    BitSetNode rightNode = null;<a name="line.512"></a>
+<span class="sourceLineNo">513</span>    boolean rightCanGrow = false;<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    Map.Entry&lt;Long, BitSetNode&gt; rightEntry = map.ceilingEntry(procId);<a name="line.514"></a>
+<span class="sourceLineNo">515</span>    if (rightEntry != null) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>      rightNode = rightEntry.getValue();<a name="line.516"></a>
+<span class="sourceLineNo">517</span>      rightCanGrow = rightNode.canGrow(procId);<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      if (leftNode != null) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        if (leftNode.canMerge(rightNode)) {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>          // merge left and right node<a name="line.520"></a>
+<span class="sourceLineNo">521</span>          return mergeNodes(leftNode, rightNode);<a name="line.521"></a>
+<span class="sourceLineNo">522</span>        }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span>        if (leftCanGrow &amp;&amp; rightCanGrow) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>          if ((procId - leftNode.getEnd()) &lt;= (rightNode.getStart() - procId)) {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>            // grow the left node<a name="line.526"></a>
+<span class="sourceLineNo">527</span>            return growNode(leftNode, procId);<a name="line.527"></a>
+<span class="sourceLineNo">528</span>          }<a name="line.528"></a>
+<span class="sourceLineNo">529</span>          // grow the right node<a name="line.529"></a>
+<span class="sourceLineNo">530</span>          return growNode(rightNode, procId);<a name="line.530"></a>
+<span class="sourceLineNo">531</span>        }<a name="line.531"></a>
+<span class="sourceLineNo">532</span>      }<a name="line.532"></a>
+<span class="sourceLineNo">533</span>    }<a name="line.533"></a>
+<span class="sourceLineNo">534</span><a name="line.534"></a>
+<span class="sourceLineNo">535</span>    // grow the left node<a name="line.535"></a>
+<span class="sourceLineNo">536</span>    if (leftCanGrow) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>      return growNode(leftNode, procId);<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>    // grow the right node<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    if (rightCanGrow) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>      return growNode(rightNode, procId);<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>    // add new node<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    BitSetNode node = new BitSetNode(procId, partial);<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    map.put(node.getStart(), node);<a name="line.547"></a>
+<span class="sourceLineNo">548</span>    return node;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>  private BitSetNode growNode(BitSetNode node, long procId) {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>    map.remove(node.getStart());<a name="line.552"></a>
+<span class="sourceLineNo">553</span>    node.grow(procId);<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    map.put(node.getStart(), node);<a name="line.554"></a>
+<span class="sourceLineNo">555</span>    return node;<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>  private BitSetNode mergeNodes(BitSetNode leftNode, BitSetNode rightNode) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>    assert leftNode.getStart() &lt; rightNode.getStart();<a name="line.559"></a>
+<span class="sourceLineNo">560</span>    leftNode.merge(rightNode);<a name="line.560"></a>
+<span class="sourceLineNo">561</span>    map.remove(rightNode.getStart());<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    return leftNode;<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>  public void dump() {<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    System.out.println("map " + map.size());<a name="line.566"></a>
+<span class="sourceLineNo">567</span>    System.out.println("isUpdated " + isUpdated());<a name="line.567"></a>
+<span class="sourceLineNo">568</span>    System.out.println("isEmpty " + isEmpty());<a name="line.568"></a>
+<span class="sourceLineNo">569</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>      entry.getValue().dump();<a name="line.570"></a>
+<span class="sourceLineNo">571</span>    }<a name="line.571"></a>
+<span class="sourceLineNo">572</span>  }<a name="line.572"></a>
+<span class="sourceLineNo">573</span><a name="line.573"></a>
+<span class="sourceLineNo">574</span>  public void writeTo(final OutputStream stream) throws IOException {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    ProcedureProtos.ProcedureStoreTracker.Builder builder =<a name="line.575"></a>
+<span class="sourceLineNo">576</span>        ProcedureProtos.ProcedureStoreTracker.newBuilder();<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>      builder.addNode(entry.getValue().convert());<a name="line.578"></a>
+<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
+<span class="sourceLineNo">580</span>    builder.build().writeDelimitedTo(stream);<a name="line.580"></a>
+<span class="sourceLineNo">581</span>  }<a name="line.581"></a>
+<span class="sourceLineNo">582</span><a name="line.582"></a>
+<span class="sourceLineNo">583</span>  public void readFrom(final InputStream stream) throws IOException {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>    reset();<a name="line.584"></a>
+<span class="sourceLineNo">585</span>    final ProcedureProtos.ProcedureStoreTracker data =<a name="line.585"></a>
+<span class="sourceLineNo">586</span>        ProcedureProtos.ProcedureStoreTracker.parseDelimitedFrom(stream);<a name="line.586"></a>
+<span class="sourceLineNo">587</span>    for (ProcedureProtos.ProcedureStoreTracker.TrackerNode protoNode: data.getNodeList()) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>      final BitSetNode node = BitSetNode.convert(protoNode);<a name="line.588"></a>
+<span class="sourceLineNo">589</span>      map.put(node.getStart(), node);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>    }<a name="line.590"></a>
+<span class="sourceLineNo">591</span>  }<a name="line.591"></a>
+<span class="sourceLineNo">592</span>}<a name="line.592"></a>
 
 
 


[22/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html
index 0311d6d..758241b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html
@@ -522,8 +522,8 @@
 <span class="sourceLineNo">514</span>        "Unable to merge regions not online " + regionStateA + ", " + regionStateB));<a name="line.514"></a>
 <span class="sourceLineNo">515</span>    }<a name="line.515"></a>
 <span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>    HRegionInfo regionInfoA = regionStateA.getRegion();<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    HRegionInfo regionInfoB = regionStateB.getRegion();<a name="line.518"></a>
+<span class="sourceLineNo">517</span>    final HRegionInfo regionInfoA = regionStateA.getRegion();<a name="line.517"></a>
+<span class="sourceLineNo">518</span>    final HRegionInfo regionInfoB = regionStateB.getRegion();<a name="line.518"></a>
 <span class="sourceLineNo">519</span>    if (regionInfoA.getReplicaId() != HRegionInfo.DEFAULT_REPLICA_ID ||<a name="line.519"></a>
 <span class="sourceLineNo">520</span>        regionInfoB.getReplicaId() != HRegionInfo.DEFAULT_REPLICA_ID) {<a name="line.520"></a>
 <span class="sourceLineNo">521</span>      throw new ServiceException(new MergeRegionException("Can't merge non-default replicas"));<a name="line.521"></a>
@@ -532,1050 +532,1056 @@
 <span class="sourceLineNo">524</span>      throw new ServiceException(new MergeRegionException(<a name="line.524"></a>
 <span class="sourceLineNo">525</span>        "Unable to merge a region to itself " + regionInfoA + ", " + regionInfoB));<a name="line.525"></a>
 <span class="sourceLineNo">526</span>    }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>    if (!forcible &amp;&amp; !HRegionInfo.areAdjacent(regionInfoA, regionInfoB)) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>      throw new ServiceException(new MergeRegionException(<a name="line.529"></a>
-<span class="sourceLineNo">530</span>        "Unable to merge not adjacent regions "<a name="line.530"></a>
-<span class="sourceLineNo">531</span>          + regionInfoA.getRegionNameAsString() + ", "<a name="line.531"></a>
-<span class="sourceLineNo">532</span>          + regionInfoB.getRegionNameAsString()<a name="line.532"></a>
-<span class="sourceLineNo">533</span>          + " where forcible = " + forcible));<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>    try {<a name="line.536"></a>
-<span class="sourceLineNo">537</span>      master.dispatchMergingRegions(regionInfoA, regionInfoB, forcible);<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    } catch (IOException ioe) {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>      throw new ServiceException(ioe);<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>    return DispatchMergingRegionsResponse.newBuilder().build();<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 EnableCatalogJanitorResponse enableCatalogJanitor(RpcController c,<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      EnableCatalogJanitorRequest req) throws ServiceException {<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    try {<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      master.checkInitialized();<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    } catch (IOException ioe) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      throw new ServiceException(ioe);<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    }<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    return EnableCatalogJanitorResponse.newBuilder().setPrevValue(<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      master.catalogJanitorChore.setEnabled(req.getEnable())).build();<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 EnableTableResponse enableTable(RpcController controller,<a name="line.558"></a>
-<span class="sourceLineNo">559</span>      EnableTableRequest request) throws ServiceException {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    try {<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      long procId = master.enableTable(<a name="line.561"></a>
-<span class="sourceLineNo">562</span>        ProtobufUtil.toTableName(request.getTableName()),<a name="line.562"></a>
-<span class="sourceLineNo">563</span>        request.getNonceGroup(),<a name="line.563"></a>
-<span class="sourceLineNo">564</span>        request.getNonce());<a name="line.564"></a>
-<span class="sourceLineNo">565</span>      return EnableTableResponse.newBuilder().setProcId(procId).build();<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    } catch (IOException ioe) {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>      throw new ServiceException(ioe);<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>
-<span class="sourceLineNo">570</span><a name="line.570"></a>
-<span class="sourceLineNo">571</span>  @Override<a name="line.571"></a>
-<span class="sourceLineNo">572</span>  public ClientProtos.CoprocessorServiceResponse execMasterService(final RpcController controller,<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      final ClientProtos.CoprocessorServiceRequest request) throws ServiceException {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    try {<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      master.checkInitialized();<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      ServerRpcController execController = new ServerRpcController();<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>      ClientProtos.CoprocessorServiceCall call = request.getCall();<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      String serviceName = call.getServiceName();<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      String methodName = call.getMethodName();<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      if (!master.coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>        throw new UnknownProtocolException(null,<a name="line.582"></a>
-<span class="sourceLineNo">583</span>          "No registered master coprocessor service found for name "+serviceName);<a name="line.583"></a>
-<span class="sourceLineNo">584</span>      }<a name="line.584"></a>
-<span class="sourceLineNo">585</span><a name="line.585"></a>
-<span class="sourceLineNo">586</span>      Service service = master.coprocessorServiceHandlers.get(serviceName);<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      Descriptors.MethodDescriptor methodDesc = serviceDesc.findMethodByName(methodName);<a name="line.588"></a>
-<span class="sourceLineNo">589</span>      if (methodDesc == null) {<a name="line.589"></a>
-<span class="sourceLineNo">590</span>        throw new UnknownProtocolException(service.getClass(),<a name="line.590"></a>
-<span class="sourceLineNo">591</span>          "Unknown method "+methodName+" called on master service "+serviceName);<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      }<a name="line.592"></a>
-<span class="sourceLineNo">593</span><a name="line.593"></a>
-<span class="sourceLineNo">594</span>      //invoke the method<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      Message.Builder builderForType = service.getRequestPrototype(methodDesc).newBuilderForType();<a name="line.595"></a>
-<span class="sourceLineNo">596</span>      ProtobufUtil.mergeFrom(builderForType, call.getRequest());<a name="line.596"></a>
-<span class="sourceLineNo">597</span>      Message execRequest = builderForType.build();<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      final Message.Builder responseBuilder =<a name="line.598"></a>
-<span class="sourceLineNo">599</span>          service.getResponsePrototype(methodDesc).newBuilderForType();<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      service.callMethod(methodDesc, execController, execRequest, new RpcCallback&lt;Message&gt;() {<a name="line.600"></a>
-<span class="sourceLineNo">601</span>        @Override<a name="line.601"></a>
-<span class="sourceLineNo">602</span>        public void run(Message message) {<a name="line.602"></a>
-<span class="sourceLineNo">603</span>          if (message != null) {<a name="line.603"></a>
-<span class="sourceLineNo">604</span>            responseBuilder.mergeFrom(message);<a name="line.604"></a>
-<span class="sourceLineNo">605</span>          }<a name="line.605"></a>
-<span class="sourceLineNo">606</span>        }<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      });<a name="line.607"></a>
-<span class="sourceLineNo">608</span>      Message execResult = responseBuilder.build();<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>      if (execController.getFailedOn() != null) {<a name="line.610"></a>
-<span class="sourceLineNo">611</span>        throw execController.getFailedOn();<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      }<a name="line.612"></a>
-<span class="sourceLineNo">613</span>      ClientProtos.CoprocessorServiceResponse.Builder builder =<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        ClientProtos.CoprocessorServiceResponse.newBuilder();<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      builder.setRegion(RequestConverter.buildRegionSpecifier(<a name="line.615"></a>
-<span class="sourceLineNo">616</span>        RegionSpecifierType.REGION_NAME, HConstants.EMPTY_BYTE_ARRAY));<a name="line.616"></a>
-<span class="sourceLineNo">617</span>      builder.setValue(<a name="line.617"></a>
-<span class="sourceLineNo">618</span>        builder.getValueBuilder().setName(execResult.getClass().getName())<a name="line.618"></a>
-<span class="sourceLineNo">619</span>          .setValue(execResult.toByteString()));<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      return builder.build();<a name="line.620"></a>
-<span class="sourceLineNo">621</span>    } catch (IOException ie) {<a name="line.621"></a>
-<span class="sourceLineNo">622</span>      throw new ServiceException(ie);<a name="line.622"></a>
-<span class="sourceLineNo">623</span>    }<a name="line.623"></a>
-<span class="sourceLineNo">624</span>  }<a name="line.624"></a>
-<span class="sourceLineNo">625</span><a name="line.625"></a>
-<span class="sourceLineNo">626</span>  /**<a name="line.626"></a>
-<span class="sourceLineNo">627</span>   * Triggers an asynchronous attempt to run a distributed procedure.<a name="line.627"></a>
-<span class="sourceLineNo">628</span>   * {@inheritDoc}<a name="line.628"></a>
-<span class="sourceLineNo">629</span>   */<a name="line.629"></a>
-<span class="sourceLineNo">630</span>  @Override<a name="line.630"></a>
-<span class="sourceLineNo">631</span>  public ExecProcedureResponse execProcedure(RpcController controller,<a name="line.631"></a>
-<span class="sourceLineNo">632</span>      ExecProcedureRequest request) throws ServiceException {<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    try {<a name="line.633"></a>
-<span class="sourceLineNo">634</span>      master.checkInitialized();<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      ProcedureDescription desc = request.getProcedure();<a name="line.635"></a>
-<span class="sourceLineNo">636</span>      MasterProcedureManager mpm = master.mpmHost.getProcedureManager(<a name="line.636"></a>
-<span class="sourceLineNo">637</span>        desc.getSignature());<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      if (mpm == null) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>        throw new ServiceException("The procedure is not registered: "<a name="line.639"></a>
-<span class="sourceLineNo">640</span>          + desc.getSignature());<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>      LOG.info(master.getClientIdAuditPrefix() + " procedure request for: "<a name="line.643"></a>
-<span class="sourceLineNo">644</span>        + desc.getSignature());<a name="line.644"></a>
-<span class="sourceLineNo">645</span><a name="line.645"></a>
-<span class="sourceLineNo">646</span>      mpm.execProcedure(desc);<a name="line.646"></a>
-<span class="sourceLineNo">647</span><a name="line.647"></a>
-<span class="sourceLineNo">648</span>      // send back the max amount of time the client should wait for the procedure<a name="line.648"></a>
-<span class="sourceLineNo">649</span>      // to complete<a name="line.649"></a>
-<span class="sourceLineNo">650</span>      long waitTime = SnapshotDescriptionUtils.DEFAULT_MAX_WAIT_TIME;<a name="line.650"></a>
-<span class="sourceLineNo">651</span>      return ExecProcedureResponse.newBuilder().setExpectedTimeout(<a name="line.651"></a>
-<span class="sourceLineNo">652</span>        waitTime).build();<a name="line.652"></a>
-<span class="sourceLineNo">653</span>    } catch (ForeignException e) {<a name="line.653"></a>
-<span class="sourceLineNo">654</span>      throw new ServiceException(e.getCause());<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    } catch (IOException e) {<a name="line.655"></a>
-<span class="sourceLineNo">656</span>      throw new ServiceException(e);<a name="line.656"></a>
-<span class="sourceLineNo">657</span>    }<a name="line.657"></a>
-<span class="sourceLineNo">658</span>  }<a name="line.658"></a>
-<span class="sourceLineNo">659</span><a name="line.659"></a>
-<span class="sourceLineNo">660</span>  /**<a name="line.660"></a>
-<span class="sourceLineNo">661</span>   * Triggers a synchronous attempt to run a distributed procedure and sets<a name="line.661"></a>
-<span class="sourceLineNo">662</span>   * return data in response.<a name="line.662"></a>
-<span class="sourceLineNo">663</span>   * {@inheritDoc}<a name="line.663"></a>
-<span class="sourceLineNo">664</span>   */<a name="line.664"></a>
-<span class="sourceLineNo">665</span>  @Override<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  public ExecProcedureResponse execProcedureWithRet(RpcController controller,<a name="line.666"></a>
-<span class="sourceLineNo">667</span>      ExecProcedureRequest request) throws ServiceException {<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    try {<a name="line.668"></a>
-<span class="sourceLineNo">669</span>      master.checkInitialized();<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      ProcedureDescription desc = request.getProcedure();<a name="line.670"></a>
-<span class="sourceLineNo">671</span>      MasterProcedureManager mpm = master.mpmHost.getProcedureManager(<a name="line.671"></a>
-<span class="sourceLineNo">672</span>        desc.getSignature());<a name="line.672"></a>
-<span class="sourceLineNo">673</span>      if (mpm == null) {<a name="line.673"></a>
-<span class="sourceLineNo">674</span>        throw new ServiceException("The procedure is not registered: "<a name="line.674"></a>
-<span class="sourceLineNo">675</span>          + desc.getSignature());<a name="line.675"></a>
-<span class="sourceLineNo">676</span>      }<a name="line.676"></a>
-<span class="sourceLineNo">677</span><a name="line.677"></a>
-<span class="sourceLineNo">678</span>      LOG.info(master.getClientIdAuditPrefix() + " procedure request for: "<a name="line.678"></a>
-<span class="sourceLineNo">679</span>        + desc.getSignature());<a name="line.679"></a>
-<span class="sourceLineNo">680</span><a name="line.680"></a>
-<span class="sourceLineNo">681</span>      byte[] data = mpm.execProcedureWithRet(desc);<a name="line.681"></a>
-<span class="sourceLineNo">682</span><a name="line.682"></a>
-<span class="sourceLineNo">683</span>      ExecProcedureResponse.Builder builder = ExecProcedureResponse.newBuilder();<a name="line.683"></a>
-<span class="sourceLineNo">684</span>      // set return data if available<a name="line.684"></a>
-<span class="sourceLineNo">685</span>      if (data != null) {<a name="line.685"></a>
-<span class="sourceLineNo">686</span>        builder.setReturnData(ByteString.copyFrom(data));<a name="line.686"></a>
-<span class="sourceLineNo">687</span>      }<a name="line.687"></a>
-<span class="sourceLineNo">688</span>      return builder.build();<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    } catch (IOException e) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>      throw new ServiceException(e);<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><a name="line.693"></a>
-<span class="sourceLineNo">694</span>  @Override<a name="line.694"></a>
-<span class="sourceLineNo">695</span>  public GetClusterStatusResponse getClusterStatus(RpcController controller,<a name="line.695"></a>
-<span class="sourceLineNo">696</span>      GetClusterStatusRequest req) throws ServiceException {<a name="line.696"></a>
-<span class="sourceLineNo">697</span>    GetClusterStatusResponse.Builder response = GetClusterStatusResponse.newBuilder();<a name="line.697"></a>
-<span class="sourceLineNo">698</span>    try {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>      master.checkInitialized();<a name="line.699"></a>
-<span class="sourceLineNo">700</span>      response.setClusterStatus(master.getClusterStatus().convert());<a name="line.700"></a>
-<span class="sourceLineNo">701</span>    } catch (IOException e) {<a name="line.701"></a>
-<span class="sourceLineNo">702</span>      throw new ServiceException(e);<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    }<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    return response.build();<a name="line.704"></a>
-<span class="sourceLineNo">705</span>  }<a name="line.705"></a>
-<span class="sourceLineNo">706</span><a name="line.706"></a>
-<span class="sourceLineNo">707</span>  /**<a name="line.707"></a>
-<span class="sourceLineNo">708</span>   * List the currently available/stored snapshots. Any in-progress snapshots are ignored<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 GetCompletedSnapshotsResponse getCompletedSnapshots(RpcController controller,<a name="line.711"></a>
-<span class="sourceLineNo">712</span>      GetCompletedSnapshotsRequest request) throws ServiceException {<a name="line.712"></a>
-<span class="sourceLineNo">713</span>    try {<a name="line.713"></a>
-<span class="sourceLineNo">714</span>      master.checkInitialized();<a name="line.714"></a>
-<span class="sourceLineNo">715</span>      GetCompletedSnapshotsResponse.Builder builder = GetCompletedSnapshotsResponse.newBuilder();<a name="line.715"></a>
-<span class="sourceLineNo">716</span>      List&lt;SnapshotDescription&gt; snapshots = master.snapshotManager.getCompletedSnapshots();<a name="line.716"></a>
-<span class="sourceLineNo">717</span><a name="line.717"></a>
-<span class="sourceLineNo">718</span>      // convert to protobuf<a name="line.718"></a>
-<span class="sourceLineNo">719</span>      for (SnapshotDescription snapshot : snapshots) {<a name="line.719"></a>
-<span class="sourceLineNo">720</span>        builder.addSnapshots(snapshot);<a name="line.720"></a>
-<span class="sourceLineNo">721</span>      }<a name="line.721"></a>
-<span class="sourceLineNo">722</span>      return builder.build();<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    } catch (IOException e) {<a name="line.723"></a>
-<span class="sourceLineNo">724</span>      throw new ServiceException(e);<a name="line.724"></a>
-<span class="sourceLineNo">725</span>    }<a name="line.725"></a>
-<span class="sourceLineNo">726</span>  }<a name="line.726"></a>
-<span class="sourceLineNo">727</span><a name="line.727"></a>
-<span class="sourceLineNo">728</span>  @Override<a name="line.728"></a>
-<span class="sourceLineNo">729</span>  public GetNamespaceDescriptorResponse getNamespaceDescriptor(<a name="line.729"></a>
-<span class="sourceLineNo">730</span>      RpcController controller, GetNamespaceDescriptorRequest request)<a name="line.730"></a>
-<span class="sourceLineNo">731</span>      throws ServiceException {<a name="line.731"></a>
-<span class="sourceLineNo">732</span>    try {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>      return GetNamespaceDescriptorResponse.newBuilder()<a name="line.733"></a>
-<span class="sourceLineNo">734</span>        .setNamespaceDescriptor(ProtobufUtil.toProtoNamespaceDescriptor(<a name="line.734"></a>
-<span class="sourceLineNo">735</span>            master.getNamespace(request.getNamespaceName())))<a name="line.735"></a>
-<span class="sourceLineNo">736</span>        .build();<a name="line.736"></a>
-<span class="sourceLineNo">737</span>    } catch (IOException e) {<a name="line.737"></a>
-<span class="sourceLineNo">738</span>      throw new ServiceException(e);<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    }<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  }<a name="line.740"></a>
-<span class="sourceLineNo">741</span><a name="line.741"></a>
-<span class="sourceLineNo">742</span>  /**<a name="line.742"></a>
-<span class="sourceLineNo">743</span>   * Get the number of regions of the table that have been updated by the alter.<a name="line.743"></a>
-<span class="sourceLineNo">744</span>   *<a name="line.744"></a>
-<span class="sourceLineNo">745</span>   * @return Pair indicating the number of regions updated Pair.getFirst is the<a name="line.745"></a>
-<span class="sourceLineNo">746</span>   *         regions that are yet to be updated Pair.getSecond is the total number<a name="line.746"></a>
-<span class="sourceLineNo">747</span>   *         of regions of the table<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   * @throws ServiceException<a name="line.748"></a>
-<span class="sourceLineNo">749</span>   */<a name="line.749"></a>
-<span class="sourceLineNo">750</span>  @Override<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  public GetSchemaAlterStatusResponse getSchemaAlterStatus(<a name="line.751"></a>
-<span class="sourceLineNo">752</span>      RpcController controller, GetSchemaAlterStatusRequest req) throws ServiceException {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    // TODO: currently, we query using the table name on the client side. this<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    // may overlap with other table operations or the table operation may<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    // have completed before querying this API. We need to refactor to a<a name="line.755"></a>
-<span class="sourceLineNo">756</span>    // transaction system in the future to avoid these ambiguities.<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    TableName tableName = ProtobufUtil.toTableName(req.getTableName());<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>    try {<a name="line.759"></a>
-<span class="sourceLineNo">760</span>      master.checkInitialized();<a name="line.760"></a>
-<span class="sourceLineNo">761</span>      Pair&lt;Integer,Integer&gt; pair = master.assignmentManager.getReopenStatus(tableName);<a name="line.761"></a>
-<span class="sourceLineNo">762</span>      GetSchemaAlterStatusResponse.Builder ret = GetSchemaAlterStatusResponse.newBuilder();<a name="line.762"></a>
-<span class="sourceLineNo">763</span>      ret.setYetToUpdateRegions(pair.getFirst());<a name="line.763"></a>
-<span class="sourceLineNo">764</span>      ret.setTotalRegions(pair.getSecond());<a name="line.764"></a>
-<span class="sourceLineNo">765</span>      return ret.build();<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    } catch (IOException ioe) {<a name="line.766"></a>
-<span class="sourceLineNo">767</span>      throw new ServiceException(ioe);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    }<a name="line.768"></a>
-<span class="sourceLineNo">769</span>  }<a name="line.769"></a>
-<span class="sourceLineNo">770</span><a name="line.770"></a>
-<span class="sourceLineNo">771</span>  /**<a name="line.771"></a>
-<span class="sourceLineNo">772</span>   * Get list of TableDescriptors for requested tables.<a name="line.772"></a>
-<span class="sourceLineNo">773</span>   * @param c Unused (set to null).<a name="line.773"></a>
-<span class="sourceLineNo">774</span>   * @param req GetTableDescriptorsRequest that contains:<a name="line.774"></a>
-<span class="sourceLineNo">775</span>   * - tableNames: requested tables, or if empty, all are requested<a name="line.775"></a>
-<span class="sourceLineNo">776</span>   * @return GetTableDescriptorsResponse<a name="line.776"></a>
-<span class="sourceLineNo">777</span>   * @throws ServiceException<a name="line.777"></a>
-<span class="sourceLineNo">778</span>   */<a name="line.778"></a>
-<span class="sourceLineNo">779</span>  @Override<a name="line.779"></a>
-<span class="sourceLineNo">780</span>  public GetTableDescriptorsResponse getTableDescriptors(RpcController c,<a name="line.780"></a>
-<span class="sourceLineNo">781</span>      GetTableDescriptorsRequest req) throws ServiceException {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>    try {<a name="line.782"></a>
-<span class="sourceLineNo">783</span>      master.checkInitialized();<a name="line.783"></a>
-<span class="sourceLineNo">784</span><a name="line.784"></a>
-<span class="sourceLineNo">785</span>      final String regex = req.hasRegex() ? req.getRegex() : null;<a name="line.785"></a>
-<span class="sourceLineNo">786</span>      final String namespace = req.hasNamespace() ? req.getNamespace() : null;<a name="line.786"></a>
-<span class="sourceLineNo">787</span>      List&lt;TableName&gt; tableNameList = null;<a name="line.787"></a>
-<span class="sourceLineNo">788</span>      if (req.getTableNamesCount() &gt; 0) {<a name="line.788"></a>
-<span class="sourceLineNo">789</span>        tableNameList = new ArrayList&lt;TableName&gt;(req.getTableNamesCount());<a name="line.789"></a>
-<span class="sourceLineNo">790</span>        for (HBaseProtos.TableName tableNamePB: req.getTableNamesList()) {<a name="line.790"></a>
-<span class="sourceLineNo">791</span>          tableNameList.add(ProtobufUtil.toTableName(tableNamePB));<a name="line.791"></a>
-<span class="sourceLineNo">792</span>        }<a name="line.792"></a>
-<span class="sourceLineNo">793</span>      }<a name="line.793"></a>
-<span class="sourceLineNo">794</span><a name="line.794"></a>
-<span class="sourceLineNo">795</span>      List&lt;HTableDescriptor&gt; descriptors = master.listTableDescriptors(namespace, regex,<a name="line.795"></a>
-<span class="sourceLineNo">796</span>          tableNameList, req.getIncludeSysTables());<a name="line.796"></a>
-<span class="sourceLineNo">797</span><a name="line.797"></a>
-<span class="sourceLineNo">798</span>      GetTableDescriptorsResponse.Builder builder = GetTableDescriptorsResponse.newBuilder();<a name="line.798"></a>
-<span class="sourceLineNo">799</span>      if (descriptors != null &amp;&amp; descriptors.size() &gt; 0) {<a name="line.799"></a>
-<span class="sourceLineNo">800</span>        // Add the table descriptors to the response<a name="line.800"></a>
-<span class="sourceLineNo">801</span>        for (HTableDescriptor htd: descriptors) {<a name="line.801"></a>
-<span class="sourceLineNo">802</span>          builder.addTableSchema(htd.convert());<a name="line.802"></a>
-<span class="sourceLineNo">803</span>        }<a name="line.803"></a>
-<span class="sourceLineNo">804</span>      }<a name="line.804"></a>
-<span class="sourceLineNo">805</span>      return builder.build();<a name="line.805"></a>
-<span class="sourceLineNo">806</span>    } catch (IOException ioe) {<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      throw new ServiceException(ioe);<a name="line.807"></a>
-<span class="sourceLineNo">808</span>    }<a name="line.808"></a>
-<span class="sourceLineNo">809</span>  }<a name="line.809"></a>
-<span class="sourceLineNo">810</span><a name="line.810"></a>
-<span class="sourceLineNo">811</span>  /**<a name="line.811"></a>
-<span class="sourceLineNo">812</span>   * Get list of userspace table names<a name="line.812"></a>
-<span class="sourceLineNo">813</span>   * @param controller Unused (set to null).<a name="line.813"></a>
-<span class="sourceLineNo">814</span>   * @param req GetTableNamesRequest<a name="line.814"></a>
-<span class="sourceLineNo">815</span>   * @return GetTableNamesResponse<a name="line.815"></a>
-<span class="sourceLineNo">816</span>   * @throws ServiceException<a name="line.816"></a>
-<span class="sourceLineNo">817</span>   */<a name="line.817"></a>
-<span class="sourceLineNo">818</span>  @Override<a name="line.818"></a>
-<span class="sourceLineNo">819</span>  public GetTableNamesResponse getTableNames(RpcController controller,<a name="line.819"></a>
-<span class="sourceLineNo">820</span>      GetTableNamesRequest req) throws ServiceException {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>    try {<a name="line.821"></a>
-<span class="sourceLineNo">822</span>      master.checkServiceStarted();<a name="line.822"></a>
-<span class="sourceLineNo">823</span><a name="line.823"></a>
-<span class="sourceLineNo">824</span>      final String regex = req.hasRegex() ? req.getRegex() : null;<a name="line.824"></a>
-<span class="sourceLineNo">825</span>      final String namespace = req.hasNamespace() ? req.getNamespace() : null;<a name="line.825"></a>
-<span class="sourceLineNo">826</span>      List&lt;TableName&gt; tableNames = master.listTableNames(namespace, regex,<a name="line.826"></a>
-<span class="sourceLineNo">827</span>          req.getIncludeSysTables());<a name="line.827"></a>
-<span class="sourceLineNo">828</span><a name="line.828"></a>
-<span class="sourceLineNo">829</span>      GetTableNamesResponse.Builder builder = GetTableNamesResponse.newBuilder();<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      if (tableNames != null &amp;&amp; tableNames.size() &gt; 0) {<a name="line.830"></a>
-<span class="sourceLineNo">831</span>        // Add the table names to the response<a name="line.831"></a>
-<span class="sourceLineNo">832</span>        for (TableName table: tableNames) {<a name="line.832"></a>
-<span class="sourceLineNo">833</span>          builder.addTableNames(ProtobufUtil.toProtoTableName(table));<a name="line.833"></a>
-<span class="sourceLineNo">834</span>        }<a name="line.834"></a>
-<span class="sourceLineNo">835</span>      }<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      return builder.build();<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    } catch (IOException e) {<a name="line.837"></a>
-<span class="sourceLineNo">838</span>      throw new ServiceException(e);<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    }<a name="line.839"></a>
-<span class="sourceLineNo">840</span>  }<a name="line.840"></a>
-<span class="sourceLineNo">841</span><a name="line.841"></a>
-<span class="sourceLineNo">842</span>  @Override<a name="line.842"></a>
-<span class="sourceLineNo">843</span>  public MasterProtos.GetTableStateResponse getTableState(RpcController controller,<a name="line.843"></a>
-<span class="sourceLineNo">844</span>      MasterProtos.GetTableStateRequest request) throws ServiceException {<a name="line.844"></a>
-<span class="sourceLineNo">845</span>    try {<a name="line.845"></a>
-<span class="sourceLineNo">846</span>      master.checkServiceStarted();<a name="line.846"></a>
-<span class="sourceLineNo">847</span>      TableName tableName = ProtobufUtil.toTableName(request.getTableName());<a name="line.847"></a>
-<span class="sourceLineNo">848</span>      TableState.State state = master.getTableStateManager()<a name="line.848"></a>
-<span class="sourceLineNo">849</span>              .getTableState(tableName);<a name="line.849"></a>
-<span class="sourceLineNo">850</span>      MasterProtos.GetTableStateResponse.Builder builder =<a name="line.850"></a>
-<span class="sourceLineNo">851</span>              MasterProtos.GetTableStateResponse.newBuilder();<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      builder.setTableState(new TableState(tableName, state).convert());<a name="line.852"></a>
-<span class="sourceLineNo">853</span>      return builder.build();<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    } catch (IOException e) {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      throw new ServiceException(e);<a name="line.855"></a>
-<span class="sourceLineNo">856</span>    }<a name="line.856"></a>
-<span class="sourceLineNo">857</span>  }<a name="line.857"></a>
-<span class="sourceLineNo">858</span><a name="line.858"></a>
-<span class="sourceLineNo">859</span>  @Override<a name="line.859"></a>
-<span class="sourceLineNo">860</span>  public IsCatalogJanitorEnabledResponse isCatalogJanitorEnabled(RpcController c,<a name="line.860"></a>
-<span class="sourceLineNo">861</span>      IsCatalogJanitorEnabledRequest req) throws ServiceException {<a name="line.861"></a>
-<span class="sourceLineNo">862</span>    return IsCatalogJanitorEnabledResponse.newBuilder().setValue(<a name="line.862"></a>
-<span class="sourceLineNo">863</span>      master.isCatalogJanitorEnabled()).build();<a name="line.863"></a>
-<span class="sourceLineNo">864</span>  }<a name="line.864"></a>
-<span class="sourceLineNo">865</span><a name="line.865"></a>
-<span class="sourceLineNo">866</span>  @Override<a name="line.866"></a>
-<span class="sourceLineNo">867</span>  public IsMasterRunningResponse isMasterRunning(RpcController c,<a name="line.867"></a>
-<span class="sourceLineNo">868</span>      IsMasterRunningRequest req) throws ServiceException {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>    try {<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      master.checkServiceStarted();<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      return IsMasterRunningResponse.newBuilder().setIsMasterRunning(<a name="line.871"></a>
-<span class="sourceLineNo">872</span>        !master.isStopped()).build();<a name="line.872"></a>
-<span class="sourceLineNo">873</span>    } catch (IOException e) {<a name="line.873"></a>
-<span class="sourceLineNo">874</span>      throw new ServiceException(e);<a name="line.874"></a>
-<span class="sourceLineNo">875</span>    }<a name="line.875"></a>
-<span class="sourceLineNo">876</span>  }<a name="line.876"></a>
-<span class="sourceLineNo">877</span><a name="line.877"></a>
-<span class="sourceLineNo">878</span>  /**<a name="line.878"></a>
-<span class="sourceLineNo">879</span>   * Checks if the specified procedure is done.<a name="line.879"></a>
-<span class="sourceLineNo">880</span>   * @return true if the procedure is done, false if the procedure is in the process of completing<a name="line.880"></a>
-<span class="sourceLineNo">881</span>   * @throws ServiceException if invalid procedure or failed procedure with progress failure reason.<a name="line.881"></a>
-<span class="sourceLineNo">882</span>   */<a name="line.882"></a>
-<span class="sourceLineNo">883</span>  @Override<a name="line.883"></a>
-<span class="sourceLineNo">884</span>  public IsProcedureDoneResponse isProcedureDone(RpcController controller,<a name="line.884"></a>
-<span class="sourceLineNo">885</span>      IsProcedureDoneRequest request) throws ServiceException {<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    try {<a name="line.886"></a>
-<span class="sourceLineNo">887</span>      master.checkInitialized();<a name="line.887"></a>
-<span class="sourceLineNo">888</span>      ProcedureDescription desc = request.getProcedure();<a name="line.888"></a>
-<span class="sourceLineNo">889</span>      MasterProcedureManager mpm = master.mpmHost.getProcedureManager(<a name="line.889"></a>
-<span class="sourceLineNo">890</span>        desc.getSignature());<a name="line.890"></a>
-<span class="sourceLineNo">891</span>      if (mpm == null) {<a name="line.891"></a>
-<span class="sourceLineNo">892</span>        throw new ServiceException("The procedure is not registered: "<a name="line.892"></a>
-<span class="sourceLineNo">893</span>          + desc.getSignature());<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      }<a name="line.894"></a>
-<span class="sourceLineNo">895</span>      LOG.debug("Checking to see if procedure from request:"<a name="line.895"></a>
-<span class="sourceLineNo">896</span>        + desc.getSignature() + " is done");<a name="line.896"></a>
-<span class="sourceLineNo">897</span><a name="line.897"></a>
-<span class="sourceLineNo">898</span>      IsProcedureDoneResponse.Builder builder =<a name="line.898"></a>
-<span class="sourceLineNo">899</span>        IsProcedureDoneResponse.newBuilder();<a name="line.899"></a>
-<span class="sourceLineNo">900</span>      boolean done = mpm.isProcedureDone(desc);<a name="line.900"></a>
-<span class="sourceLineNo">901</span>      builder.setDone(done);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>      return builder.build();<a name="line.902"></a>
-<span class="sourceLineNo">903</span>    } catch (ForeignException e) {<a name="line.903"></a>
-<span class="sourceLineNo">904</span>      throw new ServiceException(e.getCause());<a name="line.904"></a>
-<span class="sourceLineNo">905</span>    } catch (IOException e) {<a name="line.905"></a>
-<span class="sourceLineNo">906</span>      throw new ServiceException(e);<a name="line.906"></a>
-<span class="sourceLineNo">907</span>    }<a name="line.907"></a>
-<span class="sourceLineNo">908</span>  }<a name="line.908"></a>
-<span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>  /**<a name="line.910"></a>
-<span class="sourceLineNo">911</span>   * Returns the status of the requested snapshot restore/clone operation.<a name="line.911"></a>
-<span class="sourceLineNo">912</span>   * This method is not exposed to the user, it is just used internally by HBaseAdmin<a name="line.912"></a>
-<span class="sourceLineNo">913</span>   * to verify if the restore is completed.<a name="line.913"></a>
-<span class="sourceLineNo">914</span>   *<a name="line.914"></a>
-<span class="sourceLineNo">915</span>   * No exceptions are thrown if the restore is not running, the result will be "done".<a name="line.915"></a>
-<span class="sourceLineNo">916</span>   *<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   * @return done &lt;tt&gt;true&lt;/tt&gt; if the restore/clone operation is completed.<a name="line.917"></a>
-<span class="sourceLineNo">918</span>   * @throws ServiceException if the operation failed.<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   */<a name="line.919"></a>
-<span class="sourceLineNo">920</span>  @Override<a name="line.920"></a>
-<span class="sourceLineNo">921</span>  public IsRestoreSnapshotDoneResponse isRestoreSnapshotDone(RpcController controller,<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      IsRestoreSnapshotDoneRequest request) throws ServiceException {<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    try {<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      master.checkInitialized();<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      SnapshotDescription snapshot = request.getSnapshot();<a name="line.925"></a>
-<span class="sourceLineNo">926</span>      IsRestoreSnapshotDoneResponse.Builder builder = IsRestoreSnapshotDoneResponse.newBuilder();<a name="line.926"></a>
-<span class="sourceLineNo">927</span>      boolean done = master.snapshotManager.isRestoreDone(snapshot);<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      builder.setDone(done);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      return builder.build();<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    } catch (ForeignException e) {<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      throw new ServiceException(e.getCause());<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    } catch (IOException e) {<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      throw new ServiceException(e);<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    }<a name="line.934"></a>
-<span class="sourceLineNo">935</span>  }<a name="line.935"></a>
-<span class="sourceLineNo">936</span><a name="line.936"></a>
-<span class="sourceLineNo">937</span>  /**<a name="line.937"></a>
-<span class="sourceLineNo">938</span>   * Checks if the specified snapshot is done.<a name="line.938"></a>
-<span class="sourceLineNo">939</span>   * @return true if the snapshot is in file system ready to use,<a name="line.939"></a>
-<span class="sourceLineNo">940</span>   *   false if the snapshot is in the process of completing<a name="line.940"></a>
-<span class="sourceLineNo">941</span>   * @throws ServiceException wrapping UnknownSnapshotException if invalid snapshot, or<a name="line.941"></a>
-<span class="sourceLineNo">942</span>   *  a wrapped HBaseSnapshotException with progress failure reason.<a name="line.942"></a>
-<span class="sourceLineNo">943</span>   */<a name="line.943"></a>
-<span class="sourceLineNo">944</span>  @Override<a name="line.944"></a>
-<span class="sourceLineNo">945</span>  public IsSnapshotDoneResponse isSnapshotDone(RpcController controller,<a name="line.945"></a>
-<span class="sourceLineNo">946</span>      IsSnapshotDoneRequest request) throws ServiceException {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>    LOG.debug("Checking to see if snapshot from request:" +<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      ClientSnapshotDescriptionUtils.toString(request.getSnapshot()) + " is done");<a name="line.948"></a>
-<span class="sourceLineNo">949</span>    try {<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      master.checkInitialized();<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      IsSnapshotDoneResponse.Builder builder = IsSnapshotDoneResponse.newBuilder();<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      boolean done = master.snapshotManager.isSnapshotDone(request.getSnapshot());<a name="line.952"></a>
-<span class="sourceLineNo">953</span>      builder.setDone(done);<a name="line.953"></a>
-<span class="sourceLineNo">954</span>      return builder.build();<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    } catch (ForeignException e) {<a name="line.955"></a>
-<span class="sourceLineNo">956</span>      throw new ServiceException(e.getCause());<a name="line.956"></a>
-<span class="sourceLineNo">957</span>    } catch (IOException e) {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>      throw new ServiceException(e);<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    }<a name="line.959"></a>
-<span class="sourceLineNo">960</span>  }<a name="line.960"></a>
-<span class="sourceLineNo">961</span><a name="line.961"></a>
-<span class="sourceLineNo">962</span>  @Override<a name="line.962"></a>
-<span class="sourceLineNo">963</span>  public GetProcedureResultResponse getProcedureResult(RpcController controller,<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      GetProcedureResultRequest request) throws ServiceException {<a name="line.964"></a>
-<span class="sourceLineNo">965</span>    LOG.debug("Checking to see if procedure is done procId=" + request.getProcId());<a name="line.965"></a>
-<span class="sourceLineNo">966</span>    try {<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      master.checkInitialized();<a name="line.967"></a>
-<span class="sourceLineNo">968</span>      GetProcedureResultResponse.Builder builder = GetProcedureResultResponse.newBuilder();<a name="line.968"></a>
-<span class="sourceLineNo">969</span><a name="line.969"></a>
-<span class="sourceLineNo">970</span>      Pair&lt;ProcedureInfo, Procedure&gt; v = master.getMasterProcedureExecutor()<a name="line.970"></a>
-<span class="sourceLineNo">971</span>          .getResultOrProcedure(request.getProcId());<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      if (v.getFirst() != null) {<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        ProcedureInfo result = v.getFirst();<a name="line.973"></a>
-<span class="sourceLineNo">974</span>        builder.setState(GetProcedureResultResponse.State.FINISHED);<a name="line.974"></a>
-<span class="sourceLineNo">975</span>        builder.setStartTime(result.getStartTime());<a name="line.975"></a>
-<span class="sourceLineNo">976</span>        builder.setLastUpdate(result.getLastUpdate());<a name="line.976"></a>
-<span class="sourceLineNo">977</span>        if (result.isFailed()) {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>          builder.setException(result.getForeignExceptionMessage());<a name="line.978"></a>
-<span class="sourceLineNo">979</span>        }<a name="line.979"></a>
-<span class="sourceLineNo">980</span>        if (result.hasResultData()) {<a name="line.980"></a>
-<span class="sourceLineNo">981</span>          builder.setResult(ByteStringer.wrap(result.getResult()));<a name="line.981"></a>
-<span class="sourceLineNo">982</span>        }<a name="line.982"></a>
-<span class="sourceLineNo">983</span>        master.getMasterProcedureExecutor().removeResult(request.getProcId());<a name="line.983"></a>
-<span class="sourceLineNo">984</span>      } else {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>        Procedure proc = v.getSecond();<a name="line.985"></a>
-<span class="sourceLineNo">986</span>        if (proc == null) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>          builder.setState(GetProcedureResultResponse.State.NOT_FOUND);<a name="line.987"></a>
-<span class="sourceLineNo">988</span>        } else {<a name="line.988"></a>
-<span class="sourceLineNo">989</span>          builder.setState(GetProcedureResultResponse.State.RUNNING);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>          builder.setStartTime(proc.getStartTime());<a name="line.990"></a>
-<span class="sourceLineNo">991</span>          builder.setLastUpdate(proc.getLastUpdate());<a name="line.991"></a>
-<span class="sourceLineNo">992</span>        }<a name="line.992"></a>
-<span class="sourceLineNo">993</span>      }<a name="line.993"></a>
-<span class="sourceLineNo">994</span>      return builder.build();<a name="line.994"></a>
-<span class="sourceLineNo">995</span>    } catch (IOException e) {<a name="line.995"></a>
-<span class="sourceLineNo">996</span>      throw new ServiceException(e);<a name="line.996"></a>
-<span class="sourceLineNo">997</span>    }<a name="line.997"></a>
-<span class="sourceLineNo">998</span>  }<a name="line.998"></a>
-<span class="sourceLineNo">999</span><a name="line.999"></a>
-<span class="sourceLineNo">1000</span>  @Override<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>  public AbortProcedureResponse abortProcedure(<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>      RpcController rpcController,<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>      AbortProcedureRequest request) throws ServiceException {<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      AbortProcedureResponse.Builder response = AbortProcedureResponse.newBuilder();<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      boolean abortResult =<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>          master.abortProcedure(request.getProcId(), request.getMayInterruptIfRunning());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      response.setIsProcedureAborted(abortResult);<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>      return response.build();<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    } catch (IOException e) {<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      throw new ServiceException(e);<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>    }<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>  }<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span><a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>  @Override<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>  public ListNamespaceDescriptorsResponse listNamespaceDescriptors(RpcController c,<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>      ListNamespaceDescriptorsRequest request) throws ServiceException {<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>    try {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>      ListNamespaceDescriptorsResponse.Builder response =<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        ListNamespaceDescriptorsResponse.newBuilder();<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      for(NamespaceDescriptor ns: master.getNamespaces()) {<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>        response.addNamespaceDescriptor(ProtobufUtil.toProtoNamespaceDescriptor(ns));<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      }<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>      return response.build();<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    } catch (IOException e) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>      throw new ServiceException(e);<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>    }<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>  }<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span><a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>  @Override<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>  public ListProceduresResponse listProcedures(<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>      RpcController rpcController,<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>      ListProceduresRequest request) throws ServiceException {<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>    try {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>      ListProceduresResponse.Builder response =<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>          ListProceduresResponse.newBuilder();<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>      for(ProcedureInfo p: master.listProcedures()) {<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>        response.addProcedure(ProcedureInfo.convertToProcedureProto(p));<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>      }<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>      return response.build();<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    } catch (IOException e) {<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>      throw new ServiceException(e);<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    }<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>  }<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span><a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>  @Override<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>  public ListTableDescriptorsByNamespaceResponse listTableDescriptorsByNamespace(RpcController c,<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>      ListTableDescriptorsByNamespaceRequest request) throws ServiceException {<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>    try {<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>      ListTableDescriptorsByNamespaceResponse.Builder b =<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>          ListTableDescriptorsByNamespaceResponse.newBuilder();<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>      for (HTableDescriptor htd : master<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>          .listTableDescriptorsByNamespace(request.getNamespaceName())) {<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>        b.addTableSchema(htd.convert());<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>      }<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>      return b.build();<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>    } catch (IOException e) {<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>      throw new ServiceException(e);<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>    }<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>  }<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span><a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>  @Override<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>  public ListTableNamesByNamespaceResponse listTableNamesByNamespace(RpcController c,<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>      ListTableNamesByNamespaceRequest request) throws ServiceException {<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>    try {<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      ListTableNamesByNamespaceResponse.Builder b =<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>        ListTableNamesByNamespaceResponse.newBuilder();<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>      for (TableName tableName: master.listTableNamesByNamespace(request.getNamespaceName())) {<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>        b.addTableName(ProtobufUtil.toProtoTableName(tableName));<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      }<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>      return b.build();<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    } catch (IOException e) {<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>      throw new ServiceException(e);<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    }<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span><a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>  @Override<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>  public ModifyColumnResponse modifyColumn(RpcController controller,<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>      ModifyColumnRequest req) throws ServiceException {<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>    try {<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>      long procId = master.modifyColumn(<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>        ProtobufUtil.toTableName(req.getTableName()),<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>        HColumnDescriptor.convert(req.getColumnFamilies()),<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        req.getNonceGroup(),<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        req.getNonce());<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>      if (procId == -1) {<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        // This mean operation was not performed in server, so do not set any procId<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>        return ModifyColumnResponse.newBuilder().build();<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>      } else {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        return ModifyColumnResponse.newBuilder().setProcId(procId).build();<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>    } catch (IOException ioe) {<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>      throw new ServiceException(ioe);<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    }<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>  }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span><a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>  @Override<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>  public ModifyNamespaceResponse modifyNamespace(RpcController controller,<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>      ModifyNamespaceRequest request) throws ServiceException {<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>    try {<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>      long procId = master.modifyNamespace(<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>        ProtobufUtil.toNamespaceDescriptor(request.getNamespaceDescriptor()),<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>        request.getNonceGroup(),<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>        request.getNonce());<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>      return ModifyNamespaceResponse.newBuilder().setProcId(procId).build();<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>    } catch (IOException e) {<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>      throw new ServiceException(e);<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>    }<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>  }<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span><a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>  @Override<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>  public ModifyTableResponse modifyTable(RpcController controller,<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      ModifyTableRequest req) throws ServiceException {<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>    try {<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>      long procId = master.modifyTable(<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>        ProtobufUtil.toTableName(req.getTableName()),<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>        HTableDescriptor.convert(req.getTableSchema()),<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>        req.getNonceGroup(),<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>        req.getNonce());<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>      return ModifyTableResponse.newBuilder().setProcId(procId).build();<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    } catch (IOException ioe) {<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>      throw new ServiceException(ioe);<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>    }<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>  }<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span><a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  @Override<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>  public MoveRegionResponse moveRegion(RpcController controller,<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>      MoveRegionRequest req) throws ServiceException {<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>    final byte [] encodedRegionName = req.getRegion().getValue().toByteArray();<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>    RegionSpecifierType type = req.getRegion().getType();<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>    final byte [] destServerName = (req.hasDestServerName())?<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>      Bytes.toBytes(ProtobufUtil.toServerName(req.getDestServerName()).getServerName()):null;<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>    MoveRegionResponse mrr = MoveRegionResponse.newBuilder().build();<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span><a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>    if (type != RegionSpecifierType.ENCODED_REGION_NAME) {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>      LOG.warn("moveRegion specifier type: expected: " + RegionSpecifierType.ENCODED_REGION_NAME<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>        + " actual: " + type);<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>    }<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span><a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    try {<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      master.checkInitialized();<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>      master.move(encodedRegionName, destServerName);<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>    } catch (IOException ioe) {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>      throw new ServiceException(ioe);<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    }<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>    return mrr;<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>  }<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span><a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>  /**<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>   * Offline specified region from master's in-memory state. It will not attempt to<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>   * reassign the region as in unassign.<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>   *<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>   * This is a special method that should be used by experts or hbck.<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>   *<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>   */<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>  @Override<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>  public OfflineRegionResponse offlineRegion(RpcController controller,<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      OfflineRegionRequest request) throws ServiceException {<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    final byte [] regionName = request.getRegion().getValue().toByteArray();<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>    RegionSpecifierType type = request.getRegion().getType();<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    if (type != RegionSpecifierType.REGION_NAME) {<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>      LOG.warn("moveRegion specifier type: expected: " + RegionSpecifierType.REGION_NAME<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>        + " actual: " + type);<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>    }<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span><a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>    try {<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>      master.checkInitialized();<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>      Pair&lt;HRegionInfo, ServerName&gt; pair =<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>        MetaTableAccessor.getRegion(master.getConnection(), regionName);<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>      if (pair == null) throw new UnknownRegionException(Bytes.toStringBinary(regionName));<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>      HRegionInfo hri = pair.getFirst();<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>      if (master.cpHost != null) {<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>        master.cpHost.preRegionOffline(hri);<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>      }<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      LOG.info(master.getClientIdAuditPrefix() + " offline " + hri.getRegionNameAsString());<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>      master.assignmentManager.regionOffline(hri);<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>      if (master.cpHost != null) {<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>        master.cpHost.postRegionOffline(hri);<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>      }<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    } catch (IOException ioe) {<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      throw new ServiceException(ioe);<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>    }<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>    return OfflineRegionResponse.newBuilder().build();<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>  }<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span><a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>  /**<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>   * Execute Restore/Clone snapshot operation.<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>   *<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>   * &lt;p&gt;If the specified table exists a "Restore" is executed, replacing the table<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>   * schema and directory data with the content of the snapshot.<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>   * The table must be disabled, or a UnsupportedOperationException will be thrown.<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>   *<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>   * &lt;p&gt;If the table doesn't exist a "Clone" is executed, a new table is created<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>   * using the schema at the time of the snapshot, and the content of the snapshot.<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>   *<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>   * &lt;p&gt;The restore/clone operation does not require copying HFiles. Since HFiles<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>   * are immutable the table can point to and use the same files as the original one.<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>   */<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>  @Override<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>  public RestoreSnapshotResponse restoreSnapshot(RpcController controller,<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>      RestoreSnapshotRequest request) throws ServiceException {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>    try {<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>      master.checkInitialized();<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      master.snapshotManager.checkSnapshotSupport();<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span><a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>      // Ensure namespace exists. Will throw exception if non-known NS.<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>      TableName dstTable = TableName.valueOf(request.getSnapshot().getTable());<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>      master.getNamespace(dstTable.getNamespaceAsString());<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      SnapshotDescription reqSnapshot = request.getSnapshot();<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>      master.snapshotManager.restoreSnapshot(reqSnapshot);<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>      return RestoreSnapshotResponse.newBuilder().build();<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>    } catch (ForeignException e) {<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      throw new ServiceException(e.getCause());<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    } catch (IOException e) {<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      throw new ServiceException(e);<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>    }<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>  }<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span><a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>  @Override<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>  public RunCatalogScanResponse runCatalogScan(RpcController c,<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>      RunCatalogScanRequest req) throws ServiceException {<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>    try {<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      master.checkInitialized();<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      return ResponseConverter.buildRunCatalogScanResponse(master.catalogJanitorChore.scan());<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>    } catch (IOException ioe) {<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>      throw new ServiceException(ioe);<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    }<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span><a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>  @Override<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>  public SetBalancerRunningResponse setBalancerRunning(RpcController c,<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      SetBalancerRunningRequest req) throws ServiceException {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    try {<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>      master.checkInitialized();<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>      boolean prevValue = (req.getSynchronous())?<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>        synchronousBalanceSwitch(req.getOn()) : master.balanceSwitch(req.getOn());<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>      return SetBalancerRunningResponse.newBuilder().setPrevBalanceValue(prevValue).build();<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>    } catch (IOException ioe) {<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>      throw new ServiceException(ioe);<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    }<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>  }<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span><a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>  @Override<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>  public ShutdownResponse shutdown(RpcController controller,<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>      ShutdownRequest request) throws ServiceException {<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>    LOG.info(master.getClientIdAuditPrefix() + " shutdown");<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>    master.shutdown();<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>    return ShutdownResponse.newBuilder().build();<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>  }<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span><a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>  /**<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>   * Triggers an asynchronous attempt to take a snapshot.<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>   * {@inheritDoc}<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>   */<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>  @Override<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>  public SnapshotResponse snapshot(RpcController controller,<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      SnapshotRequest request) throws ServiceException {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>    try {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>      master.checkInitialized();<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>      master.snapshotManager.checkSnapshotSupport();<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span><a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>      LOG.info(master.getClientIdAuditPrefix() + " snapshot request for:" +<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>        ClientSnapshotDescriptionUtils.toString(request.getSnapshot()));<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>      // get the snapshot information<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      SnapshotDescription snapshot = SnapshotDescriptionUtils.validate(<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>        request.getSnapshot(), master.getConfiguration());<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>      master.snapshotManager.takeSnapshot(snapshot);<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span><a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>      // send back the max amount of time the client should wait for the snapshot to complete<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>      long waitTime = SnapshotDescriptionUtils.getMaxMasterTimeout(master.getConfiguration(),<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>        snapshot.getType(), SnapshotDescriptionUtils.DEFAULT_MAX_WAIT_TIME);<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>      return SnapshotResponse.newBuilder().setExpectedTimeout(waitTime).build();<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>    } catch (ForeignException e) {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>      throw new ServiceException(e.getCause());<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>    } catch (IOException e) {<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>      throw new ServiceException(e);<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>    }<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  }<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span><a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  @Override<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>  public StopMasterResponse stopMaster(RpcController controller,<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>      StopMasterRequest request) throws ServiceException {<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>    LOG.info(master.getClientIdAuditPrefix() + " stop");<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>    master.stopMaster();<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>    return StopMasterResponse.newBuilder().build();<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>  }<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span><a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>  @Override<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>  public UnassignRegionResponse unassignRegion(RpcController controller,<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>      UnassignRegionRequest req) throws ServiceException {<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>    try {<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>      final byte [] regionName = req.getRegion().getValue().toByteArray();<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>      RegionSpecifierType type = req.getRegion().getType();<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>      final boolean force = req.getForce();<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>      UnassignRegionResponse urr = UnassignRegionResponse.newBuilder().build();<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>      master.checkInitialized();<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>      if (type != RegionSpecifierType.REGION_NAME) {<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>        LOG.warn("unassignRegion specifier type: expected: " + RegionSpecifierType.REGION_NAME<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>          + " actual: " + type);<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>      }<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>      Pair&lt;HRegionInfo, ServerName&gt; pair =<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>        MetaTableAccessor.getRegion(master.getConnection(), regionName);<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>      if (pair == null) throw new UnknownRegionException(Bytes.toString(regionName));<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>      HRegionInfo hri = pair.getFirst();<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>      if (master.cpHost != null) {<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>        if (master.cpHost.preUnassign(hri, force)) {<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>          return urr;<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>        }<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>      }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>      LOG.debug(master.getClientIdAuditPrefix() + " unassign " + hri.getRegionNameAsString()<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>          + " in current location if it is online and reassign.force=" + force);<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>      master.assignmentManager.unassign(hri);<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>      if (master.cpHost != null) {<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>        master.cpHost.postUnassign(hri, force);<a name="line.1315"></a>
+<span class="sourceLineNo">527</span>    try {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>      master.cpHost.preDispatchMerge(regionInfoA, regionInfoB);<a name="line.528"></a>
+<span class="sourceLineNo">529</span>    } catch (IOException ioe) {<a name="line.529"></a>
+<span class="sourceLineNo">530</span>      throw new ServiceException(ioe);<a name="line.530"></a>
+<span class="sourceLineNo">531</span>    }<a name="line.531"></a>
+<span class="sourceLineNo">532</span><a name="line.532"></a>
+<span class="sourceLineNo">533</span>    if (!forcible &amp;&amp; !HRegionInfo.areAdjacent(regionInfoA, regionInfoB)) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>      throw new ServiceException(new MergeRegionException(<a name="line.534"></a>
+<span class="sourceLineNo">535</span>        "Unable to merge not adjacent regions "<a name="line.535"></a>
+<span class="sourceLineNo">536</span>          + regionInfoA.getRegionNameAsString() + ", "<a name="line.536"></a>
+<span class="sourceLineNo">537</span>          + regionInfoB.getRegionNameAsString()<a name="line.537"></a>
+<span class="sourceLineNo">538</span>          + " where forcible = " + forcible));<a name="line.538"></a>
+<span class="sourceLineNo">539</span>    }<a name="line.539"></a>
+<span class="sourceLineNo">540</span><a name="line.540"></a>
+<span class="sourceLineNo">541</span>    try {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>      master.dispatchMergingRegions(regionInfoA, regionInfoB, forcible);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>      master.cpHost.postDispatchMerge(regionInfoA, regionInfoB);<a name="line.543"></a>
+<span class="sourceLineNo">544</span>    } catch (IOException ioe) {<a name="line.544"></a>
+<span class="sourceLineNo">545</span>      throw new ServiceException(ioe);<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    }<a name="line.546"></a>
+<span class="sourceLineNo">547</span><a name="line.547"></a>
+<span class="sourceLineNo">548</span>    return DispatchMergingRegionsResponse.newBuilder().build();<a name="line.548"></a>
+<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>  @Override<a name="line.551"></a>
+<span class="sourceLineNo">552</span>  public EnableCatalogJanitorResponse enableCatalogJanitor(RpcController c,<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      EnableCatalogJanitorRequest req) throws ServiceException {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    try {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      master.checkInitialized();<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    } catch (IOException ioe) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>      throw new ServiceException(ioe);<a name="line.557"></a>
+<span class="sourceLineNo">558</span>    }<a name="line.558"></a>
+<span class="sourceLineNo">559</span>    return EnableCatalogJanitorResponse.newBuilder().setPrevValue(<a name="line.559"></a>
+<span class="sourceLineNo">560</span>      master.catalogJanitorChore.setEnabled(req.getEnable())).build();<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>  @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>  public EnableTableResponse enableTable(RpcController controller,<a name="line.564"></a>
+<span class="sourceLineNo">565</span>      EnableTableRequest request) throws ServiceException {<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    try {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>      long procId = master.enableTable(<a name="line.567"></a>
+<span class="sourceLineNo">568</span>        ProtobufUtil.toTableName(request.getTableName()),<a name="line.568"></a>
+<span class="sourceLineNo">569</span>        request.getNonceGroup(),<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        request.getNonce());<a name="line.570"></a>
+<span class="sourceLineNo">571</span>      return EnableTableResponse.newBuilder().setProcId(procId).build();<a name="line.571"></a>
+<span class="sourceLineNo">572</span>    } catch (IOException ioe) {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>      throw new ServiceException(ioe);<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    }<a name="line.574"></a>
+<span class="sourceLineNo">575</span>  }<a name="line.575"></a>
+<span class="sourceLineNo">576</span><a name="line.576"></a>
+<span class="sourceLineNo">577</span>  @Override<a name="line.577"></a>
+<span class="sourceLineNo">578</span>  public ClientProtos.CoprocessorServiceResponse execMasterService(final RpcController controller,<a name="line.578"></a>
+<span class="sourceLineNo">579</span>      final ClientProtos.CoprocessorServiceRequest request) throws ServiceException {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>    try {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>      master.checkInitialized();<a name="line.581"></a>
+<span class="sourceLineNo">582</span>      ServerRpcController execController = new ServerRpcController();<a name="line.582"></a>
+<span class="sourceLineNo">583</span><a name="line.583"></a>
+<span class="sourceLineNo">584</span>      ClientProtos.CoprocessorServiceCall call = request.getCall();<a name="line.584"></a>
+<span class="sourceLineNo">585</span>      String serviceName = call.getServiceName();<a name="line.585"></a>
+<span class="sourceLineNo">586</span>      String methodName = call.getMethodName();<a name="line.586"></a>
+<span class="sourceLineNo">587</span>      if (!master.coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>        throw new UnknownProtocolException(null,<a name="line.588"></a>
+<span class="sourceLineNo">589</span>          "No registered master coprocessor service found for name "+serviceName);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>      }<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>      Service service = master.coprocessorServiceHandlers.get(serviceName);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>      Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();<a name="line.593"></a>
+<span class="sourceLineNo">594</span>      Descriptors.MethodDescriptor methodDesc = serviceDesc.findMethodByName(methodName);<a name="line.594"></a>
+<span class="sourceLineNo">595</span>      if (methodDesc == null) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>        throw new UnknownProtocolException(service.getClass(),<a name="line.596"></a>
+<span class="sourceLineNo">597</span>          "Unknown method "+methodName+" called on master service "+serviceName);<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>      //invoke the method<a name="line.600"></a>
+<span class="sourceLineNo">601</span>      Message.Builder builderForType = service.getRequestPrototype(methodDesc).newBuilderForType();<a name="line.601"></a>
+<span class="sourceLineNo">602</span>      ProtobufUtil.mergeFrom(builderForType, call.getRequest());<a name="line.602"></a>
+<span class="sourceLineNo">603</span>      Message execRequest = builderForType.build();<a name="line.603"></a>
+<span class="sourceLineNo">604</span>      final Message.Builder responseBuilder =<a name="line.604"></a>
+<span class="sourceLineNo">605</span>          service.getResponsePrototype(methodDesc).newBuilderForType();<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      service.callMethod(methodDesc, execController, execRequest, new RpcCallback&lt;Message&gt;() {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>        @Override<a name="line.607"></a>
+<span class="sourceLineNo">608</span>   

<TRUNCATED>

[27/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html b/devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html
index f498fd1..4fbb2cd 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html
@@ -73,566 +73,576 @@
 <span class="sourceLineNo">065</span>  }<a name="line.65"></a>
 <span class="sourceLineNo">066</span><a name="line.66"></a>
 <span class="sourceLineNo">067</span>  @Override<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  public void preDeleteTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.68"></a>
-<span class="sourceLineNo">069</span>      TableName tableName) throws IOException {<a name="line.69"></a>
+<span class="sourceLineNo">068</span>  public void preDispatchMerge(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      HRegionInfo regionA, HRegionInfo regionB) throws IOException {<a name="line.69"></a>
 <span class="sourceLineNo">070</span>  }<a name="line.70"></a>
 <span class="sourceLineNo">071</span><a name="line.71"></a>
 <span class="sourceLineNo">072</span>  @Override<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  public void postDeleteTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      TableName tableName) throws IOException {<a name="line.74"></a>
+<span class="sourceLineNo">073</span>  public void postDispatchMerge(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.73"></a>
+<span class="sourceLineNo">074</span>      HRegionInfo regionA, HRegionInfo regionB) throws IOException {<a name="line.74"></a>
 <span class="sourceLineNo">075</span>  }<a name="line.75"></a>
 <span class="sourceLineNo">076</span><a name="line.76"></a>
 <span class="sourceLineNo">077</span>  @Override<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  public void preDeleteTableHandler(<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      throws IOException{<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 void postDeleteTableHandler(<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      throws IOException {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  }<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>  @Override<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  public void preTruncateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      TableName tableName) throws IOException {<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>  @Override<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  public void postTruncateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.95"></a>
-<span class="sourceLineNo">096</span>      TableName tableName) throws IOException {<a name="line.96"></a>
+<span class="sourceLineNo">078</span>  public void preDeleteTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      TableName tableName) throws IOException {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  }<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  @Override<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  public void postDeleteTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.83"></a>
+<span class="sourceLineNo">084</span>      TableName tableName) throws IOException {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  }<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>  @Override<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  public void preDeleteTableHandler(<a name="line.88"></a>
+<span class="sourceLineNo">089</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      throws IOException{<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  }<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>  @Override<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  public void postDeleteTableHandler(<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.95"></a>
+<span class="sourceLineNo">096</span>      throws IOException {<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>  @Override<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  public void preTruncateTableHandler(<a name="line.100"></a>
-<span class="sourceLineNo">101</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      throws IOException {<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>  @Override<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public void postTruncateTableHandler(<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      throws IOException {<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>  @Override<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  public void preModifyTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      TableName tableName, HTableDescriptor htd) throws IOException {<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>  @Override<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  public void postModifyTableHandler(<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.118"></a>
-<span class="sourceLineNo">119</span>      HTableDescriptor htd) throws IOException {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>  }<a name="line.120"></a>
-<span class="sourceLineNo">121</span><a name="line.121"></a>
-<span class="sourceLineNo">122</span>  @Override<a name="line.122"></a>
-<span class="sourceLineNo">123</span>  public void preModifyTableHandler(<a name="line.123"></a>
-<span class="sourceLineNo">124</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      HTableDescriptor htd) throws IOException {<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>  @Override<a name="line.128"></a>
-<span class="sourceLineNo">129</span>  public void postModifyTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.129"></a>
-<span class="sourceLineNo">130</span>      TableName tableName, HTableDescriptor htd) throws IOException {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  @Override<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  public void preCreateNamespace(<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, NamespaceDescriptor ns)<a name="line.135"></a>
-<span class="sourceLineNo">136</span>          throws IOException {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>  }<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>  @Override<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  public void postCreateNamespace(<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, NamespaceDescriptor ns)<a name="line.141"></a>
-<span class="sourceLineNo">142</span>          throws IOException {<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>  @Override<a name="line.145"></a>
-<span class="sourceLineNo">146</span>  public void preDeleteNamespace(<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String namespace) throws IOException {<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>  @Override<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  public void postDeleteNamespace(<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String namespace) throws IOException {<a name="line.152"></a>
+<span class="sourceLineNo">100</span>  public void preTruncateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      TableName tableName) throws IOException {<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>  @Override<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  public void postTruncateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      TableName tableName) throws IOException {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  @Override<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  public void preTruncateTableHandler(<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.111"></a>
+<span class="sourceLineNo">112</span>      throws IOException {<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>  public void postTruncateTableHandler(<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      throws IOException {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>  }<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>  @Override<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  public void preModifyTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      TableName tableName, HTableDescriptor htd) throws IOException {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  }<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>  @Override<a name="line.126"></a>
+<span class="sourceLineNo">127</span>  public void postModifyTableHandler(<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.128"></a>
+<span class="sourceLineNo">129</span>      HTableDescriptor htd) throws IOException {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>  @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>  public void preModifyTableHandler(<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      HTableDescriptor htd) throws IOException {<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>  @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>  public void postModifyTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      TableName tableName, HTableDescriptor htd) throws IOException {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>  }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>  @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  public void preCreateNamespace(<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, NamespaceDescriptor ns)<a name="line.145"></a>
+<span class="sourceLineNo">146</span>          throws IOException {<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>  @Override<a name="line.149"></a>
+<span class="sourceLineNo">150</span>  public void postCreateNamespace(<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, NamespaceDescriptor ns)<a name="line.151"></a>
+<span class="sourceLineNo">152</span>          throws IOException {<a name="line.152"></a>
 <span class="sourceLineNo">153</span>  }<a name="line.153"></a>
 <span class="sourceLineNo">154</span><a name="line.154"></a>
 <span class="sourceLineNo">155</span>  @Override<a name="line.155"></a>
-<span class="sourceLineNo">156</span>  public void preModifyNamespace(<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, NamespaceDescriptor ns)<a name="line.157"></a>
-<span class="sourceLineNo">158</span>          throws IOException {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  }<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  @Override<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  public void postModifyNamespace(<a name="line.162"></a>
-<span class="sourceLineNo">163</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, NamespaceDescriptor ns)<a name="line.163"></a>
-<span class="sourceLineNo">164</span>          throws IOException {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  @Override<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  public void preGetNamespaceDescriptor(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      String namespace) throws IOException {<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 postGetNamespaceDescriptor(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.173"></a>
-<span class="sourceLineNo">174</span>      NamespaceDescriptor ns) throws IOException {<a name="line.174"></a>
+<span class="sourceLineNo">156</span>  public void preDeleteNamespace(<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String namespace) throws IOException {<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>  @Override<a name="line.160"></a>
+<span class="sourceLineNo">161</span>  public void postDeleteNamespace(<a name="line.161"></a>
+<span class="sourceLineNo">162</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String namespace) throws IOException {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>  }<a name="line.163"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span>  @Override<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  public void preModifyNamespace(<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, NamespaceDescriptor ns)<a name="line.167"></a>
+<span class="sourceLineNo">168</span>          throws IOException {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  @Override<a name="line.171"></a>
+<span class="sourceLineNo">172</span>  public void postModifyNamespace(<a name="line.172"></a>
+<span class="sourceLineNo">173</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, NamespaceDescriptor ns)<a name="line.173"></a>
+<span class="sourceLineNo">174</span>          throws IOException {<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 preListNamespaceDescriptors(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      List&lt;NamespaceDescriptor&gt; descriptors) throws IOException {<a name="line.179"></a>
+<span class="sourceLineNo">178</span>  public void preGetNamespaceDescriptor(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      String namespace) throws IOException {<a name="line.179"></a>
 <span class="sourceLineNo">180</span>  }<a name="line.180"></a>
 <span class="sourceLineNo">181</span><a name="line.181"></a>
 <span class="sourceLineNo">182</span>  @Override<a name="line.182"></a>
-<span class="sourceLineNo">183</span>  public void postListNamespaceDescriptors(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      List&lt;NamespaceDescriptor&gt; descriptors) throws IOException {<a name="line.184"></a>
+<span class="sourceLineNo">183</span>  public void postGetNamespaceDescriptor(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      NamespaceDescriptor ns) throws IOException {<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>  @Deprecated<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  @Override<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  public void preAddColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>  }<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  @Override<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  public void preAddColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<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>  @Deprecated<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  @Override<a name="line.199"></a>
-<span class="sourceLineNo">200</span>  public void postAddColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<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>  @Override<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  public void postAddColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  }<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>  @Deprecated<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  @Override<a name="line.210"></a>
-<span class="sourceLineNo">211</span>  public void preAddColumnHandler(<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      HColumnDescriptor columnFamily) throws IOException {<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>  @Override<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  public void preAddColumnFamilyHandler(<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      HColumnDescriptor columnFamily) throws IOException {<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>  @Deprecated<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  @Override<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  public void postAddColumnHandler(<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.225"></a>
-<span class="sourceLineNo">226</span>      HColumnDescriptor columnFamily) throws IOException {<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>  @Override<a name="line.229"></a>
-<span class="sourceLineNo">230</span>  public void postAddColumnFamilyHandler(<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.231"></a>
-<span class="sourceLineNo">232</span>      HColumnDescriptor columnFamily) throws IOException {<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>  @Deprecated<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  @Override<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  public void preModifyColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.237"></a>
-<span class="sourceLineNo">238</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>  }<a name="line.239"></a>
-<span class="sourceLineNo">240</span><a name="line.240"></a>
-<span class="sourceLineNo">241</span>  @Override<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  public void preModifyColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @Deprecated<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  @Override<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  public void postModifyColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<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>  @Override<a name="line.252"></a>
-<span class="sourceLineNo">253</span>  public void postModifyColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>  }<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>  @Deprecated<a name="line.257"></a>
-<span class="sourceLineNo">258</span>  @Override<a name="line.258"></a>
-<span class="sourceLineNo">259</span>  public void preModifyColumnHandler(<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      HColumnDescriptor columnFamily) throws IOException {<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>  @Override<a name="line.264"></a>
-<span class="sourceLineNo">265</span>  public void preModifyColumnFamilyHandler(<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      HColumnDescriptor columnFamily) throws IOException {<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>  @Deprecated<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  @Override<a name="line.271"></a>
-<span class="sourceLineNo">272</span>  public void postModifyColumnHandler(<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      HColumnDescriptor columnFamily) throws IOException {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>  }<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span>  @Override<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  public void postModifyColumnFamilyHandler(<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      HColumnDescriptor columnFamily) throws IOException {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>  }<a name="line.281"></a>
-<span class="sourceLineNo">282</span><a name="line.282"></a>
-<span class="sourceLineNo">283</span>  @Deprecated<a name="line.283"></a>
-<span class="sourceLineNo">284</span>  @Override<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public void preDeleteColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      TableName tableName, byte[] columnFamily) 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 preDeleteColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.290"></a>
-<span class="sourceLineNo">291</span>      TableName tableName, byte[] columnFamily) throws IOException {<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>  @Deprecated<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  @Override<a name="line.295"></a>
-<span class="sourceLineNo">296</span>  public void postDeleteColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      TableName tableName, byte[] columnFamily) throws IOException {<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>  @Override<a name="line.300"></a>
-<span class="sourceLineNo">301</span>  public void postDeleteColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      TableName tableName, byte[] columnFamily) throws IOException {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>  @Deprecated<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  @Override<a name="line.306"></a>
-<span class="sourceLineNo">307</span>  public void preDeleteColumnHandler(<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      byte[] columnFamily) throws IOException {<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>  @Override<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  public void preDeleteColumnFamilyHandler(<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      byte[] columnFamily) throws IOException {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>  }<a name="line.316"></a>
-<span class="sourceLineNo">317</span><a name="line.317"></a>
-<span class="sourceLineNo">318</span>  @Deprecated<a name="line.318"></a>
-<span class="sourceLineNo">319</span>  @Override<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  public void postDeleteColumnHandler(<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      byte[] columnFamily) throws IOException {<a name="line.322"></a>
-<span class="sourceLineNo">323</span>  }<a name="line.323"></a>
-<span class="sourceLineNo">324</span><a name="line.324"></a>
-<span class="sourceLineNo">325</span>  @Override<a name="line.325"></a>
-<span class="sourceLineNo">326</span>  public void postDeleteColumnFamilyHandler(<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      byte[] columnFamily) throws IOException {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  }<a name="line.329"></a>
-<span class="sourceLineNo">330</span><a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>  @Override<a name="line.332"></a>
-<span class="sourceLineNo">333</span>  public void preEnableTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      TableName tableName) throws IOException {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public void postEnableTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      TableName tableName) throws IOException {<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
+<span class="sourceLineNo">187</span>  @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span>  public void preListNamespaceDescriptors(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      List&lt;NamespaceDescriptor&gt; descriptors) throws IOException {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>  }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>  @Override<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  public void postListNamespaceDescriptors(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      List&lt;NamespaceDescriptor&gt; descriptors) throws IOException {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>  @Deprecated<a name="line.197"></a>
+<span class="sourceLineNo">198</span>  @Override<a name="line.198"></a>
+<span class="sourceLineNo">199</span>  public void preAddColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.199"></a>
+<span class="sourceLineNo">200</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  @Override<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  public void preAddColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>  @Deprecated<a name="line.208"></a>
+<span class="sourceLineNo">209</span>  @Override<a name="line.209"></a>
+<span class="sourceLineNo">210</span>  public void postAddColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>  }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>  @Override<a name="line.214"></a>
+<span class="sourceLineNo">215</span>  public void postAddColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.215"></a>
+<span class="sourceLineNo">216</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<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>  @Deprecated<a name="line.219"></a>
+<span class="sourceLineNo">220</span>  @Override<a name="line.220"></a>
+<span class="sourceLineNo">221</span>  public void preAddColumnHandler(<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      HColumnDescriptor columnFamily) throws IOException {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>  }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>  @Override<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  public void preAddColumnFamilyHandler(<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      HColumnDescriptor columnFamily) throws IOException {<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>  @Deprecated<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  public void postAddColumnHandler(<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      HColumnDescriptor columnFamily) throws IOException {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  }<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>  @Override<a name="line.239"></a>
+<span class="sourceLineNo">240</span>  public void postAddColumnFamilyHandler(<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      HColumnDescriptor columnFamily) throws IOException {<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>  @Deprecated<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  @Override<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  public void preModifyColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  }<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span>  @Override<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  public void preModifyColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>  }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>  @Deprecated<a name="line.256"></a>
+<span class="sourceLineNo">257</span>  @Override<a name="line.257"></a>
+<span class="sourceLineNo">258</span>  public void postModifyColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<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>  @Override<a name="line.262"></a>
+<span class="sourceLineNo">263</span>  public void postModifyColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>  }<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>  @Deprecated<a name="line.267"></a>
+<span class="sourceLineNo">268</span>  @Override<a name="line.268"></a>
+<span class="sourceLineNo">269</span>  public void preModifyColumnHandler(<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      HColumnDescriptor columnFamily) throws IOException {<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>  @Override<a name="line.274"></a>
+<span class="sourceLineNo">275</span>  public void preModifyColumnFamilyHandler(<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      HColumnDescriptor columnFamily) throws IOException {<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>  @Deprecated<a name="line.280"></a>
+<span class="sourceLineNo">281</span>  @Override<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  public void postModifyColumnHandler(<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      HColumnDescriptor columnFamily) throws IOException {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  }<a name="line.285"></a>
+<span class="sourceLineNo">286</span><a name="line.286"></a>
+<span class="sourceLineNo">287</span>  @Override<a name="line.287"></a>
+<span class="sourceLineNo">288</span>  public void postModifyColumnFamilyHandler(<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      HColumnDescriptor columnFamily) throws IOException {<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>  @Deprecated<a name="line.293"></a>
+<span class="sourceLineNo">294</span>  @Override<a name="line.294"></a>
+<span class="sourceLineNo">295</span>  public void preDeleteColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      TableName tableName, byte[] columnFamily) throws IOException {<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 void preDeleteColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      TableName tableName, byte[] columnFamily) throws IOException {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>  }<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>  @Deprecated<a name="line.304"></a>
+<span class="sourceLineNo">305</span>  @Override<a name="line.305"></a>
+<span class="sourceLineNo">306</span>  public void postDeleteColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      TableName tableName, byte[] columnFamily) throws IOException {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>  }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span>  @Override<a name="line.310"></a>
+<span class="sourceLineNo">311</span>  public void postDeleteColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>      TableName tableName, byte[] columnFamily) throws IOException {<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>  @Deprecated<a name="line.315"></a>
+<span class="sourceLineNo">316</span>  @Override<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  public void preDeleteColumnHandler(<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      byte[] columnFamily) throws IOException {<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>  @Override<a name="line.322"></a>
+<span class="sourceLineNo">323</span>  public void preDeleteColumnFamilyHandler(<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      byte[] columnFamily) throws IOException {<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>  @Deprecated<a name="line.328"></a>
+<span class="sourceLineNo">329</span>  @Override<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  public void postDeleteColumnHandler(<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      byte[] columnFamily) 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 postDeleteColumnFamilyHandler(<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      byte[] columnFamily) throws IOException {<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>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public void preEnableTableHandler(<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      throws IOException {<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>  @Override<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  public void postEnableTableHandler(<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      throws IOException {<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 void preDisableTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      TableName tableName) throws IOException {<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>  @Override<a name="line.359"></a>
-<span class="sourceLineNo">360</span>  public void postDisableTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      TableName tableName) throws IOException {<a name="line.361"></a>
+<span class="sourceLineNo">343</span>  public void preEnableTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      TableName tableName) throws IOException {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  public void postEnableTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      TableName tableName) throws IOException {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  public void preEnableTableHandler(<a name="line.353"></a>
+<span class="sourceLineNo">354</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      throws IOException {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  }<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span>  @Override<a name="line.358"></a>
+<span class="sourceLineNo">359</span>  public void postEnableTableHandler(<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      throws IOException {<a name="line.361"></a>
 <span class="sourceLineNo">362</span>  }<a name="line.362"></a>
 <span class="sourceLineNo">363</span><a name="line.363"></a>
 <span class="sourceLineNo">364</span>  @Override<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  public void preDisableTableHandler(<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      throws IOException {<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>  @Override<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  public void postDisableTableHandler(<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      throws IOException {<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>  @Override<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  public void preAbortProcedure(<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.378"></a>
-<span class="sourceLineNo">379</span>      final ProcedureExecutor&lt;MasterProcedureEnv&gt; procEnv,<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      final long procId) throws IOException {<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>  @Override<a name="line.383"></a>
-<span class="sourceLineNo">384</span>  public void postAbortProcedure(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      throws IOException {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  }<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>  @Override<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  public void preListProcedures(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      throws IOException {<a name="line.390"></a>
+<span class="sourceLineNo">365</span>  public void preDisableTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      TableName tableName) throws IOException {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
+<span class="sourceLineNo">370</span>  public void postDisableTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.370"></a>
+<span class="sourceLineNo">371</span>      TableName tableName) throws IOException {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
+<span class="sourceLineNo">373</span><a name="line.373"></a>
+<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  public void preDisableTableHandler(<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      throws IOException {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  }<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>  @Override<a name="line.380"></a>
+<span class="sourceLineNo">381</span>  public void postDisableTableHandler(<a name="line.381"></a>
+<span class="sourceLineNo">382</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      throws IOException {<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>  @Override<a name="line.386"></a>
+<span class="sourceLineNo">387</span>  public void preAbortProcedure(<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      final ProcedureExecutor&lt;MasterProcedureEnv&gt; procEnv,<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      final long procId) throws IOException {<a name="line.390"></a>
 <span class="sourceLineNo">391</span>  }<a name="line.391"></a>
 <span class="sourceLineNo">392</span><a name="line.392"></a>
 <span class="sourceLineNo">393</span>  @Override<a name="line.393"></a>
-<span class="sourceLineNo">394</span>  public void postListProcedures(<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      List&lt;ProcedureInfo&gt; procInfoList) throws IOException {<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>  @Override<a name="line.399"></a>
-<span class="sourceLineNo">400</span>  public void preAssign(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.400"></a>
-<span class="sourceLineNo">401</span>      HRegionInfo regionInfo) throws IOException {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  }<a name="line.402"></a>
-<span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>  @Override<a name="line.404"></a>
-<span class="sourceLineNo">405</span>  public void postAssign(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      HRegionInfo regionInfo) throws IOException {<a name="line.406"></a>
+<span class="sourceLineNo">394</span>  public void postAbortProcedure(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.394"></a>
+<span class="sourceLineNo">395</span>      throws IOException {<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>  @Override<a name="line.398"></a>
+<span class="sourceLineNo">399</span>  public void preListProcedures(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.399"></a>
+<span class="sourceLineNo">400</span>      throws IOException {<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>  @Override<a name="line.403"></a>
+<span class="sourceLineNo">404</span>  public void postListProcedures(<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      List&lt;ProcedureInfo&gt; procInfoList) throws IOException {<a name="line.406"></a>
 <span class="sourceLineNo">407</span>  }<a name="line.407"></a>
 <span class="sourceLineNo">408</span><a name="line.408"></a>
 <span class="sourceLineNo">409</span>  @Override<a name="line.409"></a>
-<span class="sourceLineNo">410</span>  public void preUnassign(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      HRegionInfo regionInfo, boolean force) throws IOException {<a name="line.411"></a>
+<span class="sourceLineNo">410</span>  public void preAssign(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      HRegionInfo regionInfo) throws IOException {<a name="line.411"></a>
 <span class="sourceLineNo">412</span>  }<a name="line.412"></a>
 <span class="sourceLineNo">413</span><a name="line.413"></a>
 <span class="sourceLineNo">414</span>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public void postUnassign(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      HRegionInfo regionInfo, boolean force) throws IOException {<a name="line.416"></a>
+<span class="sourceLineNo">415</span>  public void postAssign(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      HRegionInfo regionInfo) throws IOException {<a name="line.416"></a>
 <span class="sourceLineNo">417</span>  }<a name="line.417"></a>
 <span class="sourceLineNo">418</span><a name="line.418"></a>
 <span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public void preRegionOffline(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>    HRegionInfo regionInfo) throws IOException {<a name="line.421"></a>
+<span class="sourceLineNo">420</span>  public void preUnassign(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      HRegionInfo regionInfo, boolean force) throws IOException {<a name="line.421"></a>
 <span class="sourceLineNo">422</span>  }<a name="line.422"></a>
 <span class="sourceLineNo">423</span><a name="line.423"></a>
 <span class="sourceLineNo">424</span>  @Override<a name="line.424"></a>
-<span class="sourceLineNo">425</span>  public void postRegionOffline(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    HRegionInfo regionInfo) throws IOException {<a name="line.426"></a>
+<span class="sourceLineNo">425</span>  public void postUnassign(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      HRegionInfo regionInfo, boolean force) throws IOException {<a name="line.426"></a>
 <span class="sourceLineNo">427</span>  }<a name="line.427"></a>
 <span class="sourceLineNo">428</span><a name="line.428"></a>
 <span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public void preBalance(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      throws IOException {<a name="line.431"></a>
+<span class="sourceLineNo">430</span>  public void preRegionOffline(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    HRegionInfo regionInfo) throws IOException {<a name="line.431"></a>
 <span class="sourceLineNo">432</span>  }<a name="line.432"></a>
 <span class="sourceLineNo">433</span><a name="line.433"></a>
 <span class="sourceLineNo">434</span>  @Override<a name="line.434"></a>
-<span class="sourceLineNo">435</span>  public void postBalance(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, List&lt;RegionPlan&gt; plans)<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      throws IOException {<a name="line.436"></a>
+<span class="sourceLineNo">435</span>  public void postRegionOffline(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    HRegionInfo regionInfo) throws IOException {<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>  @Override<a name="line.439"></a>
-<span class="sourceLineNo">440</span>  public boolean preBalanceSwitch(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      boolean b) throws IOException {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    return b;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>  }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span>  @Override<a name="line.445"></a>
-<span class="sourceLineNo">446</span>  public void postBalanceSwitch(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      boolean oldValue, boolean newValue) throws IOException {<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>  @Override<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  public void preShutdown(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      throws IOException {<a name="line.452"></a>
+<span class="sourceLineNo">440</span>  public void preBalance(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      throws IOException {<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>  @Override<a name="line.444"></a>
+<span class="sourceLineNo">445</span>  public void postBalance(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, List&lt;RegionPlan&gt; plans)<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      throws IOException {<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>  @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span>  public boolean preBalanceSwitch(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      boolean b) throws IOException {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    return b;<a name="line.452"></a>
 <span class="sourceLineNo">453</span>  }<a name="line.453"></a>
 <span class="sourceLineNo">454</span><a name="line.454"></a>
 <span class="sourceLineNo">455</span>  @Override<a name="line.455"></a>
-<span class="sourceLineNo">456</span>  public void preStopMaster(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.456"></a>
-<span class="sourceLineNo">457</span>      throws IOException {<a name="line.457"></a>
+<span class="sourceLineNo">456</span>  public void postBalanceSwitch(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      boolean oldValue, boolean newValue) throws IOException {<a name="line.457"></a>
 <span class="sourceLineNo">458</span>  }<a name="line.458"></a>
 <span class="sourceLineNo">459</span><a name="line.459"></a>
 <span class="sourceLineNo">460</span>  @Override<a name="line.460"></a>
-<span class="sourceLineNo">461</span>  public void postStartMaster(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.461"></a>
+<span class="sourceLineNo">461</span>  public void preShutdown(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.461"></a>
 <span class="sourceLineNo">462</span>      throws IOException {<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>  @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span>  public void preMasterInitialization(<a name="line.466"></a>
-<span class="sourceLineNo">467</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx) throws IOException {<a name="line.467"></a>
+<span class="sourceLineNo">466</span>  public void preStopMaster(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.466"></a>
+<span class="sourceLineNo">467</span>      throws IOException {<a name="line.467"></a>
 <span class="sourceLineNo">468</span>  }<a name="line.468"></a>
 <span class="sourceLineNo">469</span><a name="line.469"></a>
 <span class="sourceLineNo">470</span>  @Override<a name="line.470"></a>
-<span class="sourceLineNo">471</span>  public void start(CoprocessorEnvironment ctx) throws IOException {<a name="line.471"></a>
-<span class="sourceLineNo">472</span>  }<a name="line.472"></a>
-<span class="sourceLineNo">473</span><a name="line.473"></a>
-<span class="sourceLineNo">474</span>  @Override<a name="line.474"></a>
-<span class="sourceLineNo">475</span>  public void stop(CoprocessorEnvironment ctx) throws IOException {<a name="line.475"></a>
-<span class="sourceLineNo">476</span>  }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>  @Override<a name="line.478"></a>
-<span class="sourceLineNo">479</span>  public void preMove(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      HRegionInfo region, ServerName srcServer, ServerName destServer)<a name="line.480"></a>
-<span class="sourceLineNo">481</span>  throws IOException {<a name="line.481"></a>
+<span class="sourceLineNo">471</span>  public void postStartMaster(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      throws IOException {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>  }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>  @Override<a name="line.475"></a>
+<span class="sourceLineNo">476</span>  public void preMasterInitialization(<a name="line.476"></a>
+<span class="sourceLineNo">477</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx) throws IOException {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>  }<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>  @Override<a name="line.480"></a>
+<span class="sourceLineNo">481</span>  public void start(CoprocessorEnvironment ctx) throws IOException {<a name="line.481"></a>
 <span class="sourceLineNo">482</span>  }<a name="line.482"></a>
 <span class="sourceLineNo">483</span><a name="line.483"></a>
 <span class="sourceLineNo">484</span>  @Override<a name="line.484"></a>
-<span class="sourceLineNo">485</span>  public void postMove(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      HRegionInfo region, ServerName srcServer, ServerName destServer)<a name="line.486"></a>
-<span class="sourceLineNo">487</span>  throws IOException {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>  }<a name="line.488"></a>
-<span class="sourceLineNo">489</span><a name="line.489"></a>
-<span class="sourceLineNo">490</span>  @Override<a name="line.490"></a>
-<span class="sourceLineNo">491</span>  public void preSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.491"></a>
-<span class="sourceLineNo">492</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      throws IOException {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>  }<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>  @Override<a name="line.496"></a>
-<span class="sourceLineNo">497</span>  public void postSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      throws IOException {<a name="line.499"></a>
-<span class="sourceLineNo">500</span>  }<a name="line.500"></a>
-<span class="sourceLineNo">501</span><a name="line.501"></a>
-<span class="sourceLineNo">502</span>  @Override<a name="line.502"></a>
-<span class="sourceLineNo">503</span>  public void preListSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      final SnapshotDescription snapshot) throws IOException {<a name="line.504"></a>
-<span class="sourceLineNo">505</span>  }<a name="line.505"></a>
-<span class="sourceLineNo">506</span><a name="line.506"></a>
-<span class="sourceLineNo">507</span>  @Override<a name="line.507"></a>
-<span class="sourceLineNo">508</span>  public void postListSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      final SnapshotDescription snapshot) throws IOException {<a name="line.509"></a>
+<span class="sourceLineNo">485</span>  public void stop(CoprocessorEnvironment ctx) throws IOException {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span>  @Override<a name="line.488"></a>
+<span class="sourceLineNo">489</span>  public void preMove(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.489"></a>
+<span class="sourceLineNo">490</span>      HRegionInfo region, ServerName srcServer, ServerName destServer)<a name="line.490"></a>
+<span class="sourceLineNo">491</span>  throws IOException {<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>  @Override<a name="line.494"></a>
+<span class="sourceLineNo">495</span>  public void postMove(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.495"></a>
+<span class="sourceLineNo">496</span>      HRegionInfo region, ServerName srcServer, ServerName destServer)<a name="line.496"></a>
+<span class="sourceLineNo">497</span>  throws IOException {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>  }<a name="line.498"></a>
+<span class="sourceLineNo">499</span><a name="line.499"></a>
+<span class="sourceLineNo">500</span>  @Override<a name="line.500"></a>
+<span class="sourceLineNo">501</span>  public void preSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.502"></a>
+<span class="sourceLineNo">503</span>      throws IOException {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>  }<a name="line.504"></a>
+<span class="sourceLineNo">505</span><a name="line.505"></a>
+<span class="sourceLineNo">506</span>  @Override<a name="line.506"></a>
+<span class="sourceLineNo">507</span>  public void postSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.507"></a>
+<span class="sourceLineNo">508</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.508"></a>
+<span class="sourceLineNo">509</span>      throws IOException {<a name="line.509"></a>
 <span class="sourceLineNo">510</span>  }<a name="line.510"></a>
 <span class="sourceLineNo">511</span><a name="line.511"></a>
 <span class="sourceLineNo">512</span>  @Override<a name="line.512"></a>
-<span class="sourceLineNo">513</span>  public void preCloneSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      throws IOException {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>  }<a name="line.516"></a>
-<span class="sourceLineNo">517</span><a name="line.517"></a>
-<span class="sourceLineNo">518</span>  @Override<a name="line.518"></a>
-<span class="sourceLineNo">519</span>  public void postCloneSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.519"></a>
-<span class="sourceLineNo">520</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.520"></a>
-<span class="sourceLineNo">521</span>      throws IOException {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>  }<a name="line.522"></a>
-<span class="sourceLineNo">523</span><a name="line.523"></a>
-<span class="sourceLineNo">524</span>  @Override<a name="line.524"></a>
-<span class="sourceLineNo">525</span>  public void preRestoreSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.526"></a>
-<span class="sourceLineNo">527</span>      throws IOException {<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 postRestoreSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.531"></a>
-<span class="sourceLineNo">532</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      throws IOException {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>  }<a name="line.534"></a>
-<span class="sourceLineNo">535</span><a name="line.535"></a>
-<span class="sourceLineNo">536</span>  @Override<a name="line.536"></a>
-<span class="sourceLineNo">537</span>  public void preDeleteSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      final SnapshotDescription snapshot) throws IOException {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>  }<a name="line.539"></a>
-<span class="sourceLineNo">540</span><a name="line.540"></a>
-<span class="sourceLineNo">541</span>  @Override<a name="line.541"></a>
-<span class="sourceLineNo">542</span>  public void postDeleteSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      final SnapshotDescription snapshot) throws IOException {<a name="line.543"></a>
+<span class="sourceLineNo">513</span>  public void preListSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.513"></a>
+<span class="sourceLineNo">514</span>      final SnapshotDescription snapshot) throws IOException {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>  }<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>  @Override<a name="line.517"></a>
+<span class="sourceLineNo">518</span>  public void postListSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.518"></a>
+<span class="sourceLineNo">519</span>      final SnapshotDescription snapshot) throws IOException {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>  }<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>  @Override<a name="line.522"></a>
+<span class="sourceLineNo">523</span>  public void preCloneSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.523"></a>
+<span class="sourceLineNo">524</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.524"></a>
+<span class="sourceLineNo">525</span>      throws IOException {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>  }<a name="line.526"></a>
+<span class="sourceLineNo">527</span><a name="line.527"></a>
+<span class="sourceLineNo">528</span>  @Override<a name="line.528"></a>
+<span class="sourceLineNo">529</span>  public void postCloneSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.529"></a>
+<span class="sourceLineNo">530</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.530"></a>
+<span class="sourceLineNo">531</span>      throws IOException {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>  }<a name="line.532"></a>
+<span class="sourceLineNo">533</span><a name="line.533"></a>
+<span class="sourceLineNo">534</span>  @Override<a name="line.534"></a>
+<span class="sourceLineNo">535</span>  public void preRestoreSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.535"></a>
+<span class="sourceLineNo">536</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.536"></a>
+<span class="sourceLineNo">537</span>      throws IOException {<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 postRestoreSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.541"></a>
+<span class="sourceLineNo">542</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.542"></a>
+<span class="sourceLineNo">543</span>      throws IOException {<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>  @Override<a name="line.546"></a>
-<span class="sourceLineNo">547</span>  public void preGetTableDescriptors(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.547"></a>
-<span class="sourceLineNo">548</span>      List&lt;TableName&gt; tableNamesList, List&lt;HTableDescriptor&gt; descriptors, String regex)<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      throws IOException {<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 postGetTableDescriptors(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      List&lt;TableName&gt; tableNamesList, List&lt;HTableDescriptor&gt; descriptors,<a name="line.554"></a>
-<span class="sourceLineNo">555</span>      String regex) throws IOException {<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>  @Override<a name="line.558"></a>
-<span class="sourceLineNo">559</span>  public void preGetTableNames(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.559"></a>
-<span class="sourceLineNo">560</span>      List&lt;HTableDescriptor&gt; descriptors, String regex) throws IOException {<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>  @Override<a name="line.563"></a>
-<span class="sourceLineNo">564</span>  public void postGetTableNames(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.564"></a>
-<span class="sourceLineNo">565</span>      List&lt;HTableDescriptor&gt; descriptors, String regex) throws IOException {<a name="line.565"></a>
+<span class="sourceLineNo">547</span>  public void preDeleteSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.547"></a>
+<span class="sourceLineNo">548</span>      final SnapshotDescription snapshot) throws IOException {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>  @Override<a name="line.551"></a>
+<span class="sourceLineNo">552</span>  public void postDeleteSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      final SnapshotDescription snapshot) throws IOException {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>  }<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>  @Override<a name="line.556"></a>
+<span class="sourceLineNo">557</span>  public void preGetTableDescriptors(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.557"></a>
+<span class="sourceLineNo">558</span>      List&lt;TableName&gt; tableNamesList, List&lt;HTableDescriptor&gt; descriptors, String regex)<a name="line.558"></a>
+<span class="sourceLineNo">559</span>      throws IOException {<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 postGetTableDescriptors(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.563"></a>
+<span class="sourceLineNo">564</span>      List&lt;TableName&gt; tableNamesList, List&lt;HTableDescriptor&gt; descriptors,<a name="line.564"></a>
+<span class="sourceLineNo">565</span>      String regex) throws IOException {<a name="line.565"></a>
 <span class="sourceLineNo">566</span>  }<a name="line.566"></a>
 <span class="sourceLineNo">567</span><a name="line.567"></a>
 <span class="sourceLineNo">568</span>  @Override<a name="line.568"></a>
-<span class="sourceLineNo">569</span>  public void preTableFlush(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      TableName tableName) throws IOException {<a name="line.570"></a>
+<span class="sourceLineNo">569</span>  public void preGetTableNames(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.569"></a>
+<span class="sourceLineNo">570</span>      List&lt;HTableDescriptor&gt; descriptors, String regex) throws IOException {<a name="line.570"></a>
 <span class="sourceLineNo">571</span>  }<a name="line.571"></a>
 <span class="sourceLineNo">572</span><a name="line.572"></a>
 <span class="sourceLineNo">573</span>  @Override<a name="line.573"></a>
-<span class="sourceLineNo">574</span>  public void postTabl

<TRUNCATED>

[39/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
index e593485..ef33f77 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
@@ -743,7 +743,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>start</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.463">start</a>(int&nbsp;numThreads,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.478">start</a>(int&nbsp;numThreads,
          boolean&nbsp;abortOnCorruption)
            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Start the procedure executor.
@@ -762,7 +762,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.512">stop</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.527">stop</a>()</pre>
 </li>
 </ul>
 <a name="join()">
@@ -771,7 +771,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>join</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.522">join</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.537">join</a>()</pre>
 </li>
 </ul>
 <a name="isRunning()">
@@ -780,7 +780,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>isRunning</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.546">isRunning</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.561">isRunning</a>()</pre>
 </li>
 </ul>
 <a name="getNumThreads()">
@@ -789,7 +789,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumThreads</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.553">getNumThreads</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.568">getNumThreads</a>()</pre>
 <dl><dt><span class="strong">Returns:</span></dt><dd>the number of execution threads.</dd></dl>
 </li>
 </ul>
@@ -799,7 +799,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveExecutorCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.557">getActiveExecutorCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.572">getActiveExecutorCount</a>()</pre>
 </li>
 </ul>
 <a name="getEnvironment()">
@@ -808,7 +808,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getEnvironment</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.561">getEnvironment</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="type parameter in ProcedureExecutor">TEnvironment</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.576">getEnvironment</a>()</pre>
 </li>
 </ul>
 <a name="getStore()">
@@ -817,7 +817,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getStore</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.565">getStore</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.580">getStore</a>()</pre>
 </li>
 </ul>
 <a name="registerListener(org.apache.hadoop.hbase.procedure2.ProcedureExecutor.ProcedureExecutorListener)">
@@ -826,7 +826,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>registerListener</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.569">registerListener</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.ProcedureExecutorListener</a>&nbsp;listener)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.584">registerListener</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.ProcedureExecutorListener</a>&nbsp;listener)</pre>
 </li>
 </ul>
 <a name="unregisterListener(org.apache.hadoop.hbase.procedure2.ProcedureExecutor.ProcedureExecutorListener)">
@@ -835,7 +835,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>unregisterListener</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.573">unregisterListener</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.ProcedureExecutorListener</a>&nbsp;listener)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.588">unregisterListener</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.ProcedureExecutorListener</a>&nbsp;listener)</pre>
 </li>
 </ul>
 <a name="listProcedures()">
@@ -844,7 +844,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>listProcedures</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.581">listProcedures</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.596">listProcedures</a>()</pre>
 <div class="block">List procedures.</div>
 <dl><dt><span class="strong">Returns:</span></dt><dd>the procedures in a list</dd></dl>
 </li>
@@ -855,7 +855,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>submitProcedure</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.602">submitProcedure</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;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.617">submitProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc)</pre>
 <div class="block">Add a new root-procedure to the executor.</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>proc</code> - the new procedure to execute.</dd>
 <dt><span class="strong">Returns:</span></dt><dd>the procedure id, that can be used to monitor the operation</dd></dl>
@@ -867,7 +867,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>submitProcedure</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.613">submitProcedure</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;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.628">submitProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc,
                    long&nbsp;nonceGroup,
                    long&nbsp;nonce)</pre>
 <div class="block">Add a new root-procedure to the executor.</div>
@@ -881,7 +881,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getResult</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.669">getResult</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.684">getResult</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="isFinished(long)">
@@ -890,7 +890,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>isFinished</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.680">isFinished</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.695">isFinished</a>(long&nbsp;procId)</pre>
 <div class="block">Return true if the procedure is finished.
  The state may be "completed successfully" or "failed and rolledback".
  Use getResult() to check the state or get the result data.</div>
@@ -904,7 +904,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>isStarted</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.689">isStarted</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.704">isStarted</a>(long&nbsp;procId)</pre>
 <div class="block">Return true if the procedure is started.</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>procId</code> - the ID of the procedure to check</dd>
 <dt><span class="strong">Returns:</span></dt><dd>true if the procedure execution is started, otherwise false.</dd></dl>
@@ -916,7 +916,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>removeResult</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.701">removeResult</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.716">removeResult</a>(long&nbsp;procId)</pre>
 <div class="block">Mark the specified completed procedure, as ready to remove.</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>procId</code> - the ID of the procedure to remove</dd></dl>
 </li>
@@ -927,7 +927,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>abort</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.721">abort</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.736">abort</a>(long&nbsp;procId)</pre>
 <div class="block">Send an abort notification the specified procedure.
  Depending on the procedure implementation the abort can be considered or ignored.</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>procId</code> - the procedure to abort</dd>
@@ -940,7 +940,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>abort</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.732">abort</a>(long&nbsp;procId,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.747">abort</a>(long&nbsp;procId,
             boolean&nbsp;mayInterruptIfRunning)</pre>
 <div class="block">Send an abort notification the specified procedure.
  Depending on the procedure implementation the abort can be considered or ignored.</div>
@@ -954,7 +954,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>isProcedureOwner</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.751">isProcedureOwner</a>(long&nbsp;procId,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.766">isProcedureOwner</a>(long&nbsp;procId,
                        <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</pre>
 <div class="block">Check if the user is this procedure's owner</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>procId</code> - the target procedure</dd><dd><code>user</code> - the user</dd>
@@ -968,7 +968,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getResults</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.769">getResults</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.784">getResults</a>()</pre>
 </li>
 </ul>
 <a name="getProcedure(long)">
@@ -977,7 +977,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.773">getProcedure</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.788">getProcedure</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="getRunnableSet()">
@@ -986,7 +986,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getRunnableSet</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureRunnableSet.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureRunnableSet</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.777">getRunnableSet</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureRunnableSet.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureRunnableSet</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.792">getRunnableSet</a>()</pre>
 </li>
 </ul>
 <a name="execLoop()">
@@ -995,7 +995,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>execLoop</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.786">execLoop</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.801">execLoop</a>()</pre>
 <div class="block">Execution loop (N threads)
  while the executor is in a running state,
  fetch a procedure from the runnables queue and start the execution.</div>
@@ -1007,7 +1007,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>execLoop</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.800">execLoop</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.815">execLoop</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="timeoutLoop()">
@@ -1016,7 +1016,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>timeoutLoop</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.871">timeoutLoop</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.888">timeoutLoop</a>()</pre>
 </li>
 </ul>
 <a name="executeRollback(long, org.apache.hadoop.hbase.procedure2.RootProcedureState)">
@@ -1025,7 +1025,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>executeRollback</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.923">executeRollback</a>(long&nbsp;rootProcId,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.940">executeRollback</a>(long&nbsp;rootProcId,
                       <a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.html" title="class in org.apache.hadoop.hbase.procedure2">RootProcedureState</a>&nbsp;procStack)</pre>
 <div class="block">Execute the rollback of the full procedure stack.
  Once the procedure is rolledback, the root-procedure will be visible as
@@ -1038,7 +1038,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>executeRollback</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.984">executeRollback</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1001">executeRollback</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc)</pre>
 <div class="block">Execute the rollback of the procedure step.
  It updates the store with the new state (stack index)
  or will remove completly the procedure in case it is a child.</div>
@@ -1050,7 +1050,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>execProcedure</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1040">execProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.html" title="class in org.apache.hadoop.hbase.procedure2">RootProcedureState</a>&nbsp;procStack,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1057">execProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.html" title="class in org.apache.hadoop.hbase.procedure2">RootProcedureState</a>&nbsp;procStack,
                  <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;procedure)</pre>
 <div class="block">Executes the specified procedure
   - calls the doExecute() of the procedure
@@ -1075,7 +1075,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>handleInterruptedException</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1185">handleInterruptedException</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1202">handleInterruptedException</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc,
                               <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a>&nbsp;e)</pre>
 </li>
 </ul>
@@ -1085,7 +1085,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>sendProcedureLoadedNotification</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1197">sendProcedureLoadedNotification</a>(long&nbsp;procId)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1214">sendProcedureLoadedNotification</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="sendProcedureAddedNotification(long)">
@@ -1094,7 +1094,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>sendProcedureAddedNotification</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1209">sendProcedureAddedNotification</a>(long&nbsp;procId)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1226">sendProcedureAddedNotification</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="sendProcedureFinishedNotification(long)">
@@ -1103,7 +1103,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>sendProcedureFinishedNotification</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1221">sendProcedureFinishedNotification</a>(long&nbsp;procId)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1238">sendProcedureFinishedNotification</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="nextProcId()">
@@ -1112,7 +1112,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>nextProcId</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1233">nextProcId</a>()</pre>
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1250">nextProcId</a>()</pre>
 </li>
 </ul>
 <a name="getRootProcedureId(org.apache.hadoop.hbase.procedure2.Procedure)">
@@ -1121,7 +1121,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getRootProcedureId</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1248">getRootProcedureId</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc)</pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1265">getRootProcedureId</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="procedureFinished(org.apache.hadoop.hbase.procedure2.Procedure)">
@@ -1130,7 +1130,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>procedureFinished</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1252">procedureFinished</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1269">procedureFinished</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="getResultOrProcedure(long)">
@@ -1139,7 +1139,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getResultOrProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1278">getResultOrProcedure</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1295">getResultOrProcedure</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/Procedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/Procedure.html b/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/Procedure.html
index a02334d..22c2d67 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/Procedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/Procedure.html
@@ -807,7 +807,7 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></code></td>
-<td class="colLast"><span class="strong">ProcedureStore.ProcedureIterator.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#next()">next</a></strong>()</code>
+<td class="colLast"><span class="strong">ProcedureStore.ProcedureIterator.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#nextAsProcedure()">nextAsProcedure</a></strong>()</code>
 <div class="block">Returns the next procedure in the iteration.</div>
 </td>
 </tr>
@@ -888,7 +888,7 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></code></td>
-<td class="colLast"><span class="strong">ProcedureWALFormatReader.EntryIterator.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#next()">next</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><span class="strong">ProcedureWALFormatReader.EntryIterator.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#nextAsProcedure()">nextAsProcedure</a></strong>()</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html b/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html
index 11978fb..b552e89 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html
@@ -95,7 +95,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.55">ProcedureStore.ProcedureIterator</a></pre>
+<pre>public static interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.56">ProcedureStore.ProcedureIterator</a></pre>
 <div class="block">An Iterator over a collection of Procedure</div>
 </li>
 </ul>
@@ -122,17 +122,31 @@
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#isNextCompleted()">isNextCompleted</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></code></td>
-<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#next()">next</a></strong>()</code>
+<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#nextAsProcedure()">nextAsProcedure</a></strong>()</code>
 <div class="block">Returns the next procedure in the iteration.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#nextAsProcedureInfo()">nextAsProcedureInfo</a></strong>()</code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#reset()">reset</a></strong>()</code>
 <div class="block">Reset the Iterator by seeking to the beginning of the list.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#skipNext()">skipNext</a></strong>()</code>
+<div class="block">Skip the next procedure</div>
+</td>
+</tr>
 </table>
 </li>
 </ul>
@@ -154,7 +168,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>reset</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#line.59">reset</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#line.60">reset</a>()</pre>
 <div class="block">Reset the Iterator by seeking to the beginning of the list.</div>
 </li>
 </ul>
@@ -164,27 +178,57 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>hasNext</h4>
-<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#line.67">hasNext</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#line.68">hasNext</a>()</pre>
 <div class="block">Returns true if the iterator has more elements.
  (In other words, returns true if next() would return a Procedure
  rather than throwing an exception.)</div>
 <dl><dt><span class="strong">Returns:</span></dt><dd>true if the iterator has more procedures</dd></dl>
 </li>
 </ul>
-<a name="next()">
+<a name="isNextCompleted()">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
-<h4>next</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#line.74">next</a>()
-               throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<h4>isNextCompleted</h4>
+<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#line.73">isNextCompleted</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if the iterator next element is a completed procedure.</dd></dl>
+</li>
+</ul>
+<a name="skipNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>skipNext</h4>
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#line.78">skipNext</a>()</pre>
+<div class="block">Skip the next procedure</div>
+</li>
+</ul>
+<a name="nextAsProcedure()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>nextAsProcedure</h4>
+<pre><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#line.85">nextAsProcedure</a>()
+                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Returns the next procedure in the iteration.</div>
 <dl><dt><span class="strong">Returns:</span></dt><dd>the next procedure in the iteration.</dd>
 <dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if there was an error fetching/deserializing the procedure</dd></dl>
 </li>
 </ul>
+<a name="nextAsProcedureInfo()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>nextAsProcedureInfo</h4>
+<pre><a href="../../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#line.90">nextAsProcedureInfo</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the next procedure in the iteration as ProcedureInfo.</dd></dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html b/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html
index 683ddab..1da9f52 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html
@@ -95,7 +95,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.80">ProcedureStore.ProcedureLoader</a></pre>
+<pre>public static interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.96">ProcedureStore.ProcedureLoader</a></pre>
 <div class="block">Interface passed to the ProcedureStore.load() method to handle the store-load events.</div>
 </li>
 </ul>
@@ -155,7 +155,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>setMaxProcId</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html#line.85">setMaxProcId</a>(long&nbsp;maxProcId)</pre>
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html#line.101">setMaxProcId</a>(long&nbsp;maxProcId)</pre>
 <div class="block">Called by ProcedureStore.load() to notify about the maximum proc-id in the store.</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>maxProcId</code> - the highest proc-id in the store</dd></dl>
 </li>
@@ -166,7 +166,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>load</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html#line.92">load</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureIterator</a>&nbsp;procIter)
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html#line.108">load</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureIterator</a>&nbsp;procIter)
           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Called by the ProcedureStore.load() every time a set of procedures are ready to be executed.
  The ProcedureIterator passed to the method, has the procedure sorted in replay-order.</div>
@@ -181,7 +181,7 @@
 <ul class="blockListLast">
 <li class="blockList">
 <h4>handleCorrupted</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html#line.99">handleCorrupted</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureIterator</a>&nbsp;procIter)
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html#line.115">handleCorrupted</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureIterator</a>&nbsp;procIter)
                      throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Called by the ProcedureStore.load() in case we have procedures not-ready to be added to
  the executor, which probably means they are corrupted since some information/link is missing.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html b/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html
index ce2f93a..b0a5674 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html
@@ -95,7 +95,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.39">ProcedureStore.ProcedureStoreListener</a></pre>
+<pre>public static interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.40">ProcedureStore.ProcedureStoreListener</a></pre>
 <div class="block">Store listener interface.
  The main process should register a listener and respond to the store events.</div>
 </li>
@@ -149,7 +149,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>postSync</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html#line.43">postSync</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html#line.44">postSync</a>()</pre>
 <div class="block">triggered when the store sync is completed.</div>
 </li>
 </ul>
@@ -159,7 +159,7 @@
 <ul class="blockListLast">
 <li class="blockList">
 <h4>abortProcess</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html#line.49">abortProcess</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html#line.50">abortProcess</a>()</pre>
 <div class="block">triggered when the store is not able to write out data.
  the main process should abort.</div>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html b/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html
index b28b2f8..6d7e193 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html
@@ -93,7 +93,7 @@
 <br>
 <pre><a href="../../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
 <a href="../../../../../../org/apache/hadoop/hbase/classification/InterfaceStability.Evolving.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceStability.Evolving</a>
-public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.34">ProcedureStore</a></pre>
+public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.35">ProcedureStore</a></pre>
 <div class="block">The ProcedureStore is used by the executor to persist the state of each procedure execution.
  This allows to resume the execution of pending/in-progress procedures in case
  of machine failure or service shutdown.</div>
@@ -234,7 +234,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/pro
 <ul class="blockList">
 <li class="blockList">
 <h4>registerListener</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.106">registerListener</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureStoreListener</a>&nbsp;listener)</pre>
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.122">registerListener</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureStoreListener</a>&nbsp;listener)</pre>
 <div class="block">Add the listener to the notification list.</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>listener</code> - The AssignmentListener to register</dd></dl>
 </li>
@@ -245,7 +245,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/pro
 <ul class="blockList">
 <li class="blockList">
 <h4>unregisterListener</h4>
-<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.113">unregisterListener</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureStoreListener</a>&nbsp;listener)</pre>
+<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.129">unregisterListener</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureStoreListener</a>&nbsp;listener)</pre>
 <div class="block">Remove the listener from the notification list.</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>listener</code> - The AssignmentListener to unregister</dd>
 <dt><span class="strong">Returns:</span></dt><dd>true if the listner was in the list and it was removed, otherwise false.</dd></dl>
@@ -257,7 +257,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/pro
 <ul class="blockList">
 <li class="blockList">
 <h4>start</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.119">start</a>(int&nbsp;numThreads)
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.135">start</a>(int&nbsp;numThreads)
            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Start/Open the procedure store</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>numThreads</code> - </dd>
@@ -271,7 +271,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/pro
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.125">stop</a>(boolean&nbsp;abort)</pre>
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.141">stop</a>(boolean&nbsp;abort)</pre>
 <div class="block">Stop/Close the procedure store</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>abort</code> - true if the stop is an abort</dd></dl>
 </li>
@@ -282,7 +282,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/pro
 <ul class="blockList">
 <li class="blockList">
 <h4>isRunning</h4>
-<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.130">isRunning</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.146">isRunning</a>()</pre>
 <dl><dt><span class="strong">Returns:</span></dt><dd>true if the store is running, otherwise false.</dd></dl>
 </li>
 </ul>
@@ -292,7 +292,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/pro
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumThreads</h4>
-<pre>int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.135">getNumThreads</a>()</pre>
+<pre>int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.151">getNumThreads</a>()</pre>
 <dl><dt><span class="strong">Returns:</span></dt><dd>the number of threads/slots passed to start()</dd></dl>
 </li>
 </ul>
@@ -302,7 +302,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/pro
 <ul class="blockList">
 <li class="blockList">
 <h4>recoverLease</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.140">recoverLease</a>()
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.156">recoverLease</a>()
                   throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Acquire the lease for the procedure store.</div>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -315,7 +315,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/pro
 <ul class="blockList">
 <li class="blockList">
 <h4>load</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.146">load</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureLoader</a>&nbsp;loader)
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.162">load</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureLoader</a>&nbsp;loader)
           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Load the Procedures in the store.</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>loader</code> - the ProcedureLoader that will handle the store-load events</dd>
@@ -329,7 +329,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/pro
 <ul class="blockList">
 <li class="blockList">
 <h4>insert</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.159">insert</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc,
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.175">insert</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/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>[]&nbsp;subprocs)</pre>
 <div class="block">When a procedure is submitted to the executor insert(proc, null) will be called.
  'proc' has a 'RUNNABLE' state and the initial information required to start up.
@@ -346,7 +346,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/pro
 <ul class="blockList">
 <li class="blockList">
 <h4>update</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.166">update</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc)</pre>
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.182">update</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc)</pre>
 <div class="block">The specified procedure was executed,
  and the new state should be written to the store.</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>proc</code> - the procedure to serialize and write to the store.</dd></dl>
@@ -358,7 +358,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/pro
 <ul class="blockListLast">
 <li class="blockList">
 <h4>delete</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.174">delete</a>(long&nbsp;procId)</pre>
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.190">delete</a>(long&nbsp;procId)</pre>
 <div class="block">The specified procId was removed from the executor,
  due to completion, abort or failure.
  The store implementor should remove all the information about the specified procId.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html b/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html
index fad4a84..1762268 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html
@@ -198,72 +198,72 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#clear()">clear</a></strong>()</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#delete(long)">delete</a></strong>(long&nbsp;procId)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#dump()">dump</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#getMinProcId()">getMinProcId</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker.BitSetNode</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#getOrCreateNode(long)">getOrCreateNode</a></strong>(long&nbsp;procId)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#getUpdatedMaxProcId()">getUpdatedMaxProcId</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#getUpdatedMinProcId()">getUpdatedMinProcId</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker.BitSetNode</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#growNode(org.apache.hadoop.hbase.procedure2.store.ProcedureStoreTracker.BitSetNode,%20long)">growNode</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker.BitSetNode</a>&nbsp;node,
                 long&nbsp;procId)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#insert(long)">insert</a></strong>(long&nbsp;procId)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#insert(long,%20long[])">insert</a></strong>(long&nbsp;procId,
             long[]&nbsp;subProcIds)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.DeleteState.html" title="enum in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker.DeleteState</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#isDeleted(long)">isDeleted</a></strong>(long&nbsp;procId)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#isEmpty()">isEmpty</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#isTracking(long,%20long)">isTracking</a></strong>(long&nbsp;minId,
                     long&nbsp;maxId)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#isUpdated()">isUpdated</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker.BitSetNode</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#mergeNodes(org.apache.hadoop.hbase.procedure2.store.ProcedureStoreTracker.BitSetNode,%20org.apache.hadoop.hbase.procedure2.store.ProcedureStoreTracker.BitSetNode)">mergeNodes</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker.BitSetNode</a>&nbsp;leftNode,
                     <a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker.BitSetNode</a>&nbsp;rightNode)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#readFrom(java.io.InputStream)">readFrom</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;stream)</code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#reset()">reset</a></strong>()</code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#resetUpdates()">resetUpdates</a></strong>()</code>&nbsp;</td>
@@ -464,13 +464,13 @@ public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbas
                                         boolean&nbsp;isDeleted)</pre>
 </li>
 </ul>
-<a name="clear()">
+<a name="reset()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>clear</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.417">clear</a>()</pre>
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.417">reset</a>()</pre>
 </li>
 </ul>
 <a name="isDeleted(long)">
@@ -479,7 +479,7 @@ public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>isDeleted</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.DeleteState.html" title="enum in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker.DeleteState</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.422">isDeleted</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.DeleteState.html" title="enum in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker.DeleteState</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.424">isDeleted</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="getMinProcId()">
@@ -488,7 +488,7 @@ public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>getMinProcId</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.432">getMinProcId</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.434">getMinProcId</a>()</pre>
 </li>
 </ul>
 <a name="setKeepDeletes(boolean)">
@@ -497,7 +497,7 @@ public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setKeepDeletes</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.438">setKeepDeletes</a>(boolean&nbsp;keepDeletes)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.440">setKeepDeletes</a>(boolean&nbsp;keepDeletes)</pre>
 </li>
 </ul>
 <a name="setPartialFlag(boolean)">
@@ -506,7 +506,7 @@ public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setPartialFlag</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.451">setPartialFlag</a>(boolean&nbsp;isPartial)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.453">setPartialFlag</a>(boolean&nbsp;isPartial)</pre>
 </li>
 </ul>
 <a name="isEmpty()">
@@ -515,7 +515,7 @@ public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>isEmpty</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.460">isEmpty</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.462">isEmpty</a>()</pre>
 </li>
 </ul>
 <a name="isUpdated()">
@@ -524,7 +524,7 @@ public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>isUpdated</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.469">isUpdated</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.471">isUpdated</a>()</pre>
 </li>
 </ul>
 <a name="isTracking(long, long)">
@@ -533,7 +533,7 @@ public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>isTracking</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.478">isTracking</a>(long&nbsp;minId,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.480">isTracking</a>(long&nbsp;minId,
                  long&nbsp;maxId)</pre>
 </li>
 </ul>
@@ -543,7 +543,7 @@ public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>resetUpdates</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.483">resetUpdates</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.485">resetUpdates</a>()</pre>
 </li>
 </ul>
 <a name="undeleteAll()">
@@ -552,7 +552,7 @@ public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>undeleteAll</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.491">undeleteAll</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.493">undeleteAll</a>()</pre>
 </li>
 </ul>
 <a name="getOrCreateNode(long)">
@@ -561,7 +561,7 @@ public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>getOrCreateNode</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker.BitSetNode</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.497">getOrCreateNode</a>(long&nbsp;procId)</pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker.BitSetNode</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.499">getOrCreateNode</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="growNode(org.apache.hadoop.hbase.procedure2.store.ProcedureStoreTracker.BitSetNode, long)">
@@ -570,7 +570,7 @@ public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>growNode</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker.BitSetNode</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.549">growNode</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker.BitSetNode</a>&nbsp;node,
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker.BitSetNode</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.551">growNode</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker.BitSetNode</a>&nbsp;node,
                                         long&nbsp;procId)</pre>
 </li>
 </ul>
@@ -580,7 +580,7 @@ public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>mergeNodes</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker.BitSetNode</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.556">mergeNodes</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker.BitSetNode</a>&nbsp;leftNode,
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker.BitSetNode</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.558">mergeNodes</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker.BitSetNode</a>&nbsp;leftNode,
                                           <a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker.BitSetNode</a>&nbsp;rightNode)</pre>
 </li>
 </ul>
@@ -590,7 +590,7 @@ public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>dump</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.563">dump</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.565">dump</a>()</pre>
 </li>
 </ul>
 <a name="writeTo(java.io.OutputStream)">
@@ -599,7 +599,7 @@ public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>writeTo</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.572">writeTo</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;stream)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.574">writeTo</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;stream)
              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -611,7 +611,7 @@ public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockListLast">
 <li class="blockList">
 <h4>readFrom</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.581">readFrom</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;stream)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#line.583">readFrom</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;stream)
               throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html b/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html
index 78789ab..da6af26 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html
@@ -120,10 +120,6 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <td class="colLast"><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html#markCorruptedWAL(org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFile,%20java.io.IOException)">markCorruptedWAL</a></strong>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&nbsp;log,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;e)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html#removeLog(org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFile)">removeLog</a></strong>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&nbsp;log)</code>&nbsp;</td>
-</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods_inherited_from_class_org.apache.hadoop.hbase.procedure2.store.ProcedureStore.ProcedureLoader">
@@ -146,22 +142,13 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="removeLog(org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFile)">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>removeLog</h4>
-<pre>void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html#line.68">removeLog</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&nbsp;log)</pre>
-</li>
-</ul>
 <a name="markCorruptedWAL(org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFile, java.io.IOException)">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>markCorruptedWAL</h4>
-<pre>void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html#line.69">markCorruptedWAL</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&nbsp;log,
+<pre>void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html#line.68">markCorruptedWAL</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&nbsp;log,
                     <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;e)</pre>
 </li>
 </ul>


[50/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 42471e7..f475cc0 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="20160122" />
+    <meta name="Date-Revision-yyyymmdd" content="20160124" />
     <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" />
@@ -283,7 +283,7 @@
 <td>1666</td>
 <td>0</td>
 <td>0</td>
-<td>12904</td></tr></table></div>
+<td>12905</td></tr></table></div>
 <div class="section">
 <h2><a name="Files"></a>Files</h2>
 <table border="0" class="table table-striped">
@@ -3301,7 +3301,7 @@
 <td><a href="#org.apache.hadoop.hbase.procedure2.store.ProcedureStore.java">org/apache/hadoop/hbase/procedure2/store/ProcedureStore.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>1</td></tr>
+<td>2</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFile.java">org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java</a></td>
 <td>0</td>
@@ -3321,7 +3321,7 @@
 <td><a href="#org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore.java">org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>7</td></tr>
+<td>8</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.procedure2.util.StringUtils.java">org/apache/hadoop/hbase/procedure2/util/StringUtils.java</a></td>
 <td>0</td>
@@ -5501,7 +5501,7 @@
 <td><a href="#org.apache.hadoop.hbase.util.HBaseFsck.java">org/apache/hadoop/hbase/util/HBaseFsck.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>89</td></tr>
+<td>88</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.util.HBaseFsckRepair.java">org/apache/hadoop/hbase/util/HBaseFsckRepair.java</a></td>
 <td>0</td>
@@ -6048,7 +6048,7 @@
 <tr class="b">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_blocks.html#NeedBraces">NeedBraces</a></td>
-<td>1794</td>
+<td>1795</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td>coding</td>
@@ -6109,7 +6109,7 @@
 <ul>
 <li>ordered: <tt>&quot;true&quot;</tt></li>
 <li>sortStaticImportsAlphabetically: <tt>&quot;true&quot;</tt></li></ul></td>
-<td>979</td>
+<td>980</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td></td>
@@ -6139,12 +6139,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>763</td>
+<td>762</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#NonEmptyAtclauseDescription">NonEmptyAtclauseDescription</a></td>
-<td>3440</td>
+<td>3441</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td>misc</td>
@@ -6162,7 +6162,7 @@
 <ul>
 <li>max: <tt>&quot;100&quot;</tt></li>
 <li>ignorePattern: <tt>&quot;^package.*|^import.*|a href|href|http://|https://|ftp://|org.apache.thrift.|com.google.protobuf.|hbase.protobuf.generated&quot;</tt></li></ul></td>
-<td>322</td>
+<td>321</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td></td>
@@ -10508,25 +10508,25 @@
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ProcedureInfo.html#L182">182</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ProcedureInfo.html#L180">180</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 7, expected level should be 6.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ProcedureInfo.html#L200">200</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ProcedureInfo.html#L198">198</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 8, expected level should be 6.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ProcedureInfo.html#L204">204</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ProcedureInfo.html#L202">202</a></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><a href="./xref/org/apache/hadoop/hbase/ProcedureInfo.html#L217">217</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/ProcedureInfo.html#L215">215</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.RegionLoad.java">org/apache/hadoop/hbase/RegionLoad.java</h3>
 <table border="0" class="table table-striped">
@@ -14598,7 +14598,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 64 has parse error. Missed HTML close tag 'code'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/client/HBaseAdmin.html#L1767">1767</a></td></tr>
 <tr class="a">
@@ -20483,73 +20483,73 @@
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L184">184</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L194">194</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L195">195</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L205">205</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L206">206</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L216">216</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L219">219</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L229">229</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L232">232</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L242">242</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L243">243</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L253">253</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L254">254</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L264">264</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L267">267</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L277">277</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L280">280</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L290">290</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L291">291</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L301">301</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L302">302</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L312">312</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L315">315</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#L325">325</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.coprocessor.BaseMasterObserver.java">org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java</h3>
 <table border="0" class="table table-striped">
@@ -20564,73 +20564,73 @@
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L187">187</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L197">197</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L198">198</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L208">208</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L209">209</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L219">219</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L222">222</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L232">232</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L235">235</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L245">245</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L246">246</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L256">256</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L257">257</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L267">267</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L270">270</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L280">280</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L283">283</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L293">293</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L294">294</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L304">304</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L305">305</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L315">315</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L318">318</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#L328">328</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.coprocessor.BaseRegionObserver.java">org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.java</h3>
 <table border="0" class="table table-striped">
@@ -38903,55 +38903,55 @@
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#L755">755</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#L777">777</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method call' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#L758">758</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#L780">780</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#L758">758</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#L780">780</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#L759">759</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#L781">781</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#L760">760</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#L782">782</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 43 should have line break after.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#L1112">1112</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#L1134">1134</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 26 should have line break after.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#L1113">1113</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#L1135">1135</a></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><a href="./xref/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#L1118">1118</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#L1140">1140</a></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><a href="./xref/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#L1125">1125</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#L1147">1147</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.MasterDumpServlet.java">org/apache/hadoop/hbase/master/MasterDumpServlet.java</h3>
 <table border="0" class="table table-striped">
@@ -39146,55 +39146,55 @@
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/master/MasterRpcServices.html#L748">748</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/master/MasterRpcServices.html#L754">754</a></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><a href="./xref/org/apache/hadoop/hbase/master/MasterRpcServices.html#L775">775</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/master/MasterRpcServices.html#L781">781</a></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><a href="./xref/org/apache/hadoop/hbase/master/MasterRpcServices.html#L777">777</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/master/MasterRpcServices.html#L783">783</a></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><a href="./xref/org/apache/hadoop/hbase/master/MasterRpcServices.html#L816">816</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/master/MasterRpcServices.html#L822">822</a></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><a href="./xref/org/apache/hadoop/hbase/master/MasterRpcServices.html#L942">942</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/master/MasterRpcServices.html#L948">948</a></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><a href="./xref/org/apache/hadoop/hbase/master/MasterRpcServices.html#L1170">1170</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/master/MasterRpcServices.html#L1176">1176</a></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><a href="./xref/org/apache/hadoop/hbase/master/MasterRpcServices.html#L1304">1304</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/master/MasterRpcServices.html#L1310">1310</a></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><a href="./xref/org/apache/hadoop/hbase/master/MasterRpcServices.html#L1400">1400</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/master/MasterRpcServices.html#L1406">1406</a></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><a href="./xref/org/apache/hadoop/hbase/master/MasterRpcServices.html#L1446">1446</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/master/MasterRpcServices.html#L1452">1452</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.MasterServices.java">org/apache/hadoop/hbase/master/MasterServices.java</h3>
 <table border="0" class="table table-striped">
@@ -51206,49 +51206,49 @@
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#L418">418</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#L433">433</a></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><a href="./xref/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#L424">424</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#L439">439</a></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><a href="./xref/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#L609">609</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#L624">624</a></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><a href="./xref/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#L610">610</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#L625">625</a></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><a href="./xref/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#L789">789</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#L804">804</a></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><a href="./xref/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#L813">813</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#L828">828</a></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><a href="./xref/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#L874">874</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#L891">891</a></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><a href="./xref/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#L1238">1238</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#L1255">1255</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.procedure2.RemoteProcedureException.java">org/apache/hadoop/hbase/procedure2/RemoteProcedureException.java</h3>
 <table border="0" class="table table-striped">
@@ -51320,38 +51320,44 @@
 <th>Line</th></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>imports</td>
+<td>ImportOrder</td>
+<td>Wrong order for 'org.apache.hadoop.hbase.ProcedureInfo' import.</td>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#L25">25</a></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><a href="./xref/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#L117">117</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#L133">133</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFile.java">org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.fs.FSDataInputStream' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html#L27">27</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html#L97">97</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html#L153">153</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -51360,25 +51366,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFormat.java">org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.fs.FSDataInputStream' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#L28">28</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.procedure2.store.ProcedureStore.ProcedureLoader' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#L33">33</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -51387,123 +51393,129 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFormatReader.java">org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
-<td>Wrong order for 'org.apache.hadoop.fs.FSDataInputStream' import.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#L27">27</a></td></tr>
-<tr class="a">
+<td>Wrong order for 'org.apache.hadoop.hbase.ProcedureInfo' import.</td>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#L28">28</a></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.procedure2.store.ProcedureStore.ProcedureIterator' import.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#L30">30</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#L31">31</a></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><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#L172">172</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#L170">170</a></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><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#L177">177</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#L175">175</a></td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 34 should have line break after.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#L261">261</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#L260">260</a></td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 29 should have line break after.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#L263">263</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#L262">262</a></td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 31 should have line break after.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#L264">264</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#L263">263</a></td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 32 should have line break after.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#L265">265</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#L264">264</a></td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 30 should have line break after.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#L266">266</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#L265">265</a></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><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#L655">655</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#L691">691</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore.java">org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.io.FileNotFoundException' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L22">22</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.util.concurrent.LinkedTransferQueue' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L28">28</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.util.Arrays' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L30">30</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.util.ArrayList' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L31">31</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.annotations.VisibleForTesting' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L58">58</a></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><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L626">626</a></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><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L811">811</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L807">807</a></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><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L862">862</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L858">858</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.procedure2.util.StringUtils.java">org/apache/hadoop/hbase/procedure2/util/StringUtils.java</h3>
 <table border="0" class="table table-striped">
@@ -87044,34 +87056,22 @@
 <td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L914">914</a></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 124).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L930">930</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1014">1014</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1015">1015</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1017">1017</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1018">1018</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1022">1022</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1208">1208</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1023">1023</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
@@ -87083,265 +87083,265 @@
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1211">1211</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1210">1210</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1229">1229</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1212">1212</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1230">1230</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1233">1233</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1234">1234</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1244">1244</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1245">1245</a></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 105).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1263">1263</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1264">1264</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1264">1264</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1265">1265</a></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 105).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1293">1293</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1294">1294</a></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 123).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1296">1296</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1297">1297</a></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 102).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1307">1307</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1308">1308</a></td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>ParenPad</td>
 <td>')' is preceded with whitespace.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1372">1372</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1373">1373</a></td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'catch' child have incorrect indentation level 8, expected level should be 6.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1626">1626</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1627">1627</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1636">1636</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1637">1637</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1637">1637</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1638">1638</a></td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 7, expected level should be 6.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1670">1670</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1671">1671</a></td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 9, expected level should be 8.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1673">1673</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1674">1674</a></td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 7, expected level should be 6.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1674">1674</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1675">1675</a></td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>ParenPad</td>
 <td>')' is preceded with whitespace.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1727">1727</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1728">1728</a></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 106).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1743">1743</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L1744">1744</a></td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>ParenPad</td>
 <td>')' is preceded with whitespace.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2006">2006</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2007">2007</a></td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>ParenPad</td>
 <td>')' is preceded with whitespace.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2026">2026</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2027">2027</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2074">2074</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2075">2075</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2175">2175</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2176">2176</a></td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 219 lines (max allowed is 150).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2196">2196</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2197">2197</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2199">2199</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2200">2200</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2271">2271</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2272">2272</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2421">2421</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2422">2422</a></td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2424">2424</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2425">2425</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2456">2456</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2457">2457</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2647">2647</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2648">2648</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2665">2665</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2666">2666</a></td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 103).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2826">2826</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2827">2827</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2867">2867</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2868">2868</a></td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>ParenPad</td>
 <td>')' is preceded with whitespace.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2934">2934</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2935">2935</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2950">2950</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2951">2951</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2998">2998</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L2999">2999</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3057">3057</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3058">3058</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3060">3060</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3061">3061</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3159">3159</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3160">3160</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3160">3160</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3161">3161</a></td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 6, expected level should be 4.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3239">3239</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3240">3240</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3295">3295</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3296">3296</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3296">3296</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3297">3297</a></td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'.' have incorrect indentation level 10, expected level should be 12.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3322">3322</a></td></tr>
-<tr class="b">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>whitespace</td>
-<td>ParenPad</td>
-<td>'(' is followed by whitespace.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3588">3588</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3323">3323</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
@@ -87356,112 +87356,112 @@
 <td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3590">3590</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>whitespace</td>
+<td>ParenPad</td>
+<td>'(' is followed by whitespace.</td>
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3591">3591</a></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 137).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3810">3810</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3811">3811</a></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 'errorCount' must be private and have accessor methods.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3849">3849</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3850">3850</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3912">3912</a></td></tr>
-<tr class="b">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>sizes</td>
-<td>LineLength</td>
-<td>Line is longer than 100 characters (found 101).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4021">4021</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L3913">3913</a></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 115).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4418">4418</a></td></tr>
+<td>Line is longer than 100 characters (found 101).</td>
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4022">4022</a></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 108).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4453">4453</a></td></tr>
+<td>Line is longer than 100 characters (found 115).</td>
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4419">4419</a></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 107).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4459">4459</a></td></tr>
+<td>Line is longer than 100 characters (found 108).</td>
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4454">4454</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4461">4461</a></td></tr>
+<td>Line is longer than 100 characters (found 107).</td>
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4460">4460</a></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 116).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4463">4463</a></td></tr>
+<td>Line is longer than 100 characters (found 106).</td>
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4462">4462</a></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 113).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4466">4466</a></td></tr>
+<td>Line is longer than 100 characters (found 116).</td>
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4464">4464</a></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 145).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4469">4469</a></td></tr>
+<td>Line is longer than 100 characters (found 113).</td>
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4467">4467</a></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 104).</td>
+<td>Line is longer than 100 characters (found 145).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4470">4470</a></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 179).</td>
+<td>Line is longer than 100 characters (found 104).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4471">4471</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4480">4480</a></td></tr>
+<td>Line is longer than 100 characters (found 179).</td>
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4472">4472</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
-<td>Line is longer than 100 characters (found 104).</td>
+<td>Line is longer than 100 characters (found 107).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4481">4481</a></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 115).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4486">4486</a></td></tr>
+<td>Line is longer than 100 characters (found 104).</td>
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4482">4482</a></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 128).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4491">4491</a></td></tr>
+<td>Line is longer than 100 characters (found 115).</td>
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4487">4487</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4507">4507</a></td></tr>
+<td>sizes</td>
+<td>LineLength</td>
+<td>Line is longer than 100 characters (found 128).</td>
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4492">4492</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
@@ -87470,80 +87470,86 @@
 <td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4508">4508</a></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><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4509">4509</a></td></tr>
+<tr class="a">
+<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 39 should have line break after.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4524">4524</a></td></tr>
-<tr class="a">
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4525">4525</a></td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 222 lines (max allowed is 150).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4535">4535</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsck.html#L4536">4536</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.util.HBaseFsckRepair.java">org/apache/hadoop/hbase/util/HBaseFsckRepair.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.io.IOException' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsckRepair.html#L44">44</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsckRepair.html#L54">54</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsckRepair.html#L88">88</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsckRepair.html#L89">89</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsckRepair.html#L90">90</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsckRepair.html#L91">91</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsckRepair.html#L108">108</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsckRepair.html#L109">109</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/HBaseFsckRepair.html#L110">110</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
@@ -87552,19 +87558,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.util.HFileArchiveUtil.java">org/apache/hadoop/hbase/util/HFileArchiveUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.HConstants' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/HFileArchiveUtil.html#L25">25</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -87573,31 +87579,31 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.util.HMerge.java">org/apache/hadoop/hbase/util/HMerge.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
 <td>Class HMerge should be declared as final.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/HMerge.html#L55">55</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/HMerge.html#L79">79</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/HMerge.html#L99">99</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -87606,55 +87612,55 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.util.Hash.java">org/apache/hadoop/hbase/util/Hash.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 4, expected level should be 6.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/Hash.html#L78">78</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 6, expected level should be 8.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/Hash.html#L79">79</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 4, expected level should be 6.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/Hash.html#L80">80</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 6, expected level should be 8.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/Hash.html#L81">81</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 4, expected level should be 6.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/Hash.html#L82">82</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 6, expected level should be 8.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/Hash.html#L83">83</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 4, expected level should be 6.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/Hash.html#L84">84</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
@@ -87663,19 +87669,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.util.HashedBytes.java">org/apache/hadoop/hbase/util/HashedBytes.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/HashedBytes.html#L53">53</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -87684,13 +87690,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.util.HttpServerUtil.java">org/apache/hadoop/hbase/util/HttpServerUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -87699,19 +87705,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.util.IdLock.java">org/apache/hadoop/hbase/util/IdLock.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.annotations.VisibleForTesting' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/IdLock.html#L28">28</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -87720,37 +87726,37 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.util.IdReadWriteLock.java">org/apache/hadoop/hbase/util/IdReadWriteLock.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.annotations.VisibleForTesting' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/IdReadWriteLock.html#L25">25</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 12, expected level should be one of the following: 6, 8.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/IdReadWriteLock.html#L52">52</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 14, expected level should be one of the following: 8, 10.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/IdReadWriteLock.html#L54">54</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 12, expected level should be one of the following: 6, 8.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/IdReadWriteLock.html#L55">55</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
@@ -87759,13 +87765,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.util.IterableUtils.java">org/apache/hadoop/hbase/util/IterableUtils.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -87774,127 +87780,127 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.util.JSONBean.java">org/apache/hadoop/hbase/util/JSONBean.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JSONBean.html#L102">102</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JSONBean.html#L103">103</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JSONBean.html#L104">104</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JSONBean.html#L105">105</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JSONBean.html#L107">107</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JSONBean.html#L127">127</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 9, expected level should be 10.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JSONBean.html#L141">141</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 11, expected level should be 12.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JSONBean.html#L142">142</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 13, expected level should be 14.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JSONBean.html#L143">143</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method call' child have incorrect indentation level 13, expected level should be 14.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JSONBean.html#L143">143</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 11, expected level should be 12.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JSONBean.html#L144">144</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 9, expected level should be 10.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JSONBean.html#L145">145</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'else' child have incorrect indentation level 11, expected level should be 12.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JSONBean.html#L146">146</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method call' child have incorrect indentation level 11, expected level should be 12.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JSONBean.html#L146">146</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'else rcurly' have incorrect indentation level 9, expected level should be 10.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JSONBean.html#L147">147</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'catch' child have incorrect indentation level 9, expected level should be 10.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JSONBean.html#L148">148</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JSONBean.html#L345">345</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JSONBean.html#L346">346</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JSONBean.html#L370">370</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -87903,187 +87909,187 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.util.JVM.java">org/apache/hadoop/hbase/util/JVM.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JVM.html#L59">59</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JVM.html#L107">107</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JVM.html#L139">139</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'new' have incorrect indentation level 6, expected level should be 8.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JVM.html#L151">151</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization' child have incorrect indentation level 10, expected level should be one of the following: 8, 21.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JVM.html#L152">152</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JVM.html#L156">156</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JVM.html#L156">156</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'try rcurly' have incorrect indentation level 5, expected level should be 4.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JVM.html#L158">158</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'catch' child have incorrect indentation level 7, expected level should be 6.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JVM.html#L159">159</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'catch rcurly' have incorrect indentation level 5, expected level should be 4.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/util/JVM.html#L160">160</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Er

<TRUNCATED>

[42/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/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 333dc52..5e7d86a 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -161,14 +161,14 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/7/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/7/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="strong">Filter.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="strong">FuzzyRowFilter.Order</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="strong">RegexStringComparator.EngineType</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="strong">FilterList.Operator</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="strong">CompareFilter.CompareOp</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="strong">FilterWrapper.FilterRowRetCode</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="strong">FuzzyRowFilter.SatisfiesCode</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="strong">BitComparator.BitwiseOp</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="strong">FuzzyRowFilter.Order</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="strong">Filter.ReturnCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="strong">FilterWrapper.FilterRowRetCode</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="strong">FilterList.Operator</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/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 cbda46c..54f1dbe 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -270,11 +270,11 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="strong">BlockPriority</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="strong">HFileBlock.Writer.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="strong">Cacheable.MemoryType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="strong">BlockType</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="strong">CacheConfig.ExternalBlockCaches</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="strong">HFileBlock.Writer.State</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="strong">BlockPriority</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="strong">BlockType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="strong">BlockType.BlockCategory</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/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 e166280..b3f6c5b 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
@@ -267,10 +267,10 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="strong">SyncTable.SyncMapper.Counter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableSplit.Version.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="strong">TableSplit.Version</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="strong">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="strong">SyncTable.SyncMapper.Counter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="strong">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="strong">CellCounter.CellCounterMapper.Counters</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperation.html b/devapidocs/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperation.html
index 57a3cf5..e6cdb45 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperation.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperation.html
@@ -108,7 +108,7 @@
 </dl>
 <hr>
 <br>
-<pre>private abstract static class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1098">MasterCoprocessorHost.CoprocessorOperation</a>
+<pre>private abstract static class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1120">MasterCoprocessorHost.CoprocessorOperation</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;</pre>
 </li>
 </ul>
@@ -189,7 +189,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverCont
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MasterCoprocessorHost.CoprocessorOperation</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperation.html#line.1100">MasterCoprocessorHost.CoprocessorOperation</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperation.html#line.1122">MasterCoprocessorHost.CoprocessorOperation</a>()</pre>
 </li>
 </ul>
 </li>
@@ -206,7 +206,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverCont
 <ul class="blockList">
 <li class="blockList">
 <h4>call</h4>
-<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperation.html#line.1103">call</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a>&nbsp;oserver,
+<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperation.html#line.1125">call</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a>&nbsp;oserver,
         <a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)
                    throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -219,7 +219,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverCont
 <ul class="blockListLast">
 <li class="blockList">
 <h4>postEnvCall</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperation.html#line.1106">postEnvCall</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterEnvironment.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost.MasterEnvironment</a>&nbsp;env)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperation.html#line.1128">postEnvCall</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterEnvironment.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost.MasterEnvironment</a>&nbsp;env)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html b/devapidocs/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html
index 677e301..1cc65b1 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html
@@ -109,7 +109,7 @@
 </dl>
 <hr>
 <br>
-<pre>private abstract static class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1110">MasterCoprocessorHost.CoprocessorOperationWithResult</a>&lt;T&gt;
+<pre>private abstract static class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1132">MasterCoprocessorHost.CoprocessorOperationWithResult</a>&lt;T&gt;
 extends <a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperation.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost.CoprocessorOperation</a></pre>
 </li>
 </ul>
@@ -217,7 +217,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessor
 <ul class="blockListLast">
 <li class="blockList">
 <h4>result</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html" title="type parameter in MasterCoprocessorHost.CoprocessorOperationWithResult">T</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html#line.1111">result</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html" title="type parameter in MasterCoprocessorHost.CoprocessorOperationWithResult">T</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html#line.1133">result</a></pre>
 </li>
 </ul>
 </li>
@@ -234,7 +234,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessor
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MasterCoprocessorHost.CoprocessorOperationWithResult</h4>
-<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html#line.1110">MasterCoprocessorHost.CoprocessorOperationWithResult</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html#line.1132">MasterCoprocessorHost.CoprocessorOperationWithResult</a>()</pre>
 </li>
 </ul>
 </li>
@@ -253,7 +253,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessor
 <ul class="blockList">
 <li class="blockList">
 <h4>setResult</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html#line.1112">setResult</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html" title="type parameter in MasterCoprocessorHost.CoprocessorOperationWithResult">T</a>&nbsp;result)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html#line.1134">setResult</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html" title="type parameter in MasterCoprocessorHost.CoprocessorOperationWithResult">T</a>&nbsp;result)</pre>
 </li>
 </ul>
 <a name="getResult()">
@@ -262,7 +262,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessor
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getResult</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html" title="type parameter in MasterCoprocessorHost.CoprocessorOperationWithResult">T</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html#line.1113">getResult</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html" title="type parameter in MasterCoprocessorHost.CoprocessorOperationWithResult">T</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html#line.1135">getResult</a>()</pre>
 </li>
 </ul>
 </li>


[17/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureTimeoutRetriever.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureTimeoutRetriever.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureTimeoutRetriever.html
index 2ab8ebc..10be916 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureTimeoutRetriever.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureTimeoutRetriever.html
@@ -316,7 +316,7 @@
 <span class="sourceLineNo">308</span>      public void handleCorrupted(ProcedureIterator procIter) throws IOException {<a name="line.308"></a>
 <span class="sourceLineNo">309</span>        int corruptedCount = 0;<a name="line.309"></a>
 <span class="sourceLineNo">310</span>        while (procIter.hasNext()) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>          Procedure proc = procIter.next();<a name="line.311"></a>
+<span class="sourceLineNo">311</span>          ProcedureInfo proc = procIter.nextAsProcedureInfo();<a name="line.311"></a>
 <span class="sourceLineNo">312</span>          LOG.error("corrupted procedure: " + proc);<a name="line.312"></a>
 <span class="sourceLineNo">313</span>          corruptedCount++;<a name="line.313"></a>
 <span class="sourceLineNo">314</span>        }<a name="line.314"></a>
@@ -329,972 +329,989 @@
 <span class="sourceLineNo">321</span><a name="line.321"></a>
 <span class="sourceLineNo">322</span>  private void loadProcedures(final ProcedureIterator procIter,<a name="line.322"></a>
 <span class="sourceLineNo">323</span>      final boolean abortOnCorruption) throws IOException {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    // 1. Build the rollback stack<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    int runnablesCount = 0;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    while (procIter.hasNext()) {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      Procedure proc = procIter.next();<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      if (!proc.hasParent() &amp;&amp; !proc.isFinished()) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>        rollbackStack.put(proc.getProcId(), new RootProcedureState());<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      // add the procedure to the map<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      proc.beforeReplay(getEnvironment());<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      procedures.put(proc.getProcId(), proc);<a name="line.333"></a>
-<span class="sourceLineNo">334</span><a name="line.334"></a>
-<span class="sourceLineNo">335</span>      // add the nonce to the map<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      if (proc.getNonceKey() != null) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>        nonceKeysToProcIdsMap.put(proc.getNonceKey(), proc.getProcId());<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>      if (proc.getState() == ProcedureState.RUNNABLE) {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>        runnablesCount++;<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">324</span>    final boolean isDebugEnabled = LOG.isDebugEnabled();<a name="line.324"></a>
+<span class="sourceLineNo">325</span><a name="line.325"></a>
+<span class="sourceLineNo">326</span>    // 1. Build the rollback stack<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    int runnablesCount = 0;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    while (procIter.hasNext()) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      final NonceKey nonceKey;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      final long procId;<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>      if (procIter.isNextCompleted()) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        ProcedureInfo proc = procIter.nextAsProcedureInfo();<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        nonceKey = proc.getNonceKey();<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        procId = proc.getProcId();<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        completed.put(proc.getProcId(), proc);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        if (isDebugEnabled) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>          LOG.debug("The procedure is completed: " + proc);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>        }<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      } else {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        Procedure proc = procIter.nextAsProcedure();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        nonceKey = proc.getNonceKey();<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        procId = proc.getProcId();<a name="line.343"></a>
 <span class="sourceLineNo">344</span><a name="line.344"></a>
-<span class="sourceLineNo">345</span>    // 2. Initialize the stacks<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    ArrayList&lt;Procedure&gt; runnableList = new ArrayList(runnablesCount);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    HashSet&lt;Procedure&gt; waitingSet = null;<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    procIter.reset();<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    while (procIter.hasNext()) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      Procedure proc = procIter.next();<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      if (LOG.isDebugEnabled()) {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>        LOG.debug(String.format("Loading procedure state=%s isFailed=%s: %s",<a name="line.352"></a>
-<span class="sourceLineNo">353</span>                    proc.getState(), proc.hasException(), proc));<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      }<a name="line.354"></a>
-<span class="sourceLineNo">355</span><a name="line.355"></a>
-<span class="sourceLineNo">356</span>      Long rootProcId = getRootProcedureId(proc);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      if (rootProcId == null) {<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        // The 'proc' was ready to run but the root procedure was rolledback?<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        runnables.addBack(proc);<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        continue;<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>      if (!proc.hasParent() &amp;&amp; proc.isFinished()) {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>        if (LOG.isDebugEnabled()) {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>          LOG.debug(String.format("The procedure is completed state=%s isFailed=%s",<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    proc.getState(), proc.hasException()));<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>        assert !rollbackStack.containsKey(proc.getProcId());<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        procedures.remove(proc.getProcId());<a name="line.369"></a>
-<span class="sourceLineNo">370</span>        completed.put(proc.getProcId(), Procedure.createProcedureInfo(proc, proc.getNonceKey()));<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">345</span>        if (!proc.hasParent()) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>          assert !proc.isFinished() : "unexpected finished procedure";<a name="line.346"></a>
+<span class="sourceLineNo">347</span>          rollbackStack.put(proc.getProcId(), new RootProcedureState());<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>        // add the procedure to the map<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        proc.beforeReplay(getEnvironment());<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        procedures.put(proc.getProcId(), proc);<a name="line.352"></a>
+<span class="sourceLineNo">353</span><a name="line.353"></a>
+<span class="sourceLineNo">354</span>        if (proc.getState() == ProcedureState.RUNNABLE) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          runnablesCount++;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>      // add the nonce to the map<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      if (nonceKey != null) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>        nonceKeysToProcIdsMap.put(nonceKey, procId);<a name="line.361"></a>
+<span class="sourceLineNo">362</span>      }<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>    // 2. Initialize the stacks<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    ArrayList&lt;Procedure&gt; runnableList = new ArrayList(runnablesCount);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    HashSet&lt;Procedure&gt; waitingSet = null;<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    procIter.reset();<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    while (procIter.hasNext()) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>      if (procIter.isNextCompleted()) {<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        procIter.skipNext();<a name="line.371"></a>
 <span class="sourceLineNo">372</span>        continue;<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>      if (proc.hasParent() &amp;&amp; !proc.isFinished()) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>        Procedure parent = procedures.get(proc.getParentProcId());<a name="line.376"></a>
-<span class="sourceLineNo">377</span>        // corrupted procedures are handled later at step 3<a name="line.377"></a>
-<span class="sourceLineNo">378</span>        if (parent != null) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>          parent.incChildrenLatch();<a name="line.379"></a>
-<span class="sourceLineNo">380</span>        }<a name="line.380"></a>
+<span class="sourceLineNo">375</span>      Procedure proc = procIter.nextAsProcedure();<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      assert !(proc.isFinished() &amp;&amp; !proc.hasParent()) : "unexpected completed proc=" + proc;<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>      if (isDebugEnabled) {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        LOG.debug(String.format("Loading procedure state=%s isFailed=%s: %s",<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                    proc.getState(), proc.hasException(), proc));<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>      RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      procStack.loadStack(proc);<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>      switch (proc.getState()) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>        case RUNNABLE:<a name="line.387"></a>
-<span class="sourceLineNo">388</span>          runnableList.add(proc);<a name="line.388"></a>
-<span class="sourceLineNo">389</span>          break;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        case WAITING_TIMEOUT:<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          if (waitingSet == null) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>            waitingSet = new HashSet&lt;Procedure&gt;();<a name="line.392"></a>
-<span class="sourceLineNo">393</span>          }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>          waitingSet.add(proc);<a name="line.394"></a>
-<span class="sourceLineNo">395</span>          break;<a name="line.395"></a>
-<span class="sourceLineNo">396</span>        case FINISHED:<a name="line.396"></a>
-<span class="sourceLineNo">397</span>          if (proc.hasException()) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>            // add the proc to the runnables to perform the rollback<a name="line.398"></a>
-<span class="sourceLineNo">399</span>            runnables.addBack(proc);<a name="line.399"></a>
-<span class="sourceLineNo">400</span>            break;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          }<a name="line.401"></a>
-<span class="sourceLineNo">402</span>        case ROLLEDBACK:<a name="line.402"></a>
-<span class="sourceLineNo">403</span>        case INITIALIZING:<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          String msg = "Unexpected " + proc.getState() + " state for " + proc;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          LOG.error(msg);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          throw new UnsupportedOperationException(msg);<a name="line.406"></a>
-<span class="sourceLineNo">407</span>        default:<a name="line.407"></a>
-<span class="sourceLineNo">408</span>          break;<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    }<a name="line.410"></a>
-<span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>    // 3. Validate the stacks<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    int corruptedCount = 0;<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    Iterator&lt;Map.Entry&lt;Long, RootProcedureState&gt;&gt; itStack = rollbackStack.entrySet().iterator();<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    while (itStack.hasNext()) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      Map.Entry&lt;Long, RootProcedureState&gt; entry = itStack.next();<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      RootProcedureState procStack = entry.getValue();<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      if (procStack.isValid()) continue;<a name="line.418"></a>
-<span class="sourceLineNo">419</span><a name="line.419"></a>
-<span class="sourceLineNo">420</span>      for (Procedure proc: procStack.getSubprocedures()) {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>        LOG.error("corrupted procedure: " + proc);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        procedures.remove(proc.getProcId());<a name="line.422"></a>
-<span class="sourceLineNo">423</span>        runnableList.remove(proc);<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        if (waitingSet != null) waitingSet.remove(proc);<a name="line.424"></a>
-<span class="sourceLineNo">425</span>        corruptedCount++;<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      itStack.remove();<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>    if (abortOnCorruption &amp;&amp; corruptedCount &gt; 0) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      throw new IOException("found " + corruptedCount + " procedures on replay");<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
-<span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span>    // 4. Push the runnables<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    if (!runnableList.isEmpty()) {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // TODO: See ProcedureWALFormatReader#hasFastStartSupport<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      // some procedure may be started way before this stuff.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (int i = runnableList.size() - 1; i &gt;= 0; --i) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        Procedure proc = runnableList.get(i);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        if (!proc.hasParent()) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          sendProcedureLoadedNotification(proc.getProcId());<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (proc.wasExecuted()) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          runnables.addFront(proc);<a name="line.444"></a>
-<span class="sourceLineNo">445</span>        } else {<a name="line.445"></a>
-<span class="sourceLineNo">446</span>          // if it was not in execution, it can wait.<a name="line.446"></a>
-<span class="sourceLineNo">447</span>          runnables.addBack(proc);<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>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  /**<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * Start the procedure executor.<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * It calls ProcedureStore.recoverLease() and ProcedureStore.load() to<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * recover the lease, and ensure a single executor, and start the procedure<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * replay to resume and recover the previous pending and in-progress perocedures.<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   *<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   * @param numThreads number of threads available for procedure execution.<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   * @param abortOnCorruption true if you want to abort your service in case<a name="line.460"></a>
-<span class="sourceLineNo">461</span>   *          a corrupted procedure is found on replay. otherwise false.<a name="line.461"></a>
-<span class="sourceLineNo">462</span>   */<a name="line.462"></a>
-<span class="sourceLineNo">463</span>  public void start(int numThreads, boolean abortOnCorruption) throws IOException {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    if (running.getAndSet(true)) {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      LOG.warn("Already running");<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      return;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
-<span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>    // We have numThreads executor + one timer thread used for timing out<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    // procedures and triggering periodic procedures.<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    threads = new Thread[numThreads + 1];<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    LOG.info("Starting procedure executor threads=" + threads.length);<a name="line.472"></a>
-<span class="sourceLineNo">473</span><a name="line.473"></a>
-<span class="sourceLineNo">474</span>    // Initialize procedures executor<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    for (int i = 0; i &lt; numThreads; ++i) {<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      threads[i] = new Thread("ProcedureExecutor-" + i) {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>        @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span>        public void run() {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>          execLoop();<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        }<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      };<a name="line.481"></a>
+<span class="sourceLineNo">383</span>      Long rootProcId = getRootProcedureId(proc);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      if (rootProcId == null) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        // The 'proc' was ready to run but the root procedure was rolledback?<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        runnables.addBack(proc);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        continue;<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>      if (proc.hasParent() &amp;&amp; !proc.isFinished()) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        Procedure parent = procedures.get(proc.getParentProcId());<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        // corrupted procedures are handled later at step 3<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        if (parent != null) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>          parent.incChildrenLatch();<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>      RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.398"></a>
+<span class="sourceLineNo">399</span>      procStack.loadStack(proc);<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>      switch (proc.getState()) {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        case RUNNABLE:<a name="line.402"></a>
+<span class="sourceLineNo">403</span>          runnableList.add(proc);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>          break;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        case WAITING_TIMEOUT:<a name="line.405"></a>
+<span class="sourceLineNo">406</span>          if (waitingSet == null) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>            waitingSet = new HashSet&lt;Procedure&gt;();<a name="line.407"></a>
+<span class="sourceLineNo">408</span>          }<a name="line.408"></a>
+<span class="sourceLineNo">409</span>          waitingSet.add(proc);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>          break;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        case FINISHED:<a name="line.411"></a>
+<span class="sourceLineNo">412</span>          if (proc.hasException()) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>            // add the proc to the runnables to perform the rollback<a name="line.413"></a>
+<span class="sourceLineNo">414</span>            runnables.addBack(proc);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>            break;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>          }<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        case ROLLEDBACK:<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        case INITIALIZING:<a name="line.418"></a>
+<span class="sourceLineNo">419</span>          String msg = "Unexpected " + proc.getState() + " state for " + proc;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>          LOG.error(msg);<a name="line.420"></a>
+<span class="sourceLineNo">421</span>          throw new UnsupportedOperationException(msg);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        default:<a name="line.422"></a>
+<span class="sourceLineNo">423</span>          break;<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      }<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    }<a name="line.425"></a>
+<span class="sourceLineNo">426</span><a name="line.426"></a>
+<span class="sourceLineNo">427</span>    // 3. Validate the stacks<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    int corruptedCount = 0;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    Iterator&lt;Map.Entry&lt;Long, RootProcedureState&gt;&gt; itStack = rollbackStack.entrySet().iterator();<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    while (itStack.hasNext()) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      Map.Entry&lt;Long, RootProcedureState&gt; entry = itStack.next();<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      RootProcedureState procStack = entry.getValue();<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      if (procStack.isValid()) continue;<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>      for (Procedure proc: procStack.getSubprocedures()) {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        LOG.error("corrupted procedure: " + proc);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        procedures.remove(proc.getProcId());<a name="line.437"></a>
+<span class="sourceLineNo">438</span>        runnableList.remove(proc);<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        if (waitingSet != null) waitingSet.remove(proc);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        corruptedCount++;<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      }<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      itStack.remove();<a name="line.442"></a>
+<span class="sourceLineNo">443</span>    }<a name="line.443"></a>
+<span class="sourceLineNo">444</span><a name="line.444"></a>
+<span class="sourceLineNo">445</span>    if (abortOnCorruption &amp;&amp; corruptedCount &gt; 0) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      throw new IOException("found " + corruptedCount + " procedures on replay");<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>    // 4. Push the runnables<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    if (!runnableList.isEmpty()) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      // TODO: See ProcedureWALFormatReader#hasFastStartSupport<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      // some procedure may be started way before this stuff.<a name="line.452"></a>
+<span class="sourceLineNo">453</span>      for (int i = runnableList.size() - 1; i &gt;= 0; --i) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        Procedure proc = runnableList.get(i);<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        if (!proc.hasParent()) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>          sendProcedureLoadedNotification(proc.getProcId());<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        }<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        if (proc.wasExecuted()) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>          runnables.addFront(proc);<a name="line.459"></a>
+<span class="sourceLineNo">460</span>        } else {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>          // if it was not in execution, it can wait.<a name="line.461"></a>
+<span class="sourceLineNo">462</span>          runnables.addBack(proc);<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        }<a name="line.463"></a>
+<span class="sourceLineNo">464</span>      }<a name="line.464"></a>
+<span class="sourceLineNo">465</span>    }<a name="line.465"></a>
+<span class="sourceLineNo">466</span>  }<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>  /**<a name="line.468"></a>
+<span class="sourceLineNo">469</span>   * Start the procedure executor.<a name="line.469"></a>
+<span class="sourceLineNo">470</span>   * It calls ProcedureStore.recoverLease() and ProcedureStore.load() to<a name="line.470"></a>
+<span class="sourceLineNo">471</span>   * recover the lease, and ensure a single executor, and start the procedure<a name="line.471"></a>
+<span class="sourceLineNo">472</span>   * replay to resume and recover the previous pending and in-progress perocedures.<a name="line.472"></a>
+<span class="sourceLineNo">473</span>   *<a name="line.473"></a>
+<span class="sourceLineNo">474</span>   * @param numThreads number of threads available for procedure execution.<a name="line.474"></a>
+<span class="sourceLineNo">475</span>   * @param abortOnCorruption true if you want to abort your service in case<a name="line.475"></a>
+<span class="sourceLineNo">476</span>   *          a corrupted procedure is found on replay. otherwise false.<a name="line.476"></a>
+<span class="sourceLineNo">477</span>   */<a name="line.477"></a>
+<span class="sourceLineNo">478</span>  public void start(int numThreads, boolean abortOnCorruption) throws IOException {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>    if (running.getAndSet(true)) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>      LOG.warn("Already running");<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      return;<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>    // Initialize procedures timeout handler (this is the +1 thread)<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    threads[numThreads] = new Thread("ProcedureExecutorTimeoutThread") {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      @Override<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      public void run() {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>        timeoutLoop();<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      }<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    };<a name="line.490"></a>
-<span class="sourceLineNo">491</span><a name="line.491"></a>
-<span class="sourceLineNo">492</span>    // Acquire the store lease.<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    store.recoverLease();<a name="line.493"></a>
-<span class="sourceLineNo">494</span><a name="line.494"></a>
-<span class="sourceLineNo">495</span>    // TODO: Split in two steps.<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    // TODO: Handle corrupted procedures (currently just a warn)<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    // The first one will make sure that we have the latest id,<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    // so we can start the threads and accept new procedures.<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    // The second step will do the actual load of old procedures.<a name="line.499"></a>
-<span class="sourceLineNo">500</span>    load(abortOnCorruption);<a name="line.500"></a>
-<span class="sourceLineNo">501</span><a name="line.501"></a>
-<span class="sourceLineNo">502</span>    // Start the executors. Here we must have the lastProcId set.<a name="line.502"></a>
-<span class="sourceLineNo">503</span>    for (int i = 0; i &lt; threads.length; ++i) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      threads[i].start();<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    }<a name="line.505"></a>
+<span class="sourceLineNo">484</span>    // We have numThreads executor + one timer thread used for timing out<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    // procedures and triggering periodic procedures.<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    threads = new Thread[numThreads + 1];<a name="line.486"></a>
+<span class="sourceLineNo">487</span>    LOG.info("Starting procedure executor threads=" + threads.length);<a name="line.487"></a>
+<span class="sourceLineNo">488</span><a name="line.488"></a>
+<span class="sourceLineNo">489</span>    // Initialize procedures executor<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    for (int i = 0; i &lt; numThreads; ++i) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>      threads[i] = new Thread("ProcedureExecutor-" + i) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        public void run() {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>          execLoop();<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        }<a name="line.495"></a>
+<span class="sourceLineNo">496</span>      };<a name="line.496"></a>
+<span class="sourceLineNo">497</span>    }<a name="line.497"></a>
+<span class="sourceLineNo">498</span><a name="line.498"></a>
+<span class="sourceLineNo">499</span>    // Initialize procedures timeout handler (this is the +1 thread)<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    threads[numThreads] = new Thread("ProcedureExecutorTimeoutThread") {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>      @Override<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      public void run() {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>        timeoutLoop();<a name="line.503"></a>
+<span class="sourceLineNo">504</span>      }<a name="line.504"></a>
+<span class="sourceLineNo">505</span>    };<a name="line.505"></a>
 <span class="sourceLineNo">506</span><a name="line.506"></a>
-<span class="sourceLineNo">507</span>    // Add completed cleaner<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    waitingTimeout.add(<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      new CompletedProcedureCleaner(conf, store, completed, nonceKeysToProcIdsMap));<a name="line.509"></a>
-<span class="sourceLineNo">510</span>  }<a name="line.510"></a>
-<span class="sourceLineNo">511</span><a name="line.511"></a>
-<span class="sourceLineNo">512</span>  public void stop() {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    if (!running.getAndSet(false)) {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      return;<a name="line.514"></a>
-<span class="sourceLineNo">515</span>    }<a name="line.515"></a>
+<span class="sourceLineNo">507</span>    // Acquire the store lease.<a name="line.507"></a>
+<span class="sourceLineNo">508</span>    store.recoverLease();<a name="line.508"></a>
+<span class="sourceLineNo">509</span><a name="line.509"></a>
+<span class="sourceLineNo">510</span>    // TODO: Split in two steps.<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    // TODO: Handle corrupted procedures (currently just a warn)<a name="line.511"></a>
+<span class="sourceLineNo">512</span>    // The first one will make sure that we have the latest id,<a name="line.512"></a>
+<span class="sourceLineNo">513</span>    // so we can start the threads and accept new procedures.<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    // The second step will do the actual load of old procedures.<a name="line.514"></a>
+<span class="sourceLineNo">515</span>    load(abortOnCorruption);<a name="line.515"></a>
 <span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>    LOG.info("Stopping the procedure executor");<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    runnables.signalAll();<a name="line.518"></a>
-<span class="sourceLineNo">519</span>    waitingTimeout.signalAll();<a name="line.519"></a>
-<span class="sourceLineNo">520</span>  }<a name="line.520"></a>
+<span class="sourceLineNo">517</span>    // Start the executors. Here we must have the lastProcId set.<a name="line.517"></a>
+<span class="sourceLineNo">518</span>    for (int i = 0; i &lt; threads.length; ++i) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>      threads[i].start();<a name="line.519"></a>
+<span class="sourceLineNo">520</span>    }<a name="line.520"></a>
 <span class="sourceLineNo">521</span><a name="line.521"></a>
-<span class="sourceLineNo">522</span>  public void join() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    boolean interrupted = false;<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>    for (int i = 0; i &lt; threads.length; ++i) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      try {<a name="line.526"></a>
-<span class="sourceLineNo">527</span>        threads[i].join();<a name="line.527"></a>
-<span class="sourceLineNo">528</span>      } catch (InterruptedException ex) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        interrupted = true;<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><a name="line.532"></a>
-<span class="sourceLineNo">533</span>    if (interrupted) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      Thread.currentThread().interrupt();<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
+<span class="sourceLineNo">522</span>    // Add completed cleaner<a name="line.522"></a>
+<span class="sourceLineNo">523</span>    waitingTimeout.add(<a name="line.523"></a>
+<span class="sourceLineNo">524</span>      new CompletedProcedureCleaner(conf, store, completed, nonceKeysToProcIdsMap));<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 stop() {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>    if (!running.getAndSet(false)) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>      return;<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>    LOG.info("Stopping the procedure executor");<a name="line.532"></a>
+<span class="sourceLineNo">533</span>    runnables.signalAll();<a name="line.533"></a>
+<span class="sourceLineNo">534</span>    waitingTimeout.signalAll();<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>    completed.clear();<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    rollbackStack.clear();<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    procedures.clear();<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    nonceKeysToProcIdsMap.clear();<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    waitingTimeout.clear();<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    runnables.clear();<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    lastProcId.set(-1);<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>  public boolean isRunning() {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    return running.get();<a name="line.547"></a>
-<span class="sourceLineNo">548</span>  }<a name="line.548"></a>
-<span class="sourceLineNo">549</span><a name="line.549"></a>
-<span class="sourceLineNo">550</span>  /**<a name="line.550"></a>
-<span class="sourceLineNo">551</span>   * @return the number of execution threads.<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   */<a name="line.552"></a>
-<span class="sourceLineNo">553</span>  public int getNumThreads() {<a name="line.553"></a>
-<span class="sourceLineNo">554</span>    return threads == null ? 0 : (threads.length - 1);<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>  public int getActiveExecutorCount() {<a name="line.557"></a>
-<span class="sourceLineNo">558</span>    return activeExecutorCount.get();<a name="line.558"></a>
+<span class="sourceLineNo">537</span>  public void join() {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    boolean interrupted = false;<a name="line.538"></a>
+<span class="sourceLineNo">539</span><a name="line.539"></a>
+<span class="sourceLineNo">540</span>    for (int i = 0; i &lt; threads.length; ++i) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>      try {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>        threads[i].join();<a name="line.542"></a>
+<span class="sourceLineNo">543</span>      } catch (InterruptedException ex) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        interrupted = true;<a name="line.544"></a>
+<span class="sourceLineNo">545</span>      }<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    }<a name="line.546"></a>
+<span class="sourceLineNo">547</span><a name="line.547"></a>
+<span class="sourceLineNo">548</span>    if (interrupted) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      Thread.currentThread().interrupt();<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>    completed.clear();<a name="line.552"></a>
+<span class="sourceLineNo">553</span>    rollbackStack.clear();<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    procedures.clear();<a name="line.554"></a>
+<span class="sourceLineNo">555</span>    nonceKeysToProcIdsMap.clear();<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    waitingTimeout.clear();<a name="line.556"></a>
+<span class="sourceLineNo">557</span>    runnables.clear();<a name="line.557"></a>
+<span class="sourceLineNo">558</span>    lastProcId.set(-1);<a name="line.558"></a>
 <span class="sourceLineNo">559</span>  }<a name="line.559"></a>
 <span class="sourceLineNo">560</span><a name="line.560"></a>
-<span class="sourceLineNo">561</span>  public TEnvironment getEnvironment() {<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    return this.environment;<a name="line.562"></a>
+<span class="sourceLineNo">561</span>  public boolean isRunning() {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    return running.get();<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>  public ProcedureStore getStore() {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    return this.store;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>  }<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    this.listeners.add(listener);<a name="line.570"></a>
-<span class="sourceLineNo">571</span>  }<a name="line.571"></a>
-<span class="sourceLineNo">572</span><a name="line.572"></a>
-<span class="sourceLineNo">573</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    return this.listeners.remove(listener);<a name="line.574"></a>
-<span class="sourceLineNo">575</span>  }<a name="line.575"></a>
-<span class="sourceLineNo">576</span><a name="line.576"></a>
-<span class="sourceLineNo">577</span>  /**<a name="line.577"></a>
-<span class="sourceLineNo">578</span>   * List procedures.<a name="line.578"></a>
-<span class="sourceLineNo">579</span>   * @return the procedures in a list<a name="line.579"></a>
-<span class="sourceLineNo">580</span>   */<a name="line.580"></a>
-<span class="sourceLineNo">581</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    List&lt;ProcedureInfo&gt; procedureLists =<a name="line.582"></a>
-<span class="sourceLineNo">583</span>        new ArrayList&lt;ProcedureInfo&gt;(procedures.size() + completed.size());<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    for (java.util.Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      procedureLists.add(Procedure.createProcedureInfo(p.getValue(), null));<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    for (java.util.Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.588"></a>
-<span class="sourceLineNo">589</span>      // it could complete after we walk through procedures list and insert into<a name="line.589"></a>
-<span class="sourceLineNo">590</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      procedureLists.add(e.getValue());<a name="line.592"></a>
-<span class="sourceLineNo">593</span>    }<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    return procedureLists;<a name="line.594"></a>
-<span class="sourceLineNo">595</span>  }<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>  /**<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * Add a new root-procedure to the executor.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * @param proc the new procedure to execute.<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   */<a name="line.601"></a>
-<span class="sourceLineNo">602</span>  public long submitProcedure(final Procedure proc) {<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    return submitProcedure(proc, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.603"></a>
-<span class="sourceLineNo">604</span>  }<a name="line.604"></a>
-<span class="sourceLineNo">605</span><a name="line.605"></a>
-<span class="sourceLineNo">606</span>  /**<a name="line.606"></a>
-<span class="sourceLineNo">607</span>   * Add a new root-procedure to the executor.<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   * @param proc the new procedure to execute.<a name="line.608"></a>
-<span class="sourceLineNo">609</span>   * @param nonceGroup<a name="line.609"></a>
-<span class="sourceLineNo">610</span>   * @param nonce<a name="line.610"></a>
-<span class="sourceLineNo">611</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.611"></a>
-<span class="sourceLineNo">612</span>   */<a name="line.612"></a>
-<span class="sourceLineNo">613</span>  public long submitProcedure(<a name="line.613"></a>
-<span class="sourceLineNo">614</span>      final Procedure proc,<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      final long nonceGroup,<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      final long nonce) {<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    Preconditions.checkArgument(isRunning());<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    Preconditions.checkArgument(!proc.hasParent());<a name="line.620"></a>
-<span class="sourceLineNo">621</span><a name="line.621"></a>
-<span class="sourceLineNo">622</span>    Long currentProcId;<a name="line.622"></a>
-<span class="sourceLineNo">623</span><a name="line.623"></a>
-<span class="sourceLineNo">624</span>    // The following part of the code has to be synchronized to prevent multiple request<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    // with the same nonce to execute at the same time.<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    synchronized (this) {<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      // Check whether the proc exists.  If exist, just return the proc id.<a name="line.627"></a>
-<span class="sourceLineNo">628</span>      // This is to prevent the same proc to submit multiple times (it could happen<a name="line.628"></a>
-<span class="sourceLineNo">629</span>      // when client could not talk to server and resubmit the same request).<a name="line.629"></a>
-<span class="sourceLineNo">630</span>      NonceKey noncekey = null;<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      if (nonce != HConstants.NO_NONCE) {<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        noncekey = new NonceKey(nonceGroup, nonce);<a name="line.632"></a>
-<span class="sourceLineNo">633</span>        currentProcId = nonceKeysToProcIdsMap.get(noncekey);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>        if (currentProcId != null) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>          // Found the proc<a name="line.635"></a>
-<span class="sourceLineNo">636</span>          return currentProcId;<a name="line.636"></a>
-<span class="sourceLineNo">637</span>        }<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      }<a name="line.638"></a>
-<span class="sourceLineNo">639</span><a name="line.639"></a>
-<span class="sourceLineNo">640</span>      // Initialize the Procedure ID<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      currentProcId = nextProcId();<a name="line.641"></a>
-<span class="sourceLineNo">642</span>      proc.setProcId(currentProcId);<a name="line.642"></a>
-<span class="sourceLineNo">643</span><a name="line.643"></a>
-<span class="sourceLineNo">644</span>      // This is new procedure. Set the noncekey and insert into the map.<a name="line.644"></a>
-<span class="sourceLineNo">645</span>      if (noncekey != null) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>        proc.setNonceKey(noncekey);<a name="line.646"></a>
-<span class="sourceLineNo">647</span>        nonceKeysToProcIdsMap.put(noncekey, currentProcId);<a name="line.647"></a>
-<span class="sourceLineNo">648</span>      }<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    } // end of synchronized (this)<a name="line.649"></a>
-<span class="sourceLineNo">650</span><a name="line.650"></a>
-<span class="sourceLineNo">651</span>    // Commit the transaction<a name="line.651"></a>
-<span class="sourceLineNo">652</span>    store.insert(proc, null);<a name="line.652"></a>
-<span class="sourceLineNo">653</span>    if (LOG.isDebugEnabled()) {<a name="line.653"></a>
-<span class="sourceLineNo">654</span>      LOG.debug("Procedure " + proc + " added to the store.");<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    }<a name="line.655"></a>
-<span class="sourceLineNo">656</span><a name="line.656"></a>
-<span class="sourceLineNo">657</span>    // Create the rollback stack for the procedure<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    RootProcedureState stack = new RootProcedureState();<a name="line.658"></a>
-<span class="sourceLineNo">659</span>    rollbackStack.put(currentProcId, stack);<a name="line.659"></a>
-<span class="sourceLineNo">660</span><a name="line.660"></a>
-<span class="sourceLineNo">661</span>    // Submit the new subprocedures<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    assert !procedures.containsKey(currentProcId);<a name="line.662"></a>
-<span class="sourceLineNo">663</span>    procedures.put(currentProcId, proc);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    sendProcedureAddedNotification(currentProcId);<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    runnables.addBack(proc);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    return currentProcId;<a name="line.666"></a>
-<span class="sourceLineNo">667</span>  }<a name="line.667"></a>
-<span class="sourceLineNo">668</span><a name="line.668"></a>
-<span class="sourceLineNo">669</span>  public ProcedureInfo getResult(final long procId) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    return completed.get(procId);<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>  /**<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   * Return true if the procedure is finished.<a name="line.674"></a>
-<span class="sourceLineNo">675</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.675"></a>
-<span class="sourceLineNo">676</span>   * Use getResult() to check the state or get the result data.<a name="line.676"></a>
-<span class="sourceLineNo">677</span>   * @param procId the ID of the procedure to check<a name="line.677"></a>
-<span class="sourceLineNo">678</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>   */<a name="line.679"></a>
-<span class="sourceLineNo">680</span>  public boolean isFinished(final long procId) {<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    return completed.containsKey(procId);<a name="line.681"></a>
+<span class="sourceLineNo">565</span>  /**<a name="line.565"></a>
+<span class="sourceLineNo">566</span>   * @return the number of execution threads.<a name="line.566"></a>
+<span class="sourceLineNo">567</span>   */<a name="line.567"></a>
+<span class="sourceLineNo">568</span>  public int getNumThreads() {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>    return threads == null ? 0 : (threads.length - 1);<a name="line.569"></a>
+<span class="sourceLineNo">570</span>  }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>  public int getActiveExecutorCount() {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>    return activeExecutorCount.get();<a name="line.573"></a>
+<span class="sourceLineNo">574</span>  }<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>  public TEnvironment getEnvironment() {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    return this.environment;<a name="line.577"></a>
+<span class="sourceLineNo">578</span>  }<a name="line.578"></a>
+<span class="sourceLineNo">579</span><a name="line.579"></a>
+<span class="sourceLineNo">580</span>  public ProcedureStore getStore() {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>    return this.store;<a name="line.581"></a>
+<span class="sourceLineNo">582</span>  }<a name="line.582"></a>
+<span class="sourceLineNo">583</span><a name="line.583"></a>
+<span class="sourceLineNo">584</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>    this.listeners.add(listener);<a name="line.585"></a>
+<span class="sourceLineNo">586</span>  }<a name="line.586"></a>
+<span class="sourceLineNo">587</span><a name="line.587"></a>
+<span class="sourceLineNo">588</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>    return this.listeners.remove(listener);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>  }<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>  /**<a name="line.592"></a>
+<span class="sourceLineNo">593</span>   * List procedures.<a name="line.593"></a>
+<span class="sourceLineNo">594</span>   * @return the procedures in a list<a name="line.594"></a>
+<span class="sourceLineNo">595</span>   */<a name="line.595"></a>
+<span class="sourceLineNo">596</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>    List&lt;ProcedureInfo&gt; procedureLists =<a name="line.597"></a>
+<span class="sourceLineNo">598</span>        new ArrayList&lt;ProcedureInfo&gt;(procedures.size() + completed.size());<a name="line.598"></a>
+<span class="sourceLineNo">599</span>    for (java.util.Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>      procedureLists.add(Procedure.createProcedureInfo(p.getValue(), null));<a name="line.600"></a>
+<span class="sourceLineNo">601</span>    }<a name="line.601"></a>
+<span class="sourceLineNo">602</span>    for (java.util.Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.602"></a>
+<span class="sourceLineNo">603</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.603"></a>
+<span class="sourceLineNo">604</span>      // it could complete after we walk through procedures list and insert into<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.606"></a>
+<span class="sourceLineNo">607</span>      procedureLists.add(e.getValue());<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>    return procedureLists;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>  }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>  /**<a name="line.612"></a>
+<span class="sourceLineNo">613</span>   * Add a new root-procedure to the executor.<a name="line.613"></a>
+<span class="sourceLineNo">614</span>   * @param proc the new procedure to execute.<a name="line.614"></a>
+<span class="sourceLineNo">615</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.615"></a>
+<span class="sourceLineNo">616</span>   */<a name="line.616"></a>
+<span class="sourceLineNo">617</span>  public long submitProcedure(final Procedure proc) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>    return submitProcedure(proc, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.618"></a>
+<span class="sourceLineNo">619</span>  }<a name="line.619"></a>
+<span class="sourceLineNo">620</span><a name="line.620"></a>
+<span class="sourceLineNo">621</span>  /**<a name="line.621"></a>
+<span class="sourceLineNo">622</span>   * Add a new root-procedure to the executor.<a name="line.622"></a>
+<span class="sourceLineNo">623</span>   * @param proc the new procedure to execute.<a name="line.623"></a>
+<span class="sourceLineNo">624</span>   * @param nonceGroup<a name="line.624"></a>
+<span class="sourceLineNo">625</span>   * @param nonce<a name="line.625"></a>
+<span class="sourceLineNo">626</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.626"></a>
+<span class="sourceLineNo">627</span>   */<a name="line.627"></a>
+<span class="sourceLineNo">628</span>  public long submitProcedure(<a name="line.628"></a>
+<span class="sourceLineNo">629</span>      final Procedure proc,<a name="line.629"></a>
+<span class="sourceLineNo">630</span>      final long nonceGroup,<a name="line.630"></a>
+<span class="sourceLineNo">631</span>      final long nonce) {<a name="line.631"></a>
+<span class="sourceLineNo">632</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.632"></a>
+<span class="sourceLineNo">633</span>    Preconditions.checkArgument(isRunning());<a name="line.633"></a>
+<span class="sourceLineNo">634</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>    Preconditions.checkArgument(!proc.hasParent());<a name="line.635"></a>
+<span class="sourceLineNo">636</span><a name="line.636"></a>
+<span class="sourceLineNo">637</span>    Long currentProcId;<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>    // The following part of the code has to be synchronized to prevent multiple request<a name="line.639"></a>
+<span class="sourceLineNo">640</span>    // with the same nonce to execute at the same time.<a name="line.640"></a>
+<span class="sourceLineNo">641</span>    synchronized (this) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>      // Check whether the proc exists.  If exist, just return the proc id.<a name="line.642"></a>
+<span class="sourceLineNo">643</span>      // This is to prevent the same proc to submit multiple times (it could happen<a name="line.643"></a>
+<span class="sourceLineNo">644</span>      // when client could not talk to server and resubmit the same request).<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      NonceKey noncekey = null;<a name="line.645"></a>
+<span class="sourceLineNo">646</span>      if (nonce != HConstants.NO_NONCE) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>        noncekey = new NonceKey(nonceGroup, nonce);<a name="line.647"></a>
+<span class="sourceLineNo">648</span>        currentProcId = nonceKeysToProcIdsMap.get(noncekey);<a name="line.648"></a>
+<span class="sourceLineNo">649</span>        if (currentProcId != null) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>          // Found the proc<a name="line.650"></a>
+<span class="sourceLineNo">651</span>          return currentProcId;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>        }<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      }<a name="line.653"></a>
+<span class="sourceLineNo">654</span><a name="line.654"></a>
+<span class="sourceLineNo">655</span>      // Initialize the Procedure ID<a name="line.655"></a>
+<span class="sourceLineNo">656</span>      currentProcId = nextProcId();<a name="line.656"></a>
+<span class="sourceLineNo">657</span>      proc.setProcId(currentProcId);<a name="line.657"></a>
+<span class="sourceLineNo">658</span><a name="line.658"></a>
+<span class="sourceLineNo">659</span>      // This is new procedure. Set the noncekey and insert into the map.<a name="line.659"></a>
+<span class="sourceLineNo">660</span>      if (noncekey != null) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>        proc.setNonceKey(noncekey);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>        nonceKeysToProcIdsMap.put(noncekey, currentProcId);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>      }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>    } // end of synchronized (this)<a name="line.664"></a>
+<span class="sourceLineNo">665</span><a name="line.665"></a>
+<span class="sourceLineNo">666</span>    // Commit the transaction<a name="line.666"></a>
+<span class="sourceLineNo">667</span>    store.insert(proc, null);<a name="line.667"></a>
+<span class="sourceLineNo">668</span>    if (LOG.isDebugEnabled()) {<a name="line.668"></a>
+<span class="sourceLineNo">669</span>      LOG.debug("Procedure " + proc + " added to the store.");<a name="line.669"></a>
+<span class="sourceLineNo">670</span>    }<a name="line.670"></a>
+<span class="sourceLineNo">671</span><a name="line.671"></a>
+<span class="sourceLineNo">672</span>    // Create the rollback stack for the procedure<a name="line.672"></a>
+<span class="sourceLineNo">673</span>    RootProcedureState stack = new RootProcedureState();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>    rollbackStack.put(currentProcId, stack);<a name="line.674"></a>
+<span class="sourceLineNo">675</span><a name="line.675"></a>
+<span class="sourceLineNo">676</span>    // Submit the new subprocedures<a name="line.676"></a>
+<span class="sourceLineNo">677</span>    assert !procedures.containsKey(currentProcId);<a name="line.677"></a>
+<span class="sourceLineNo">678</span>    procedures.put(currentProcId, proc);<a name="line.678"></a>
+<span class="sourceLineNo">679</span>    sendProcedureAddedNotification(currentProcId);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>    runnables.addBack(proc);<a name="line.680"></a>
+<span class="sourceLineNo">681</span>    return currentProcId;<a name="line.681"></a>
 <span class="sourceLineNo">682</span>  }<a name="line.682"></a>
 <span class="sourceLineNo">683</span><a name="line.683"></a>
-<span class="sourceLineNo">684</span>  /**<a name="line.684"></a>
-<span class="sourceLineNo">685</span>   * Return true if the procedure is started.<a name="line.685"></a>
-<span class="sourceLineNo">686</span>   * @param procId the ID of the procedure to check<a name="line.686"></a>
-<span class="sourceLineNo">687</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.687"></a>
-<span class="sourceLineNo">688</span>   */<a name="line.688"></a>
-<span class="sourceLineNo">689</span>  public boolean isStarted(final long procId) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>    Procedure proc = procedures.get(procId);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    if (proc == null) {<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      return completed.get(procId) != null;<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    }<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    return proc.wasExecuted();<a name="line.694"></a>
-<span class="sourceLineNo">695</span>  }<a name="line.695"></a>
-<span class="sourceLineNo">696</span><a name="line.696"></a>
-<span class="sourceLineNo">697</span>  /**<a name="line.697"></a>
-<span class="sourceLineNo">698</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.698"></a>
-<span class="sourceLineNo">699</span>   * @param procId the ID of the procedure to remove<a name="line.699"></a>
-<span class="sourceLineNo">700</span>   */<a name="line.700"></a>
-<span class="sourceLineNo">701</span>  public void removeResult(final long procId) {<a name="line.701"></a>
-<span class="sourceLineNo">702</span>    ProcedureInfo result = completed.get(procId);<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    if (result == null) {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.704"></a>
-<span class="sourceLineNo">705</span>      if (LOG.isDebugEnabled()) {<a name="line.705"></a>
-<span class="sourceLineNo">706</span>        LOG.debug("Procedure procId=" + procId + " already removed by the cleaner.");<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      }<a name="line.707"></a>
-<span class="sourceLineNo">708</span>      return;<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    }<a name="line.709"></a>
-<span class="sourceLineNo">710</span><a name="line.710"></a>
-<span class="sourceLineNo">711</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.712"></a>
-<span class="sourceLineNo">713</span>  }<a name="line.713"></a>
-<span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>  /**<a name="line.715"></a>
-<span class="sourceLineNo">716</span>   * Send an abort notification the specified procedure.<a name="line.716"></a>
-<span class="sourceLineNo">717</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.717"></a>
-<span class="sourceLineNo">718</span>   * @param procId the procedure to abort<a name="line.718"></a>
-<span class="sourceLineNo">719</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.719"></a>
-<span class="sourceLineNo">720</span>   */<a name="line.720"></a>
-<span class="sourceLineNo">721</span>  public boolean abort(final long procId) {<a name="line.721"></a>
-<span class="sourceLineNo">722</span>    return abort(procId, true);<a name="line.722"></a>
-<span class="sourceLineNo">723</span>  }<a name="line.723"></a>
-<span class="sourceLineNo">724</span><a name="line.724"></a>
-<span class="sourceLineNo">725</span>  /**<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   * Send an abort notification the specified procedure.<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.727"></a>
-<span class="sourceLineNo">728</span>   * @param procId the procedure to abort<a name="line.728"></a>
-<span class="sourceLineNo">729</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.729"></a>
-<span class="sourceLineNo">730</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.730"></a>
-<span class="sourceLineNo">731</span>   */<a name="line.731"></a>
-<span class="sourceLineNo">732</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    Procedure proc = procedures.get(procId);<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    if (proc != null) {<a name="line.734"></a>
-<span class="sourceLineNo">735</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>        return false;<a name="line.736"></a>
-<span class="sourceLineNo">737</span>      } else {<a name="line.737"></a>
-<span class="sourceLineNo">738</span>        return proc.abort(getEnvironment());<a name="line.738"></a>
-<span class="sourceLineNo">739</span>      }<a name="line.739"></a>
-<span class="sourceLineNo">740</span>    }<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    return false;<a name="line.741"></a>
-<span class="sourceLineNo">742</span>  }<a name="line.742"></a>
-<span class="sourceLineNo">743</span><a name="line.743"></a>
-<span class="sourceLineNo">744</span>  /**<a name="line.744"></a>
-<span class="sourceLineNo">745</span>   * Check if the user is this procedure's owner<a name="line.745"></a>
-<span class="sourceLineNo">746</span>   * @param procId the target procedure<a name="line.746"></a>
-<span class="sourceLineNo">747</span>   * @param user the user<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   * @return true if the user is the owner of the procedure,<a name="line.748"></a>
-<span class="sourceLineNo">749</span>   *   false otherwise or the owner is unknown.<a name="line.749"></a>
-<span class="sourceLineNo">750</span>   */<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.751"></a>
-<span class="sourceLineNo">752</span>    if (user == null) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>      return false;<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    }<a name="line.754"></a>
-<span class="sourceLineNo">755</span><a name="line.755"></a>
-<span class="sourceLineNo">756</span>    Procedure proc = procedures.get(procId);<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    if (proc != null) {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>      return proc.getOwner().equals(user.getShortName());<a name="line.758"></a>
-<span class="sourceLineNo">759</span>    }<a name="line.759"></a>
-<span class="sourceLineNo">760</span>    ProcedureInfo procInfo = completed.get(procId);<a name="line.760"></a>
-<span class="sourceLineNo">761</span>    if (procInfo == null) {<a name="line.761"></a>
-<span class="sourceLineNo">762</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.762"></a>
-<span class="sourceLineNo">763</span>      // At this time, we cannot check the owner of the procedure<a name="line.763"></a>
-<span class="sourceLineNo">764</span>      return false;<a name="line.764"></a>
-<span class="sourceLineNo">765</span>    }<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<a name="line.766"></a>
-<span class="sourceLineNo">767</span>  }<a name="line.767"></a>
-<span class="sourceLineNo">768</span><a name="line.768"></a>
-<span class="sourceLineNo">769</span>  public Map&lt;Long, ProcedureInfo&gt; getResults() {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    return Collections.unmodifiableMap(completed);<a name="line.770"></a>
-<span class="sourceLineNo">771</span>  }<a name="line.771"></a>
-<span class="sourceLineNo">772</span><a name="line.772"></a>
-<span class="sourceLineNo">773</span>  public Procedure getProcedure(final long procId) {<a name="line.773"></a>
-<span class="sourceLineNo">774</span>    return procedures.get(procId);<a name="line.774"></a>
-<span class="sourceLineNo">775</span>  }<a name="line.775"></a>
-<span class="sourceLineNo">776</span><a name="line.776"></a>
-<span class="sourceLineNo">777</span>  protected ProcedureRunnableSet getRunnableSet() {<a name="line.777"></a>
-<span class="sourceLineNo">778</span>    return runnables;<a name="line.778"></a>
-<span class="sourceLineNo">779</span>  }<a name="line.779"></a>
-<span class="sourceLineNo">780</span><a name="line.780"></a>
-<span class="sourceLineNo">781</span>  /**<a name="line.781"></a>
-<span class="sourceLineNo">782</span>   * Execution loop (N threads)<a name="line.782"></a>
-<span class="sourceLineNo">783</span>   * while the executor is in a running state,<a name="line.783"></a>
-<span class="sourceLineNo">784</span>   * fetch a procedure from the runnables queue and start the execution.<a name="line.784"></a>
-<span class="sourceLineNo">785</span>   */<a name="line.785"></a>
-<span class="sourceLineNo">786</span>  private void execLoop() {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>    while (isRunning()) {<a name="line.787"></a>
-<span class="sourceLineNo">788</span>      Procedure proc = runnables.poll();<a name="line.788"></a>
-<span class="sourceLineNo">789</span>      if (proc == null) continue;<a name="line.789"></a>
-<span class="sourceLineNo">790</span><a name="line.790"></a>
-<span class="sourceLineNo">791</span>      try {<a name="line.791"></a>
-<span class="sourceLineNo">792</span>        activeExecutorCount.incrementAndGet();<a name="line.792"></a>
-<span class="sourceLineNo">793</span>        execLoop(proc);<a name="line.793"></a>
-<span class="sourceLineNo">794</span>      } finally {<a name="line.794"></a>
-<span class="sourceLineNo">795</span>        activeExecutorCount.decrementAndGet();<a name="line.795"></a>
-<span class="sourceLineNo">796</span>      }<a name="line.796"></a>
-<span class="sourceLineNo">797</span>    }<a name="line.797"></a>
-<span class="sourceLineNo">798</span>  }<a name="line.798"></a>
-<span class="sourceLineNo">799</span><a name="line.799"></a>
-<span class="sourceLineNo">800</span>  private void execLoop(Procedure proc) {<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    if (LOG.isTraceEnabled()) {<a name="line.801"></a>
-<span class="sourceLineNo">802</span>      LOG.trace("Trying to start the execution of " + proc);<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    }<a name="line.803"></a>
-<span class="sourceLineNo">804</span><a name="line.804"></a>
-<span class="sourceLineNo">805</span>    Long rootProcId = getRootProcedureId(proc);<a name="line.805"></a>
-<span class="sourceLineNo">806</span>    if (rootProcId == null) {<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.807"></a>
-<span class="sourceLineNo">808</span>      executeRollback(proc);<a name="line.808"></a>
-<span class="sourceLineNo">809</span>      return;<a name="line.809"></a>
-<span class="sourceLineNo">810</span>    }<a name="line.810"></a>
-<span class="sourceLineNo">811</span><a name="line.811"></a>
-<span class="sourceLineNo">812</span>    RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.812"></a>
-<span class="sourceLineNo">813</span>    if (procStack == null) return;<a name="line.813"></a>
+<span class="sourceLineNo">684</span>  public ProcedureInfo getResult(final long procId) {<a name="line.684"></a>
+<span class="sourceLineNo">685</span>    return completed.get(procId);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>  }<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>   * Return true if the procedure is finished.<a name="line.689"></a>
+<span class="sourceLineNo">690</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.690"></a>
+<span class="sourceLineNo">691</span>   * Use getResult() to check the state or get the result data.<a name="line.691"></a>
+<span class="sourceLineNo">692</span>   * @param procId the ID of the procedure to check<a name="line.692"></a>
+<span class="sourceLineNo">693</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.693"></a>
+<span class="sourceLineNo">694</span>   */<a name="line.694"></a>
+<span class="sourceLineNo">695</span>  public boolean isFinished(final long procId) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>    return completed.containsKey(procId);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>  }<a name="line.697"></a>
+<span class="sourceLineNo">698</span><a name="line.698"></a>
+<span class="sourceLineNo">699</span>  /**<a name="line.699"></a>
+<span class="sourceLineNo">700</span>   * Return true if the procedure is started.<a name="line.700"></a>
+<span class="sourceLineNo">701</span>   * @param procId the ID of the procedure to check<a name="line.701"></a>
+<span class="sourceLineNo">702</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.702"></a>
+<span class="sourceLineNo">703</span>   */<a name="line.703"></a>
+<span class="sourceLineNo">704</span>  public boolean isStarted(final long procId) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>    Procedure proc = procedures.get(procId);<a name="line.705"></a>
+<span class="sourceLineNo">706</span>    if (proc == null) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>      return completed.get(procId) != null;<a name="line.707"></a>
+<span class="sourceLineNo">708</span>    }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>    return proc.wasExecuted();<a name="line.709"></a>
+<span class="sourceLineNo">710</span>  }<a name="line.710"></a>
+<span class="sourceLineNo">711</span><a name="line.711"></a>
+<span class="sourceLineNo">712</span>  /**<a name="line.712"></a>
+<span class="sourceLineNo">713</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.713"></a>
+<span class="sourceLineNo">714</span>   * @param procId the ID of the procedure to remove<a name="line.714"></a>
+<span class="sourceLineNo">715</span>   */<a name="line.715"></a>
+<span class="sourceLineNo">716</span>  public void removeResult(final long procId) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>    ProcedureInfo result = completed.get(procId);<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    if (result == null) {<a name="line.718"></a>
+<span class="sourceLineNo">719</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.719"></a>
+<span class="sourceLineNo">720</span>      if (LOG.isDebugEnabled()) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>        LOG.debug("Procedure procId=" + procId + " already removed by the cleaner.");<a name="line.721"></a>
+<span class="sourceLineNo">722</span>      }<a name="line.722"></a>
+<span class="sourceLineNo">723</span>      return;<a name="line.723"></a>
+<span class="sourceLineNo">724</span>    }<a name="line.724"></a>
+<span class="sourceLineNo">725</span><a name="line.725"></a>
+<span class="sourceLineNo">726</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.726"></a>
+<span class="sourceLineNo">727</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.727"></a>
+<span class="sourceLineNo">728</span>  }<a name="line.728"></a>
+<span class="sourceLineNo">729</span><a name="line.729"></a>
+<span class="sourceLineNo">730</span>  /**<a name="line.730"></a>
+<span class="sourceLineNo">731</span>   * Send an abort notification the specified procedure.<a name="line.731"></a>
+<span class="sourceLineNo">732</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.732"></a>
+<span class="sourceLineNo">733</span>   * @param procId the procedure to abort<a name="line.733"></a>
+<span class="sourceLineNo">734</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.734"></a>
+<span class="sourceLineNo">735</span>   */<a name="line.735"></a>
+<span class="sourceLineNo">736</span>  public boolean abort(final long procId) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>    return abort(procId, true);<a name="line.737"></a>
+<span class="sourceLineNo">738</span>  }<a name="line.738"></a>
+<span class="sourceLineNo">739</span><a name="line.739"></a>
+<span class="sourceLineNo">740</span>  /**<a name="line.740"></a>
+<span class="sourceLineNo">741</span>   * Send an abort notification the specified procedure.<a name="line.741"></a>
+<span class="sourceLineNo">742</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.742"></a>
+<span class="sourceLineNo">743</span>   * @param procId the procedure to abort<a name="line.743"></a>
+<span class="sourceLineNo">744</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.744"></a>
+<span class="sourceLineNo">745</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.745"></a>
+<span class="sourceLineNo">746</span>   */<a name="line.746"></a>
+<span class="sourceLineNo">747</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>    Procedure proc = procedures.get(procId);<a name="line.748"></a>
+<span class="sourceLineNo">749</span>    if (proc != null) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>        return false;<a name="line.751"></a>
+<span class="sourceLineNo">752</span>      } else {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>        return proc.abort(getEnvironment());<a name="line.753"></a>
+<span class="sourceLineNo">754</span>      }<a name="line.754"></a>
+<span class="sourceLineNo">755</span>    }<a name="line.755"></a>
+<span class="sourceLineNo">756</span>    return false;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>  }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>  /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>   * Check if the user is this procedure's owner<a name="line.760"></a>
+<span class="sourceLineNo">761</span>   * @param procId the target procedure<a name="line.761"></a>
+<span class="sourceLineNo">762</span>   * @param user the user<a name="line.762"></a>
+<span class="sourceLineNo">763</span>   * @return true if the user is the owner of the procedure,<a name="line.763"></a>
+<span class="sourceLineNo">764</span>   *   false otherwise or the owner is unknown.<a name="line.764"></a>
+<span class="sourceLineNo">765</span>   */<a name="line.765"></a>
+<span class="sourceLineNo">766</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>    if (user == null) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>      return false;<a name="line.768"></a>
+<span class="sourceLineNo">769</span>    }<a name="line.769"></a>
+<span class="sourceLineNo">770</span><a name="line.770"></a>
+<span class="sourceLineNo">771</span>    Procedure proc = procedures.get(procId);<a name="line.771"></a>
+<span class="sourceLineNo">772</span>    if (proc != null) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>      return proc.getOwner().equals(user.getShortName());<a name="line.773"></a>
+<span class="sourceLineNo">774</span>    }<a name="line.774"></a>
+<span class="sourceLineNo">775</span>    ProcedureInfo procInfo = completed.get(procId);<a name="line.775"></a>
+<span class="sourceLineNo">776</span>    if (procInfo == null) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.777"></a>
+<span class="sourceLineNo">778</span>      // At this time, we cannot check the owner of the procedure<a name="line.778"></a>
+<span class="sourceLineNo">779</span>      return false;<a name="line.779"></a>
+<span class="sourceLineNo">780</span>    }<a name="line.780"></a>
+<span class="sourceLineNo">781</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<a name="line.781"></a>
+<span class="sourceLineNo">782</span>  }<a name="line.782"></a>
+<span class="

<TRUNCATED>

[14/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html
index 748314e..6dcf0c1 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html
@@ -30,157 +30,173 @@
 <span class="sourceLineNo">022</span><a name="line.22"></a>
 <span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.23"></a>
 <span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.25"></a>
-<span class="sourceLineNo">026</span><a name="line.26"></a>
-<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
-<span class="sourceLineNo">028</span> * The ProcedureStore is used by the executor to persist the state of each procedure execution.<a name="line.28"></a>
-<span class="sourceLineNo">029</span> * This allows to resume the execution of pending/in-progress procedures in case<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * of machine failure or service shutdown.<a name="line.30"></a>
-<span class="sourceLineNo">031</span> */<a name="line.31"></a>
-<span class="sourceLineNo">032</span>@InterfaceAudience.Private<a name="line.32"></a>
-<span class="sourceLineNo">033</span>@InterfaceStability.Evolving<a name="line.33"></a>
-<span class="sourceLineNo">034</span>public interface ProcedureStore {<a name="line.34"></a>
-<span class="sourceLineNo">035</span>  /**<a name="line.35"></a>
-<span class="sourceLineNo">036</span>   * Store listener interface.<a name="line.36"></a>
-<span class="sourceLineNo">037</span>   * The main process should register a listener and respond to the store events.<a name="line.37"></a>
-<span class="sourceLineNo">038</span>   */<a name="line.38"></a>
-<span class="sourceLineNo">039</span>  public interface ProcedureStoreListener {<a name="line.39"></a>
-<span class="sourceLineNo">040</span>    /**<a name="line.40"></a>
-<span class="sourceLineNo">041</span>     * triggered when the store sync is completed.<a name="line.41"></a>
-<span class="sourceLineNo">042</span>     */<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    void postSync();<a name="line.43"></a>
-<span class="sourceLineNo">044</span><a name="line.44"></a>
-<span class="sourceLineNo">045</span>    /**<a name="line.45"></a>
-<span class="sourceLineNo">046</span>     * triggered when the store is not able to write out data.<a name="line.46"></a>
-<span class="sourceLineNo">047</span>     * the main process should abort.<a name="line.47"></a>
-<span class="sourceLineNo">048</span>     */<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    void abortProcess();<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  }<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>  /**<a name="line.52"></a>
-<span class="sourceLineNo">053</span>   * An Iterator over a collection of Procedure<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   */<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  public interface ProcedureIterator {<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    /**<a name="line.56"></a>
-<span class="sourceLineNo">057</span>     * Reset the Iterator by seeking to the beginning of the list.<a name="line.57"></a>
-<span class="sourceLineNo">058</span>     */<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    void reset();<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>    /**<a name="line.61"></a>
-<span class="sourceLineNo">062</span>     * Returns true if the iterator has more elements.<a name="line.62"></a>
-<span class="sourceLineNo">063</span>     * (In other words, returns true if next() would return a Procedure<a name="line.63"></a>
-<span class="sourceLineNo">064</span>     * rather than throwing an exception.)<a name="line.64"></a>
-<span class="sourceLineNo">065</span>     * @return true if the iterator has more procedures<a name="line.65"></a>
-<span class="sourceLineNo">066</span>     */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    boolean hasNext();<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>    /**<a name="line.69"></a>
-<span class="sourceLineNo">070</span>     * Returns the next procedure in the iteration.<a name="line.70"></a>
-<span class="sourceLineNo">071</span>     * @throws IOException if there was an error fetching/deserializing the procedure<a name="line.71"></a>
-<span class="sourceLineNo">072</span>     * @return the next procedure in the iteration.<a name="line.72"></a>
-<span class="sourceLineNo">073</span>     */<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    Procedure next() throws IOException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  /**<a name="line.77"></a>
-<span class="sourceLineNo">078</span>   * Interface passed to the ProcedureStore.load() method to handle the store-load events.<a name="line.78"></a>
-<span class="sourceLineNo">079</span>   */<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  public interface ProcedureLoader {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    /**<a name="line.81"></a>
-<span class="sourceLineNo">082</span>     * Called by ProcedureStore.load() to notify about the maximum proc-id in the store.<a name="line.82"></a>
-<span class="sourceLineNo">083</span>     * @param maxProcId the highest proc-id in the store<a name="line.83"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>/**<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * The ProcedureStore is used by the executor to persist the state of each procedure execution.<a name="line.29"></a>
+<span class="sourceLineNo">030</span> * This allows to resume the execution of pending/in-progress procedures in case<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * of machine failure or service shutdown.<a name="line.31"></a>
+<span class="sourceLineNo">032</span> */<a name="line.32"></a>
+<span class="sourceLineNo">033</span>@InterfaceAudience.Private<a name="line.33"></a>
+<span class="sourceLineNo">034</span>@InterfaceStability.Evolving<a name="line.34"></a>
+<span class="sourceLineNo">035</span>public interface ProcedureStore {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>  /**<a name="line.36"></a>
+<span class="sourceLineNo">037</span>   * Store listener interface.<a name="line.37"></a>
+<span class="sourceLineNo">038</span>   * The main process should register a listener and respond to the store events.<a name="line.38"></a>
+<span class="sourceLineNo">039</span>   */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>  public interface ProcedureStoreListener {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>    /**<a name="line.41"></a>
+<span class="sourceLineNo">042</span>     * triggered when the store sync is completed.<a name="line.42"></a>
+<span class="sourceLineNo">043</span>     */<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    void postSync();<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>    /**<a name="line.46"></a>
+<span class="sourceLineNo">047</span>     * triggered when the store is not able to write out data.<a name="line.47"></a>
+<span class="sourceLineNo">048</span>     * the main process should abort.<a name="line.48"></a>
+<span class="sourceLineNo">049</span>     */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    void abortProcess();<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>  /**<a name="line.53"></a>
+<span class="sourceLineNo">054</span>   * An Iterator over a collection of Procedure<a name="line.54"></a>
+<span class="sourceLineNo">055</span>   */<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  public interface ProcedureIterator {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    /**<a name="line.57"></a>
+<span class="sourceLineNo">058</span>     * Reset the Iterator by seeking to the beginning of the list.<a name="line.58"></a>
+<span class="sourceLineNo">059</span>     */<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    void reset();<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>     * Returns true if the iterator has more elements.<a name="line.63"></a>
+<span class="sourceLineNo">064</span>     * (In other words, returns true if next() would return a Procedure<a name="line.64"></a>
+<span class="sourceLineNo">065</span>     * rather than throwing an exception.)<a name="line.65"></a>
+<span class="sourceLineNo">066</span>     * @return true if the iterator has more procedures<a name="line.66"></a>
+<span class="sourceLineNo">067</span>     */<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    boolean hasNext();<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>    /**<a name="line.70"></a>
+<span class="sourceLineNo">071</span>     * @return true if the iterator next element is a completed procedure.<a name="line.71"></a>
+<span class="sourceLineNo">072</span>     */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    boolean isNextCompleted();<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>    /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>     * Skip the next procedure<a name="line.76"></a>
+<span class="sourceLineNo">077</span>     */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    void skipNext();<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>    /**<a name="line.80"></a>
+<span class="sourceLineNo">081</span>     * Returns the next procedure in the iteration.<a name="line.81"></a>
+<span class="sourceLineNo">082</span>     * @throws IOException if there was an error fetching/deserializing the procedure<a name="line.82"></a>
+<span class="sourceLineNo">083</span>     * @return the next procedure in the iteration.<a name="line.83"></a>
 <span class="sourceLineNo">084</span>     */<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    void setMaxProcId(long maxProcId);<a name="line.85"></a>
+<span class="sourceLineNo">085</span>    Procedure nextAsProcedure() throws IOException;<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>     * Called by the ProcedureStore.load() every time a set of procedures are ready to be executed.<a name="line.88"></a>
-<span class="sourceLineNo">089</span>     * The ProcedureIterator passed to the method, has the procedure sorted in replay-order.<a name="line.89"></a>
-<span class="sourceLineNo">090</span>     * @param procIter iterator over the procedures ready to be added to the executor.<a name="line.90"></a>
-<span class="sourceLineNo">091</span>     */<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    void load(ProcedureIterator procIter) throws IOException;<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>     * Called by the ProcedureStore.load() in case we have procedures not-ready to be added to<a name="line.95"></a>
-<span class="sourceLineNo">096</span>     * the executor, which probably means they are corrupted since some information/link is missing.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>     * @param procIter iterator over the procedures not ready to be added to the executor, corrupted<a name="line.97"></a>
-<span class="sourceLineNo">098</span>     */<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    void handleCorrupted(ProcedureIterator procIter) throws IOException;<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>  /**<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * Add the listener to the notification list.<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * @param listener The AssignmentListener to register<a name="line.104"></a>
-<span class="sourceLineNo">105</span>   */<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  void registerListener(ProcedureStoreListener listener);<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>  /**<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * Remove the listener from the notification list.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   * @param listener The AssignmentListener to unregister<a name="line.110"></a>
-<span class="sourceLineNo">111</span>   * @return true if the listner was in the list and it was removed, otherwise false.<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   */<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  boolean unregisterListener(ProcedureStoreListener listener);<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>   * Start/Open the procedure store<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   * @param numThreads<a name="line.117"></a>
-<span class="sourceLineNo">118</span>   */<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  void start(int numThreads) throws IOException;<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>   * Stop/Close the procedure store<a name="line.122"></a>
-<span class="sourceLineNo">123</span>   * @param abort true if the stop is an abort<a name="line.123"></a>
-<span class="sourceLineNo">124</span>   */<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  void stop(boolean abort);<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>   * @return true if the store is running, otherwise false.<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   */<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  boolean isRunning();<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span>  /**<a name="line.132"></a>
-<span class="sourceLineNo">133</span>   * @return the number of threads/slots passed to start()<a name="line.133"></a>
+<span class="sourceLineNo">088</span>     * @return the next procedure in the iteration as ProcedureInfo.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>     */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    ProcedureInfo nextAsProcedureInfo();<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  }<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>  /**<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   * Interface passed to the ProcedureStore.load() method to handle the store-load events.<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   */<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public interface ProcedureLoader {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    /**<a name="line.97"></a>
+<span class="sourceLineNo">098</span>     * Called by ProcedureStore.load() to notify about the maximum proc-id in the store.<a name="line.98"></a>
+<span class="sourceLineNo">099</span>     * @param maxProcId the highest proc-id in the store<a name="line.99"></a>
+<span class="sourceLineNo">100</span>     */<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    void setMaxProcId(long maxProcId);<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>     * Called by the ProcedureStore.load() every time a set of procedures are ready to be executed.<a name="line.104"></a>
+<span class="sourceLineNo">105</span>     * The ProcedureIterator passed to the method, has the procedure sorted in replay-order.<a name="line.105"></a>
+<span class="sourceLineNo">106</span>     * @param procIter iterator over the procedures ready to be added to the executor.<a name="line.106"></a>
+<span class="sourceLineNo">107</span>     */<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    void load(ProcedureIterator procIter) throws IOException;<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>     * Called by the ProcedureStore.load() in case we have procedures not-ready to be added to<a name="line.111"></a>
+<span class="sourceLineNo">112</span>     * the executor, which probably means they are corrupted since some information/link is missing.<a name="line.112"></a>
+<span class="sourceLineNo">113</span>     * @param procIter iterator over the procedures not ready to be added to the executor, corrupted<a name="line.113"></a>
+<span class="sourceLineNo">114</span>     */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    void handleCorrupted(ProcedureIterator procIter) throws IOException;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span>  /**<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   * Add the listener to the notification list.<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   * @param listener The AssignmentListener to register<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   */<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  void registerListener(ProcedureStoreListener listener);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>  /**<a name="line.124"></a>
+<span class="sourceLineNo">125</span>   * Remove the listener from the notification list.<a name="line.125"></a>
+<span class="sourceLineNo">126</span>   * @param listener The AssignmentListener to unregister<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   * @return true if the listner was in the list and it was removed, otherwise false.<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  boolean unregisterListener(ProcedureStoreListener listener);<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>  /**<a name="line.131"></a>
+<span class="sourceLineNo">132</span>   * Start/Open the procedure store<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   * @param numThreads<a name="line.133"></a>
 <span class="sourceLineNo">134</span>   */<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  int getNumThreads();<a name="line.135"></a>
+<span class="sourceLineNo">135</span>  void start(int numThreads) throws IOException;<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>   * Acquire the lease for the procedure store.<a name="line.138"></a>
-<span class="sourceLineNo">139</span>   */<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  void recoverLease() throws IOException;<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span>  /**<a name="line.142"></a>
-<span class="sourceLineNo">143</span>   * Load the Procedures in the store.<a name="line.143"></a>
-<span class="sourceLineNo">144</span>   * @param loader the ProcedureLoader that will handle the store-load events<a name="line.144"></a>
+<span class="sourceLineNo">138</span>   * Stop/Close the procedure store<a name="line.138"></a>
+<span class="sourceLineNo">139</span>   * @param abort true if the stop is an abort<a name="line.139"></a>
+<span class="sourceLineNo">140</span>   */<a name="line.140"></a>
+<span class="sourceLineNo">141</span>  void stop(boolean abort);<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 true if the store is running, otherwise false.<a name="line.144"></a>
 <span class="sourceLineNo">145</span>   */<a name="line.145"></a>
-<span class="sourceLineNo">146</span>  void load(ProcedureLoader loader) throws IOException;<a name="line.146"></a>
+<span class="sourceLineNo">146</span>  boolean isRunning();<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>   * When a procedure is submitted to the executor insert(proc, null) will be called.<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   * 'proc' has a 'RUNNABLE' state and the initial information required to start up.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   *<a name="line.151"></a>
-<span class="sourceLineNo">152</span>   * When a procedure is executed and it returns children insert(proc, subprocs) will be called.<a name="line.152"></a>
-<span class="sourceLineNo">153</span>   * 'proc' has a 'WAITING' state and an update state.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>   * 'subprocs' are the children in 'RUNNABLE' state with the initial information.<a name="line.154"></a>
-<span class="sourceLineNo">155</span>   *<a name="line.155"></a>
-<span class="sourceLineNo">156</span>   * @param proc the procedure to serialize and write to the store.<a name="line.156"></a>
-<span class="sourceLineNo">157</span>   * @param subprocs the newly created child of the proc.<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   */<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  void insert(Procedure proc, Procedure[] subprocs);<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  /**<a name="line.161"></a>
-<span class="sourceLineNo">162</span>   * The specified procedure was executed,<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   * and the new state should be written to the store.<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   * @param proc the procedure to serialize and write to the store.<a name="line.164"></a>
-<span class="sourceLineNo">165</span>   */<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  void update(Procedure proc);<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>   * The specified procId was removed from the executor,<a name="line.169"></a>
-<span class="sourceLineNo">170</span>   * due to completion, abort or failure.<a name="line.170"></a>
-<span class="sourceLineNo">171</span>   * The store implementor should remove all the information about the specified procId.<a name="line.171"></a>
-<span class="sourceLineNo">172</span>   * @param procId the ID of the procedure to remove.<a name="line.172"></a>
-<span class="sourceLineNo">173</span>   */<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  void delete(long procId);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>}<a name="line.175"></a>
+<span class="sourceLineNo">149</span>   * @return the number of threads/slots passed to start()<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>  int getNumThreads();<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>   * Acquire the lease for the procedure store.<a name="line.154"></a>
+<span class="sourceLineNo">155</span>   */<a name="line.155"></a>
+<span class="sourceLineNo">156</span>  void recoverLease() throws IOException;<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span>  /**<a name="line.158"></a>
+<span class="sourceLineNo">159</span>   * Load the Procedures in the store.<a name="line.159"></a>
+<span class="sourceLineNo">160</span>   * @param loader the ProcedureLoader that will handle the store-load events<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   */<a name="line.161"></a>
+<span class="sourceLineNo">162</span>  void load(ProcedureLoader loader) throws IOException;<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>  /**<a name="line.164"></a>
+<span class="sourceLineNo">165</span>   * When a procedure is submitted to the executor insert(proc, null) will be called.<a name="line.165"></a>
+<span class="sourceLineNo">166</span>   * 'proc' has a 'RUNNABLE' state and the initial information required to start up.<a name="line.166"></a>
+<span class="sourceLineNo">167</span>   *<a name="line.167"></a>
+<span class="sourceLineNo">168</span>   * When a procedure is executed and it returns children insert(proc, subprocs) will be called.<a name="line.168"></a>
+<span class="sourceLineNo">169</span>   * 'proc' has a 'WAITING' state and an update state.<a name="line.169"></a>
+<span class="sourceLineNo">170</span>   * 'subprocs' are the children in 'RUNNABLE' state with the initial information.<a name="line.170"></a>
+<span class="sourceLineNo">171</span>   *<a name="line.171"></a>
+<span class="sourceLineNo">172</span>   * @param proc the procedure to serialize and write to the store.<a name="line.172"></a>
+<span class="sourceLineNo">173</span>   * @param subprocs the newly created child of the proc.<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  void insert(Procedure proc, Procedure[] subprocs);<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>   * The specified procedure was executed,<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   * and the new state should be written to the store.<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * @param proc the procedure to serialize and write to the store.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  void update(Procedure proc);<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>   * The specified procId was removed from the executor,<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   * due to completion, abort or failure.<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   * The store implementor should remove all the information about the specified procId.<a name="line.187"></a>
+<span class="sourceLineNo">188</span>   * @param procId the ID of the procedure to remove.<a name="line.188"></a>
+<span class="sourceLineNo">189</span>   */<a name="line.189"></a>
+<span class="sourceLineNo">190</span>  void delete(long procId);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>}<a name="line.191"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html
index 748314e..6dcf0c1 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html
@@ -30,157 +30,173 @@
 <span class="sourceLineNo">022</span><a name="line.22"></a>
 <span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.23"></a>
 <span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.25"></a>
-<span class="sourceLineNo">026</span><a name="line.26"></a>
-<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
-<span class="sourceLineNo">028</span> * The ProcedureStore is used by the executor to persist the state of each procedure execution.<a name="line.28"></a>
-<span class="sourceLineNo">029</span> * This allows to resume the execution of pending/in-progress procedures in case<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * of machine failure or service shutdown.<a name="line.30"></a>
-<span class="sourceLineNo">031</span> */<a name="line.31"></a>
-<span class="sourceLineNo">032</span>@InterfaceAudience.Private<a name="line.32"></a>
-<span class="sourceLineNo">033</span>@InterfaceStability.Evolving<a name="line.33"></a>
-<span class="sourceLineNo">034</span>public interface ProcedureStore {<a name="line.34"></a>
-<span class="sourceLineNo">035</span>  /**<a name="line.35"></a>
-<span class="sourceLineNo">036</span>   * Store listener interface.<a name="line.36"></a>
-<span class="sourceLineNo">037</span>   * The main process should register a listener and respond to the store events.<a name="line.37"></a>
-<span class="sourceLineNo">038</span>   */<a name="line.38"></a>
-<span class="sourceLineNo">039</span>  public interface ProcedureStoreListener {<a name="line.39"></a>
-<span class="sourceLineNo">040</span>    /**<a name="line.40"></a>
-<span class="sourceLineNo">041</span>     * triggered when the store sync is completed.<a name="line.41"></a>
-<span class="sourceLineNo">042</span>     */<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    void postSync();<a name="line.43"></a>
-<span class="sourceLineNo">044</span><a name="line.44"></a>
-<span class="sourceLineNo">045</span>    /**<a name="line.45"></a>
-<span class="sourceLineNo">046</span>     * triggered when the store is not able to write out data.<a name="line.46"></a>
-<span class="sourceLineNo">047</span>     * the main process should abort.<a name="line.47"></a>
-<span class="sourceLineNo">048</span>     */<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    void abortProcess();<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  }<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>  /**<a name="line.52"></a>
-<span class="sourceLineNo">053</span>   * An Iterator over a collection of Procedure<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   */<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  public interface ProcedureIterator {<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    /**<a name="line.56"></a>
-<span class="sourceLineNo">057</span>     * Reset the Iterator by seeking to the beginning of the list.<a name="line.57"></a>
-<span class="sourceLineNo">058</span>     */<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    void reset();<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>    /**<a name="line.61"></a>
-<span class="sourceLineNo">062</span>     * Returns true if the iterator has more elements.<a name="line.62"></a>
-<span class="sourceLineNo">063</span>     * (In other words, returns true if next() would return a Procedure<a name="line.63"></a>
-<span class="sourceLineNo">064</span>     * rather than throwing an exception.)<a name="line.64"></a>
-<span class="sourceLineNo">065</span>     * @return true if the iterator has more procedures<a name="line.65"></a>
-<span class="sourceLineNo">066</span>     */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    boolean hasNext();<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>    /**<a name="line.69"></a>
-<span class="sourceLineNo">070</span>     * Returns the next procedure in the iteration.<a name="line.70"></a>
-<span class="sourceLineNo">071</span>     * @throws IOException if there was an error fetching/deserializing the procedure<a name="line.71"></a>
-<span class="sourceLineNo">072</span>     * @return the next procedure in the iteration.<a name="line.72"></a>
-<span class="sourceLineNo">073</span>     */<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    Procedure next() throws IOException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  /**<a name="line.77"></a>
-<span class="sourceLineNo">078</span>   * Interface passed to the ProcedureStore.load() method to handle the store-load events.<a name="line.78"></a>
-<span class="sourceLineNo">079</span>   */<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  public interface ProcedureLoader {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    /**<a name="line.81"></a>
-<span class="sourceLineNo">082</span>     * Called by ProcedureStore.load() to notify about the maximum proc-id in the store.<a name="line.82"></a>
-<span class="sourceLineNo">083</span>     * @param maxProcId the highest proc-id in the store<a name="line.83"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>/**<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * The ProcedureStore is used by the executor to persist the state of each procedure execution.<a name="line.29"></a>
+<span class="sourceLineNo">030</span> * This allows to resume the execution of pending/in-progress procedures in case<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * of machine failure or service shutdown.<a name="line.31"></a>
+<span class="sourceLineNo">032</span> */<a name="line.32"></a>
+<span class="sourceLineNo">033</span>@InterfaceAudience.Private<a name="line.33"></a>
+<span class="sourceLineNo">034</span>@InterfaceStability.Evolving<a name="line.34"></a>
+<span class="sourceLineNo">035</span>public interface ProcedureStore {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>  /**<a name="line.36"></a>
+<span class="sourceLineNo">037</span>   * Store listener interface.<a name="line.37"></a>
+<span class="sourceLineNo">038</span>   * The main process should register a listener and respond to the store events.<a name="line.38"></a>
+<span class="sourceLineNo">039</span>   */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>  public interface ProcedureStoreListener {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>    /**<a name="line.41"></a>
+<span class="sourceLineNo">042</span>     * triggered when the store sync is completed.<a name="line.42"></a>
+<span class="sourceLineNo">043</span>     */<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    void postSync();<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>    /**<a name="line.46"></a>
+<span class="sourceLineNo">047</span>     * triggered when the store is not able to write out data.<a name="line.47"></a>
+<span class="sourceLineNo">048</span>     * the main process should abort.<a name="line.48"></a>
+<span class="sourceLineNo">049</span>     */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    void abortProcess();<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>  /**<a name="line.53"></a>
+<span class="sourceLineNo">054</span>   * An Iterator over a collection of Procedure<a name="line.54"></a>
+<span class="sourceLineNo">055</span>   */<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  public interface ProcedureIterator {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    /**<a name="line.57"></a>
+<span class="sourceLineNo">058</span>     * Reset the Iterator by seeking to the beginning of the list.<a name="line.58"></a>
+<span class="sourceLineNo">059</span>     */<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    void reset();<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>     * Returns true if the iterator has more elements.<a name="line.63"></a>
+<span class="sourceLineNo">064</span>     * (In other words, returns true if next() would return a Procedure<a name="line.64"></a>
+<span class="sourceLineNo">065</span>     * rather than throwing an exception.)<a name="line.65"></a>
+<span class="sourceLineNo">066</span>     * @return true if the iterator has more procedures<a name="line.66"></a>
+<span class="sourceLineNo">067</span>     */<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    boolean hasNext();<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>    /**<a name="line.70"></a>
+<span class="sourceLineNo">071</span>     * @return true if the iterator next element is a completed procedure.<a name="line.71"></a>
+<span class="sourceLineNo">072</span>     */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    boolean isNextCompleted();<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>    /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>     * Skip the next procedure<a name="line.76"></a>
+<span class="sourceLineNo">077</span>     */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    void skipNext();<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>    /**<a name="line.80"></a>
+<span class="sourceLineNo">081</span>     * Returns the next procedure in the iteration.<a name="line.81"></a>
+<span class="sourceLineNo">082</span>     * @throws IOException if there was an error fetching/deserializing the procedure<a name="line.82"></a>
+<span class="sourceLineNo">083</span>     * @return the next procedure in the iteration.<a name="line.83"></a>
 <span class="sourceLineNo">084</span>     */<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    void setMaxProcId(long maxProcId);<a name="line.85"></a>
+<span class="sourceLineNo">085</span>    Procedure nextAsProcedure() throws IOException;<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>     * Called by the ProcedureStore.load() every time a set of procedures are ready to be executed.<a name="line.88"></a>
-<span class="sourceLineNo">089</span>     * The ProcedureIterator passed to the method, has the procedure sorted in replay-order.<a name="line.89"></a>
-<span class="sourceLineNo">090</span>     * @param procIter iterator over the procedures ready to be added to the executor.<a name="line.90"></a>
-<span class="sourceLineNo">091</span>     */<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    void load(ProcedureIterator procIter) throws IOException;<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>     * Called by the ProcedureStore.load() in case we have procedures not-ready to be added to<a name="line.95"></a>
-<span class="sourceLineNo">096</span>     * the executor, which probably means they are corrupted since some information/link is missing.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>     * @param procIter iterator over the procedures not ready to be added to the executor, corrupted<a name="line.97"></a>
-<span class="sourceLineNo">098</span>     */<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    void handleCorrupted(ProcedureIterator procIter) throws IOException;<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>  /**<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * Add the listener to the notification list.<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * @param listener The AssignmentListener to register<a name="line.104"></a>
-<span class="sourceLineNo">105</span>   */<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  void registerListener(ProcedureStoreListener listener);<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>  /**<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * Remove the listener from the notification list.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   * @param listener The AssignmentListener to unregister<a name="line.110"></a>
-<span class="sourceLineNo">111</span>   * @return true if the listner was in the list and it was removed, otherwise false.<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   */<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  boolean unregisterListener(ProcedureStoreListener listener);<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>   * Start/Open the procedure store<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   * @param numThreads<a name="line.117"></a>
-<span class="sourceLineNo">118</span>   */<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  void start(int numThreads) throws IOException;<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>   * Stop/Close the procedure store<a name="line.122"></a>
-<span class="sourceLineNo">123</span>   * @param abort true if the stop is an abort<a name="line.123"></a>
-<span class="sourceLineNo">124</span>   */<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  void stop(boolean abort);<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>   * @return true if the store is running, otherwise false.<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   */<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  boolean isRunning();<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span>  /**<a name="line.132"></a>
-<span class="sourceLineNo">133</span>   * @return the number of threads/slots passed to start()<a name="line.133"></a>
+<span class="sourceLineNo">088</span>     * @return the next procedure in the iteration as ProcedureInfo.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>     */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    ProcedureInfo nextAsProcedureInfo();<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  }<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>  /**<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   * Interface passed to the ProcedureStore.load() method to handle the store-load events.<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   */<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public interface ProcedureLoader {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    /**<a name="line.97"></a>
+<span class="sourceLineNo">098</span>     * Called by ProcedureStore.load() to notify about the maximum proc-id in the store.<a name="line.98"></a>
+<span class="sourceLineNo">099</span>     * @param maxProcId the highest proc-id in the store<a name="line.99"></a>
+<span class="sourceLineNo">100</span>     */<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    void setMaxProcId(long maxProcId);<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>     * Called by the ProcedureStore.load() every time a set of procedures are ready to be executed.<a name="line.104"></a>
+<span class="sourceLineNo">105</span>     * The ProcedureIterator passed to the method, has the procedure sorted in replay-order.<a name="line.105"></a>
+<span class="sourceLineNo">106</span>     * @param procIter iterator over the procedures ready to be added to the executor.<a name="line.106"></a>
+<span class="sourceLineNo">107</span>     */<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    void load(ProcedureIterator procIter) throws IOException;<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>     * Called by the ProcedureStore.load() in case we have procedures not-ready to be added to<a name="line.111"></a>
+<span class="sourceLineNo">112</span>     * the executor, which probably means they are corrupted since some information/link is missing.<a name="line.112"></a>
+<span class="sourceLineNo">113</span>     * @param procIter iterator over the procedures not ready to be added to the executor, corrupted<a name="line.113"></a>
+<span class="sourceLineNo">114</span>     */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    void handleCorrupted(ProcedureIterator procIter) throws IOException;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span>  /**<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   * Add the listener to the notification list.<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   * @param listener The AssignmentListener to register<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   */<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  void registerListener(ProcedureStoreListener listener);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>  /**<a name="line.124"></a>
+<span class="sourceLineNo">125</span>   * Remove the listener from the notification list.<a name="line.125"></a>
+<span class="sourceLineNo">126</span>   * @param listener The AssignmentListener to unregister<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   * @return true if the listner was in the list and it was removed, otherwise false.<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  boolean unregisterListener(ProcedureStoreListener listener);<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>  /**<a name="line.131"></a>
+<span class="sourceLineNo">132</span>   * Start/Open the procedure store<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   * @param numThreads<a name="line.133"></a>
 <span class="sourceLineNo">134</span>   */<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  int getNumThreads();<a name="line.135"></a>
+<span class="sourceLineNo">135</span>  void start(int numThreads) throws IOException;<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>   * Acquire the lease for the procedure store.<a name="line.138"></a>
-<span class="sourceLineNo">139</span>   */<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  void recoverLease() throws IOException;<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span>  /**<a name="line.142"></a>
-<span class="sourceLineNo">143</span>   * Load the Procedures in the store.<a name="line.143"></a>
-<span class="sourceLineNo">144</span>   * @param loader the ProcedureLoader that will handle the store-load events<a name="line.144"></a>
+<span class="sourceLineNo">138</span>   * Stop/Close the procedure store<a name="line.138"></a>
+<span class="sourceLineNo">139</span>   * @param abort true if the stop is an abort<a name="line.139"></a>
+<span class="sourceLineNo">140</span>   */<a name="line.140"></a>
+<span class="sourceLineNo">141</span>  void stop(boolean abort);<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 true if the store is running, otherwise false.<a name="line.144"></a>
 <span class="sourceLineNo">145</span>   */<a name="line.145"></a>
-<span class="sourceLineNo">146</span>  void load(ProcedureLoader loader) throws IOException;<a name="line.146"></a>
+<span class="sourceLineNo">146</span>  boolean isRunning();<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>   * When a procedure is submitted to the executor insert(proc, null) will be called.<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   * 'proc' has a 'RUNNABLE' state and the initial information required to start up.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   *<a name="line.151"></a>
-<span class="sourceLineNo">152</span>   * When a procedure is executed and it returns children insert(proc, subprocs) will be called.<a name="line.152"></a>
-<span class="sourceLineNo">153</span>   * 'proc' has a 'WAITING' state and an update state.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>   * 'subprocs' are the children in 'RUNNABLE' state with the initial information.<a name="line.154"></a>
-<span class="sourceLineNo">155</span>   *<a name="line.155"></a>
-<span class="sourceLineNo">156</span>   * @param proc the procedure to serialize and write to the store.<a name="line.156"></a>
-<span class="sourceLineNo">157</span>   * @param subprocs the newly created child of the proc.<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   */<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  void insert(Procedure proc, Procedure[] subprocs);<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  /**<a name="line.161"></a>
-<span class="sourceLineNo">162</span>   * The specified procedure was executed,<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   * and the new state should be written to the store.<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   * @param proc the procedure to serialize and write to the store.<a name="line.164"></a>
-<span class="sourceLineNo">165</span>   */<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  void update(Procedure proc);<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>   * The specified procId was removed from the executor,<a name="line.169"></a>
-<span class="sourceLineNo">170</span>   * due to completion, abort or failure.<a name="line.170"></a>
-<span class="sourceLineNo">171</span>   * The store implementor should remove all the information about the specified procId.<a name="line.171"></a>
-<span class="sourceLineNo">172</span>   * @param procId the ID of the procedure to remove.<a name="line.172"></a>
-<span class="sourceLineNo">173</span>   */<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  void delete(long procId);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>}<a name="line.175"></a>
+<span class="sourceLineNo">149</span>   * @return the number of threads/slots passed to start()<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>  int getNumThreads();<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>   * Acquire the lease for the procedure store.<a name="line.154"></a>
+<span class="sourceLineNo">155</span>   */<a name="line.155"></a>
+<span class="sourceLineNo">156</span>  void recoverLease() throws IOException;<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span>  /**<a name="line.158"></a>
+<span class="sourceLineNo">159</span>   * Load the Procedures in the store.<a name="line.159"></a>
+<span class="sourceLineNo">160</span>   * @param loader the ProcedureLoader that will handle the store-load events<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   */<a name="line.161"></a>
+<span class="sourceLineNo">162</span>  void load(ProcedureLoader loader) throws IOException;<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>  /**<a name="line.164"></a>
+<span class="sourceLineNo">165</span>   * When a procedure is submitted to the executor insert(proc, null) will be called.<a name="line.165"></a>
+<span class="sourceLineNo">166</span>   * 'proc' has a 'RUNNABLE' state and the initial information required to start up.<a name="line.166"></a>
+<span class="sourceLineNo">167</span>   *<a name="line.167"></a>
+<span class="sourceLineNo">168</span>   * When a procedure is executed and it returns children insert(proc, subprocs) will be called.<a name="line.168"></a>
+<span class="sourceLineNo">169</span>   * 'proc' has a 'WAITING' state and an update state.<a name="line.169"></a>
+<span class="sourceLineNo">170</span>   * 'subprocs' are the children in 'RUNNABLE' state with the initial information.<a name="line.170"></a>
+<span class="sourceLineNo">171</span>   *<a name="line.171"></a>
+<span class="sourceLineNo">172</span>   * @param proc the procedure to serialize and write to the store.<a name="line.172"></a>
+<span class="sourceLineNo">173</span>   * @param subprocs the newly created child of the proc.<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  void insert(Procedure proc, Procedure[] subprocs);<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>   * The specified procedure was executed,<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   * and the new state should be written to the store.<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * @param proc the procedure to serialize and write to the store.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  void update(Procedure proc);<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>   * The specified procId was removed from the executor,<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   * due to completion, abort or failure.<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   * The store implementor should remove all the information about the specified procId.<a name="line.187"></a>
+<span class="sourceLineNo">188</span>   * @param procId the ID of the procedure to remove.<a name="line.188"></a>
+<span class="sourceLineNo">189</span>   */<a name="line.189"></a>
+<span class="sourceLineNo">190</span>  void delete(long procId);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>}<a name="line.191"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html
index 748314e..6dcf0c1 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html
@@ -30,157 +30,173 @@
 <span class="sourceLineNo">022</span><a name="line.22"></a>
 <span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.23"></a>
 <span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.25"></a>
-<span class="sourceLineNo">026</span><a name="line.26"></a>
-<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
-<span class="sourceLineNo">028</span> * The ProcedureStore is used by the executor to persist the state of each procedure execution.<a name="line.28"></a>
-<span class="sourceLineNo">029</span> * This allows to resume the execution of pending/in-progress procedures in case<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * of machine failure or service shutdown.<a name="line.30"></a>
-<span class="sourceLineNo">031</span> */<a name="line.31"></a>
-<span class="sourceLineNo">032</span>@InterfaceAudience.Private<a name="line.32"></a>
-<span class="sourceLineNo">033</span>@InterfaceStability.Evolving<a name="line.33"></a>
-<span class="sourceLineNo">034</span>public interface ProcedureStore {<a name="line.34"></a>
-<span class="sourceLineNo">035</span>  /**<a name="line.35"></a>
-<span class="sourceLineNo">036</span>   * Store listener interface.<a name="line.36"></a>
-<span class="sourceLineNo">037</span>   * The main process should register a listener and respond to the store events.<a name="line.37"></a>
-<span class="sourceLineNo">038</span>   */<a name="line.38"></a>
-<span class="sourceLineNo">039</span>  public interface ProcedureStoreListener {<a name="line.39"></a>
-<span class="sourceLineNo">040</span>    /**<a name="line.40"></a>
-<span class="sourceLineNo">041</span>     * triggered when the store sync is completed.<a name="line.41"></a>
-<span class="sourceLineNo">042</span>     */<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    void postSync();<a name="line.43"></a>
-<span class="sourceLineNo">044</span><a name="line.44"></a>
-<span class="sourceLineNo">045</span>    /**<a name="line.45"></a>
-<span class="sourceLineNo">046</span>     * triggered when the store is not able to write out data.<a name="line.46"></a>
-<span class="sourceLineNo">047</span>     * the main process should abort.<a name="line.47"></a>
-<span class="sourceLineNo">048</span>     */<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    void abortProcess();<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  }<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>  /**<a name="line.52"></a>
-<span class="sourceLineNo">053</span>   * An Iterator over a collection of Procedure<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   */<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  public interface ProcedureIterator {<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    /**<a name="line.56"></a>
-<span class="sourceLineNo">057</span>     * Reset the Iterator by seeking to the beginning of the list.<a name="line.57"></a>
-<span class="sourceLineNo">058</span>     */<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    void reset();<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>    /**<a name="line.61"></a>
-<span class="sourceLineNo">062</span>     * Returns true if the iterator has more elements.<a name="line.62"></a>
-<span class="sourceLineNo">063</span>     * (In other words, returns true if next() would return a Procedure<a name="line.63"></a>
-<span class="sourceLineNo">064</span>     * rather than throwing an exception.)<a name="line.64"></a>
-<span class="sourceLineNo">065</span>     * @return true if the iterator has more procedures<a name="line.65"></a>
-<span class="sourceLineNo">066</span>     */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    boolean hasNext();<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>    /**<a name="line.69"></a>
-<span class="sourceLineNo">070</span>     * Returns the next procedure in the iteration.<a name="line.70"></a>
-<span class="sourceLineNo">071</span>     * @throws IOException if there was an error fetching/deserializing the procedure<a name="line.71"></a>
-<span class="sourceLineNo">072</span>     * @return the next procedure in the iteration.<a name="line.72"></a>
-<span class="sourceLineNo">073</span>     */<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    Procedure next() throws IOException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  /**<a name="line.77"></a>
-<span class="sourceLineNo">078</span>   * Interface passed to the ProcedureStore.load() method to handle the store-load events.<a name="line.78"></a>
-<span class="sourceLineNo">079</span>   */<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  public interface ProcedureLoader {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    /**<a name="line.81"></a>
-<span class="sourceLineNo">082</span>     * Called by ProcedureStore.load() to notify about the maximum proc-id in the store.<a name="line.82"></a>
-<span class="sourceLineNo">083</span>     * @param maxProcId the highest proc-id in the store<a name="line.83"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>/**<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * The ProcedureStore is used by the executor to persist the state of each procedure execution.<a name="line.29"></a>
+<span class="sourceLineNo">030</span> * This allows to resume the execution of pending/in-progress procedures in case<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * of machine failure or service shutdown.<a name="line.31"></a>
+<span class="sourceLineNo">032</span> */<a name="line.32"></a>
+<span class="sourceLineNo">033</span>@InterfaceAudience.Private<a name="line.33"></a>
+<span class="sourceLineNo">034</span>@InterfaceStability.Evolving<a name="line.34"></a>
+<span class="sourceLineNo">035</span>public interface ProcedureStore {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>  /**<a name="line.36"></a>
+<span class="sourceLineNo">037</span>   * Store listener interface.<a name="line.37"></a>
+<span class="sourceLineNo">038</span>   * The main process should register a listener and respond to the store events.<a name="line.38"></a>
+<span class="sourceLineNo">039</span>   */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>  public interface ProcedureStoreListener {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>    /**<a name="line.41"></a>
+<span class="sourceLineNo">042</span>     * triggered when the store sync is completed.<a name="line.42"></a>
+<span class="sourceLineNo">043</span>     */<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    void postSync();<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>    /**<a name="line.46"></a>
+<span class="sourceLineNo">047</span>     * triggered when the store is not able to write out data.<a name="line.47"></a>
+<span class="sourceLineNo">048</span>     * the main process should abort.<a name="line.48"></a>
+<span class="sourceLineNo">049</span>     */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    void abortProcess();<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>  /**<a name="line.53"></a>
+<span class="sourceLineNo">054</span>   * An Iterator over a collection of Procedure<a name="line.54"></a>
+<span class="sourceLineNo">055</span>   */<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  public interface ProcedureIterator {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    /**<a name="line.57"></a>
+<span class="sourceLineNo">058</span>     * Reset the Iterator by seeking to the beginning of the list.<a name="line.58"></a>
+<span class="sourceLineNo">059</span>     */<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    void reset();<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>     * Returns true if the iterator has more elements.<a name="line.63"></a>
+<span class="sourceLineNo">064</span>     * (In other words, returns true if next() would return a Procedure<a name="line.64"></a>
+<span class="sourceLineNo">065</span>     * rather than throwing an exception.)<a name="line.65"></a>
+<span class="sourceLineNo">066</span>     * @return true if the iterator has more procedures<a name="line.66"></a>
+<span class="sourceLineNo">067</span>     */<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    boolean hasNext();<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>    /**<a name="line.70"></a>
+<span class="sourceLineNo">071</span>     * @return true if the iterator next element is a completed procedure.<a name="line.71"></a>
+<span class="sourceLineNo">072</span>     */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    boolean isNextCompleted();<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>    /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>     * Skip the next procedure<a name="line.76"></a>
+<span class="sourceLineNo">077</span>     */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    void skipNext();<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>    /**<a name="line.80"></a>
+<span class="sourceLineNo">081</span>     * Returns the next procedure in the iteration.<a name="line.81"></a>
+<span class="sourceLineNo">082</span>     * @throws IOException if there was an error fetching/deserializing the procedure<a name="line.82"></a>
+<span class="sourceLineNo">083</span>     * @return the next procedure in the iteration.<a name="line.83"></a>
 <span class="sourceLineNo">084</span>     */<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    void setMaxProcId(long maxProcId);<a name="line.85"></a>
+<span class="sourceLineNo">085</span>    Procedure nextAsProcedure() throws IOException;<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>     * Called by the ProcedureStore.load() every time a set of procedures are ready to be executed.<a name="line.88"></a>
-<span class="sourceLineNo">089</span>     * The ProcedureIterator passed to the method, has the procedure sorted in replay-order.<a name="line.89"></a>
-<span class="sourceLineNo">090</span>     * @param procIter iterator over the procedures ready to be added to the executor.<a name="line.90"></a>
-<span class="sourceLineNo">091</span>     */<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    void load(ProcedureIterator procIter) throws IOException;<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>     * Called by the ProcedureStore.load() in case we have procedures not-ready to be added to<a name="line.95"></a>
-<span class="sourceLineNo">096</span>     * the executor, which probably means they are corrupted since some information/link is missing.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>     * @param procIter iterator over the procedures not ready to be added to the executor, corrupted<a name="line.97"></a>
-<span class="sourceLineNo">098</span>     */<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    void handleCorrupted(ProcedureIterator procIter) throws IOException;<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>  /**<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * Add the listener to the notification list.<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * @param listener The AssignmentListener to register<a name="line.104"></a>
-<span class="sourceLineNo">105</span>   */<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  void registerListener(ProcedureStoreListener listener);<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>  /**<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * Remove the listener from the notification list.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   * @param listener The AssignmentListener to unregister<a name="line.110"></a>
-<span class="sourceLineNo">111</span>   * @return true if the listner was in the list and it was removed, otherwise false.<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   */<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  boolean unregisterListener(ProcedureStoreListener listener);<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>   * Start/Open the procedure store<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   * @param numThreads<a name="line.117"></a>
-<span class="sourceLineNo">118</span>   */<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  void start(int numThreads) throws IOException;<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>   * Stop/Close the procedure store<a name="line.122"></a>
-<span class="sourceLineNo">123</span>   * @param abort true if the stop is an abort<a name="line.123"></a>
-<span class="sourceLineNo">124</span>   */<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  void stop(boolean abort);<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>   * @return true if the store is running, otherwise false.<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   */<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  boolean isRunning();<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span>  /**<a name="line.132"></a>
-<span class="sourceLineNo">133</span>   * @return the number of threads/slots passed to start()<a name="line.133"></a>
+<span class="sourceLineNo">088</span>     * @return the next procedure in the iteration as ProcedureInfo.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>     */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    ProcedureInfo nextAsProcedureInfo();<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  }<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>  /**<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   * Interface passed to the ProcedureStore.load() method to handle the store-load events.<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   */<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public interface ProcedureLoader {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    /**<a name="line.97"></a>
+<span class="sourceLineNo">098</span>     * Called by ProcedureStore.load() to notify about the maximum proc-id in the store.<a name="line.98"></a>
+<span class="sourceLineNo">099</span>     * @param maxProcId the highest proc-id in the store<a name="line.99"></a>
+<span class="sourceLineNo">100</span>     */<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    void setMaxProcId(long maxProcId);<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>     * Called by the ProcedureStore.load() every time a set of procedures are ready to be executed.<a name="line.104"></a>
+<span class="sourceLineNo">105</span>     * The ProcedureIterator passed to the method, has the procedure sorted in replay-order.<a name="line.105"></a>
+<span class="sourceLineNo">106</span>     * @param procIter iterator over the procedures ready to be added to the executor.<a name="line.106"></a>
+<span class="sourceLineNo">107</span>     */<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    void load(ProcedureIterator procIter) throws IOException;<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>     * Called by the ProcedureStore.load() in case we have procedures not-ready to be added to<a name="line.111"></a>
+<span class="sourceLineNo">112</span>     * the executor, which probably means they are corrupted since some information/link is missing.<a name="line.112"></a>
+<span class="sourceLineNo">113</span>     * @param procIter iterator over the procedures not ready to be added to the executor, corrupted<a name="line.113"></a>
+<span class="sourceLineNo">114</span>     */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    void handleCorrupted(ProcedureIterator procIter) throws IOException;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span>  /**<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   * Add the listener to the notification list.<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   * @param listener The AssignmentListener to register<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   */<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  void registerListener(ProcedureStoreListener listener);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>  /**<a name="line.124"></a>
+<span class="sourceLineNo">125</span>   * Remove the listener from the notification list.<a name="line.125"></a>
+<span class="sourceLineNo">126</span>   * @param listener The AssignmentListener to unregister<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   * @return true if the listner was in the list and it was removed, otherwise false.<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  boolean unregisterListener(ProcedureStoreListener listener);<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>  /**<a name="line.131"></a>
+<span class="sourceLineNo">132</span>   * Start/Open the procedure store<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   * @param numThreads<a name="line.133"></a>
 <span class="sourceLineNo">134</span>   */<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  int getNumThreads();<a name="line.135"></a>
+<span class="sourceLineNo">135</span>  void start(int numThreads) throws IOException;<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>   * Acquire the lease for the procedure store.<a name="line.138"></a>
-<span class="sourceLineNo">139</span>   */<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  void recoverLease() throws IOException;<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span>  /**<a name="line.142"></a>
-<span class="sourceLineNo">143</span>   * Load the Procedures in the store.<a name="line.143"></a>
-<span class="sourceLineNo">144</span>   * @param loader the ProcedureLoader that will handle the store-load events<a name="line.144"></a>
+<span class="sourceLineNo">138</span>   * Stop/Close the procedure store<a name="line.138"></a>
+<span class="sourceLineNo">139</span>   * @param abort true if the stop is an abort<a name="line.139"></a>
+<span class="sourceLineNo">140</span>   */<a name="line.140"></a>
+<span class="sourceLineNo">141</span>  void stop(boolean abort);<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 true if the store is running, otherwise false.<a name="line.144"></a>
 <span class="sourceLineNo">145</span>   */<a name="line.145"></a>
-<span class="sourceLineNo">146</span>  void load(ProcedureLoader loader) throws IOException;<a name="line.146"></a>
+<span class="sourceLineNo">146</span>  boolean isRunning();<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>   * When a procedure is submitted to the executor insert(proc, null) will be called.<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   * 'proc' has a 'RUNNABLE' state and the initial information required to start up.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   *<a name="line.151"></a>
-<span class="sourceLineNo">152</span>   * When a procedure is executed and it returns children insert(proc, subprocs) will be called.<a name="line.152"></a>
-<span class="sourceLineNo">153</span>   * 'proc' has a 'WAITING' state and an update state.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>   * 'subprocs' are the children in 'RUNNABLE' state with the initial information.<a name="line.154"></a>
-<span class="sourceLineNo">155</span>   *<a name="line.155"></a>
-<span class="sourceLineNo">156</span>   * @param proc the procedure to serialize and write to the store.<a name="line.156"></a>
-<span class="sourceLineNo">157</span>   * @param subprocs the newly created child of the proc.<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   */<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  void insert(Procedure proc, Procedure[] subprocs);<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  /**<a name="line.161"></a>
-<span class="sourceLineNo">162</span>   * The specified procedure was executed,<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   * and the new state should be written to the store.<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   * @param proc the procedure to serialize and write to the store.<a name="line.164"></a>
-<span class="sourceLineNo">165</span>   */<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  void update(Procedure proc);<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>   * The specified procId was removed from the executor,<a name="line.169"></a>
-<span class="sourceLineNo">170</span>   * due to completion, abort or failure.<a name="line.170"></a>
-<span class="sourceLineNo">171</span>   * The store implementor should remove all the information about the specified procId.<a name="line.171"></a>
-<span class="sourceLineNo">172</span>   * @param procId the ID of the procedure to remove.<a name="line.172"></a>
-<span class="sourceLineNo">173</span>   */<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  void delete(long procId);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>}<a name="line.175"></a>
+<span class="sourceLineNo">149</span>   * @return the number of threads/slots passed to start()<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>  int getNumThreads();<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>   * Acquire the lease for the procedure store.<a name="line.154"></a>
+<span class="sourceLineNo">155</span>   */<a name="line.155"></a>
+<span class="sourceLineNo">156</span>  void recoverLease() throws IOException;<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span>  /**<a name="line.158"></a>
+<span class="sourceLineNo">159</span>   * Load the Procedures in the store.<a name="line.159"></a>
+<span class="sourceLineNo">160</span>   * @param loader the ProcedureLoader that will handle the store-load events<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   */<a name="line.161"></a>
+<span class="sourceLineNo">162</span>  void load(ProcedureLoader loader) throws IOException;<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>  /**<a name="line.164"></a>
+<span class="sourceLineNo">165</span>   * When a procedure is submitted to the executor insert(proc, null) will be called.<a name="line.165"></a>
+<span class="sourceLineNo">166</span>   * 'proc' has a 'RUNNABLE' state and the initial information required to start up.<a name="line.166"></a>
+<span class="sourceLineNo">167</span>   *<a name="line.167"></a>
+<span class="sourceLineNo">168</span>   * When a procedure is executed and it returns children insert(proc, subprocs) will be called.<a name="line.168"></a>
+<span class="sourceLineNo">169</span>   * 'proc' has a 'WAITING' state and an update state.<a name="line.169"></a>
+<span class="sourceLineNo">170</span>   * 'subprocs' are the children in 'RUNNABLE' state with the initial information.<a name="line.170"></a>
+<span class="sourceLineNo">171</span>   *<a name="line.171"></a>
+<span class="sourceLineNo">172</span>   * @param proc the procedure to serialize and write to the store.<a name="line.172"></a>
+<span class="sourceLineNo">173</span>   * @param subprocs the newly created child of the proc.<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  void insert(Procedure proc, Procedure[] subprocs);<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>   * The specified procedure was executed,<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   * and the new state should be written to the store.<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * @param proc the procedure to serialize and write to the store.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  void update(Procedure proc);<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>   * The specified procId was removed from the executor,<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   * due to completion, abort or failure.<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   * The store implementor should remove all the information about the specified procId.<a name="line.187"></a>
+<span class="sourceLineNo">188</span>   * @param procId the ID of the procedure to remove.<a name="line.188"></a>
+<span class="sourceLineNo">189</span>   */<a name="line.189"></a>
+<span class="sourceLineNo">190</span>  void delete(long procId);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>}<a name="line.191"></a>
 
 
 


[51/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.


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

Branch: refs/heads/asf-site
Commit: f8d6f420038eaeff3c705c002770b9270f403750
Parents: 29e3385
Author: jenkins <bu...@apache.org>
Authored: Sun Jan 24 15:26:53 2016 +0000
Committer: Misty Stanley-Jones <ms...@cloudera.com>
Committed: Mon Jan 25 09:02:36 2016 -0800

----------------------------------------------------------------------
 acid-semantics.html                             |    4 +-
 apache_hbase_reference_guide.pdf                |  Bin 14205622 -> 14205622 bytes
 apache_hbase_reference_guide.pdfmarks           |    4 +-
 apidocs/index-all.html                          |    4 +-
 .../org/apache/hadoop/hbase/ProcedureInfo.html  |   55 +-
 .../org/apache/hadoop/hbase/ProcedureInfo.html  |  400 +-
 book.html                                       |    2 +-
 bulk-loads.html                                 |    4 +-
 checkstyle-aggregate.html                       | 2602 +++---
 checkstyle.rss                                  |    8 +-
 coc.html                                        |    4 +-
 cygwin.html                                     |    4 +-
 dependencies.html                               |    4 +-
 dependency-convergence.html                     |    4 +-
 dependency-info.html                            |    4 +-
 dependency-management.html                      |    4 +-
 devapidocs/index-all.html                       |   64 +-
 .../org/apache/hadoop/hbase/ProcedureInfo.html  |   95 +-
 .../hadoop/hbase/class-use/HRegionInfo.html     |  120 +-
 .../hadoop/hbase/class-use/ProcedureInfo.html   |   48 +
 .../class-use/InterfaceStability.Unstable.html  |   12 +-
 .../hbase/classification/package-tree.html      |    6 +-
 .../hadoop/hbase/client/package-tree.html       |    4 +-
 .../BaseMasterAndRegionObserver.html            |  365 +-
 .../hbase/coprocessor/BaseMasterObserver.html   |  361 +-
 .../hbase/coprocessor/MasterObserver.html       |  151 +-
 .../class-use/MasterCoprocessorEnvironment.html |  392 +-
 .../coprocessor/class-use/ObserverContext.html  |  618 +-
 .../hadoop/hbase/filter/package-tree.html       |    8 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |    6 +-
 .../hadoop/hbase/mapreduce/package-tree.html    |    4 +-
 ...terCoprocessorHost.CoprocessorOperation.html |    8 +-
 ...ssorHost.CoprocessorOperationWithResult.html |   10 +-
 .../hbase/master/MasterCoprocessorHost.html     |  196 +-
 .../hadoop/hbase/master/MasterRpcServices.html  |   94 +-
 .../hadoop/hbase/master/package-tree.html       |    6 +-
 .../hbase/master/procedure/package-tree.html    |    2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    6 +-
 .../org/apache/hadoop/hbase/package-use.html    |   82 +-
 .../hadoop/hbase/procedure2/Procedure.html      |    4 +-
 .../hbase/procedure2/ProcedureExecutor.html     |   74 +-
 .../hbase/procedure2/class-use/Procedure.html   |    4 +-
 .../store/ProcedureStore.ProcedureIterator.html |   62 +-
 .../store/ProcedureStore.ProcedureLoader.html   |    8 +-
 .../ProcedureStore.ProcedureStoreListener.html  |    6 +-
 .../hbase/procedure2/store/ProcedureStore.html  |   24 +-
 .../procedure2/store/ProcedureStoreTracker.html |   72 +-
 .../store/wal/ProcedureWALFormat.Loader.html    |   15 +-
 .../store/wal/ProcedureWALFormat.html           |   24 +-
 .../wal/ProcedureWALFormatReader.Entry.html     |   64 +-
 .../ProcedureWALFormatReader.EntryIterator.html |   83 +-
 ...rocedureWALFormatReader.WalProcedureMap.html |   66 +-
 .../store/wal/ProcedureWALFormatReader.html     |   34 +-
 .../store/wal/WALProcedureStore.PushType.html   |   12 +-
 .../procedure2/store/wal/WALProcedureStore.html |   78 +-
 .../store/wal/class-use/ProcedureWALFile.html   |    6 +-
 .../hadoop/hbase/quotas/package-tree.html       |    6 +-
 .../hadoop/hbase/regionserver/package-tree.html |   24 +-
 .../hadoop/hbase/rest/model/package-tree.html   |    2 +-
 .../hbase/security/access/AccessController.html |  175 +-
 .../hbase/security/access/package-tree.html     |    2 +-
 .../hadoop/hbase/security/package-tree.html     |    2 +-
 .../visibility/VisibilityController.html        |    2 +-
 .../tmpl/master/MasterStatusTmpl.ImplData.html  |  270 +-
 .../hbase/tmpl/master/MasterStatusTmpl.html     |  108 +-
 .../hbase/tmpl/master/MasterStatusTmplImpl.html |   54 +-
 .../regionserver/RSStatusTmpl.ImplData.html     |  120 +-
 .../hbase/tmpl/regionserver/RSStatusTmpl.html   |   48 +-
 .../tmpl/regionserver/RSStatusTmplImpl.html     |   24 +-
 ...BaseFsck.CheckRegionConsistencyWorkItem.html |   10 +-
 .../HBaseFsck.ErrorReporter.ERROR_CODE.html     |   72 +-
 .../hbase/util/HBaseFsck.ErrorReporter.html     |   30 +-
 .../hbase/util/HBaseFsck.HBaseFsckTool.html     |    6 +-
 .../hadoop/hbase/util/HBaseFsck.HbckInfo.html   |   56 +-
 .../hadoop/hbase/util/HBaseFsck.HdfsEntry.html  |   14 +-
 .../hadoop/hbase/util/HBaseFsck.MetaEntry.html  |   18 +-
 .../hbase/util/HBaseFsck.OnlineEntry.html       |   10 +-
 .../util/HBaseFsck.PrintingErrorReporter.html   |   42 +-
 .../util/HBaseFsck.RegionRepairException.html   |    8 +-
 .../HBaseFsck.TableInfo.HDFSIntegrityFixer.html |   20 +-
 ...aseFsck.TableInfo.IntegrityFixSuggester.html |   18 +-
 .../hadoop/hbase/util/HBaseFsck.TableInfo.html  |   38 +-
 .../hbase/util/HBaseFsck.WorkItemHdfsDir.html   |   14 +-
 .../util/HBaseFsck.WorkItemHdfsRegionInfo.html  |   12 +-
 .../util/HBaseFsck.WorkItemOverlapMerge.html    |   10 +-
 .../hbase/util/HBaseFsck.WorkItemRegion.html    |   16 +-
 .../org/apache/hadoop/hbase/util/HBaseFsck.html |  238 +-
 .../hadoop/hbase/util/class-use/NonceKey.html   |   19 +-
 .../apache/hadoop/hbase/util/package-tree.html  |    6 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |    2 +-
 .../hbase/zookeeper/MetaTableLocator.html       |   60 +-
 .../org/apache/hadoop/hbase/ProcedureInfo.html  |  400 +-
 .../BaseMasterAndRegionObserver.html            |  890 +-
 .../hbase/coprocessor/BaseMasterObserver.html   |  906 +-
 .../hbase/coprocessor/MasterObserver.html       |   23 +-
 ...terCoprocessorHost.CoprocessorOperation.html |  676 +-
 ...ssorHost.CoprocessorOperationWithResult.html |  676 +-
 ...MasterCoprocessorHost.MasterEnvironment.html |  676 +-
 .../hbase/master/MasterCoprocessorHost.html     |  676 +-
 .../MasterRpcServices.BalanceSwitchMode.html    | 2088 ++---
 .../hadoop/hbase/master/MasterRpcServices.html  | 2088 ++---
 .../hadoop/hbase/procedure2/Procedure.html      |  255 +-
 ...edureExecutor.CompletedProcedureCleaner.html | 1895 ++---
 ...edureExecutor.ProcedureExecutorListener.html | 1895 ++---
 ...edureExecutor.ProcedureTimeoutRetriever.html | 1895 ++---
 .../procedure2/ProcedureExecutor.Testing.html   | 1895 ++---
 .../hbase/procedure2/ProcedureExecutor.html     | 1895 ++---
 .../store/ProcedureStore.ProcedureIterator.html |  300 +-
 .../store/ProcedureStore.ProcedureLoader.html   |  300 +-
 .../ProcedureStore.ProcedureStoreListener.html  |  300 +-
 .../hbase/procedure2/store/ProcedureStore.html  |  300 +-
 .../store/ProcedureStoreTracker.BitSetNode.html |  350 +-
 .../ProcedureStoreTracker.DeleteState.html      |  350 +-
 .../procedure2/store/ProcedureStoreTracker.html |  350 +-
 ...cedureWALFormat.InvalidWALDataException.html |  333 +-
 .../store/wal/ProcedureWALFormat.Loader.html    |  333 +-
 .../store/wal/ProcedureWALFormat.html           |  333 +-
 .../wal/ProcedureWALFormatReader.Entry.html     | 1368 ++--
 .../ProcedureWALFormatReader.EntryIterator.html | 1368 ++--
 ...rocedureWALFormatReader.WalProcedureMap.html | 1368 ++--
 .../store/wal/ProcedureWALFormatReader.html     | 1368 ++--
 .../wal/WALProcedureStore.LeaseRecovery.html    | 1418 ++--
 .../store/wal/WALProcedureStore.PushType.html   | 1418 ++--
 .../procedure2/store/wal/WALProcedureStore.html | 1418 ++--
 .../access/AccessController.OpType.html         |  165 +-
 .../hbase/security/access/AccessController.html |  165 +-
 .../tmpl/master/MasterStatusTmpl.ImplData.html  |  270 +-
 .../tmpl/master/MasterStatusTmpl.Intf.html      |  270 +-
 .../hbase/tmpl/master/MasterStatusTmpl.html     |  270 +-
 .../hbase/tmpl/master/MasterStatusTmplImpl.html |   76 +-
 .../regionserver/RSStatusTmpl.ImplData.html     |  120 +-
 .../tmpl/regionserver/RSStatusTmpl.Intf.html    |  120 +-
 .../hbase/tmpl/regionserver/RSStatusTmpl.html   |  120 +-
 .../tmpl/regionserver/RSStatusTmplImpl.html     |   36 +-
 ...BaseFsck.CheckRegionConsistencyWorkItem.html | 7739 +++++++++---------
 .../HBaseFsck.ErrorReporter.ERROR_CODE.html     | 7739 +++++++++---------
 .../hbase/util/HBaseFsck.ErrorReporter.html     | 7739 +++++++++---------
 .../hbase/util/HBaseFsck.FileLockCallable.html  | 7739 +++++++++---------
 .../hbase/util/HBaseFsck.HBaseFsckTool.html     | 7739 +++++++++---------
 .../hadoop/hbase/util/HBaseFsck.HbckInfo.html   | 7739 +++++++++---------
 .../hadoop/hbase/util/HBaseFsck.HdfsEntry.html  | 7739 +++++++++---------
 .../hadoop/hbase/util/HBaseFsck.MetaEntry.html  | 7739 +++++++++---------
 .../hbase/util/HBaseFsck.OnlineEntry.html       | 7739 +++++++++---------
 .../util/HBaseFsck.PrintingErrorReporter.html   | 7739 +++++++++---------
 .../HBaseFsck.RegionBoundariesInformation.html  | 7739 +++++++++---------
 .../util/HBaseFsck.RegionRepairException.html   | 7739 +++++++++---------
 .../HBaseFsck.TableInfo.HDFSIntegrityFixer.html | 7739 +++++++++---------
 ...aseFsck.TableInfo.IntegrityFixSuggester.html | 7739 +++++++++---------
 .../hadoop/hbase/util/HBaseFsck.TableInfo.html  | 7739 +++++++++---------
 .../hbase/util/HBaseFsck.WorkItemHdfsDir.html   | 7739 +++++++++---------
 .../util/HBaseFsck.WorkItemHdfsRegionInfo.html  | 7739 +++++++++---------
 .../util/HBaseFsck.WorkItemOverlapMerge.html    | 7739 +++++++++---------
 .../hbase/util/HBaseFsck.WorkItemRegion.html    | 7739 +++++++++---------
 .../org/apache/hadoop/hbase/util/HBaseFsck.html | 7739 +++++++++---------
 .../hbase/zookeeper/MetaTableLocator.html       | 1123 ++-
 distribution-management.html                    |    4 +-
 export_control.html                             |    4 +-
 hbase-annotations/checkstyle.html               |    6 +-
 hbase-annotations/dependencies.html             |    6 +-
 hbase-annotations/dependency-convergence.html   |    6 +-
 hbase-annotations/dependency-info.html          |    6 +-
 hbase-annotations/dependency-management.html    |    6 +-
 hbase-annotations/distribution-management.html  |    6 +-
 hbase-annotations/index.html                    |    6 +-
 hbase-annotations/integration.html              |    6 +-
 hbase-annotations/issue-tracking.html           |    6 +-
 hbase-annotations/license.html                  |    6 +-
 hbase-annotations/mail-lists.html               |    6 +-
 hbase-annotations/plugin-management.html        |    6 +-
 hbase-annotations/plugins.html                  |    6 +-
 hbase-annotations/project-info.html             |    6 +-
 hbase-annotations/project-reports.html          |    6 +-
 hbase-annotations/project-summary.html          |    6 +-
 hbase-annotations/source-repository.html        |    6 +-
 hbase-annotations/team-list.html                |    6 +-
 hbase-spark/checkstyle.html                     |    6 +-
 hbase-spark/dependencies.html                   |    6 +-
 hbase-spark/dependency-convergence.html         |    6 +-
 hbase-spark/dependency-info.html                |    6 +-
 hbase-spark/dependency-management.html          |    6 +-
 hbase-spark/distribution-management.html        |    6 +-
 hbase-spark/index.html                          |    6 +-
 hbase-spark/integration.html                    |    6 +-
 hbase-spark/issue-tracking.html                 |    6 +-
 hbase-spark/license.html                        |    6 +-
 hbase-spark/mail-lists.html                     |    6 +-
 hbase-spark/plugin-management.html              |    6 +-
 hbase-spark/plugins.html                        |    6 +-
 hbase-spark/project-info.html                   |    6 +-
 hbase-spark/project-reports.html                |    6 +-
 hbase-spark/project-summary.html                |    6 +-
 hbase-spark/source-repository.html              |    6 +-
 hbase-spark/team-list.html                      |    6 +-
 index.html                                      |    4 +-
 integration.html                                |    4 +-
 issue-tracking.html                             |    4 +-
 license.html                                    |    4 +-
 mail-lists.html                                 |    4 +-
 metrics.html                                    |    4 +-
 modules.html                                    |    4 +-
 old_news.html                                   |    4 +-
 plugin-management.html                          |    4 +-
 plugins.html                                    |    4 +-
 poweredbyhbase.html                             |    4 +-
 project-info.html                               |    4 +-
 project-reports.html                            |    4 +-
 project-summary.html                            |    4 +-
 pseudo-distributed.html                         |    4 +-
 replication.html                                |    4 +-
 resources.html                                  |    4 +-
 source-repository.html                          |    4 +-
 sponsors.html                                   |    4 +-
 supportingprojects.html                         |    4 +-
 team-list.html                                  |    4 +-
 testdevapidocs/index-all.html                   |   25 +-
 ...rExceptionWithAbort.BuggyMasterObserver.html |    2 +-
 ...ExceptionWithRemove.BuggyMasterObserver.html |    2 +-
 .../TestMasterObserver.CPMasterObserver.html    |  877 +-
 .../hbase/coprocessor/TestMasterObserver.html   |   50 +-
 ...nager.TestAlterAndDisableMasterObserver.html |    2 +-
 ....TestLockTimeoutExceptionMasterObserver.html |    2 +-
 ...stEnableTableHandler.MasterSyncObserver.html |    2 +-
 ...TestNamespaceAuditor.MasterSyncObserver.html |    2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    8 +-
 .../wal/TestWALProcedureStore.LoadCounter.html  |   34 +-
 ...LProcedureStore.TestSequentialProcedure.html |   16 +-
 .../store/wal/TestWALProcedureStore.html        |   42 +-
 .../hadoop/hbase/regionserver/package-tree.html |    2 +-
 .../SecureTestUtil.MasterSyncObserver.html      |    2 +-
 ...estAccessController2.MyAccessController.html |    4 +-
 ...ccessController3.FaultyAccessController.html |    4 +-
 ...napshotClientRetries.MasterSyncObserver.html |    2 +-
 .../apache/hadoop/hbase/test/package-tree.html  |    2 +-
 .../BaseTestHBaseFsck.MasterSyncObserver.html   |   14 +-
 .../BaseTestHBaseFsck.MockErrorReporter.html    |   34 +-
 .../hadoop/hbase/util/BaseTestHBaseFsck.html    |   83 +-
 .../hadoop/hbase/util/TestHBaseFsckMOB.html     |    2 +-
 .../hadoop/hbase/util/TestHBaseFsckOneRS.html   |    6 +-
 .../hbase/util/TestHBaseFsckReplicas.html       |    2 +-
 .../hadoop/hbase/util/TestHBaseFsckTwoRS.html   |   30 +-
 .../TestMasterObserver.CPMasterObserver.html    | 3533 ++++----
 .../hbase/coprocessor/TestMasterObserver.html   | 3533 ++++----
 .../store/TestProcedureStoreTracker.html        |    4 +-
 .../wal/TestWALProcedureStore.LoadCounter.html  |  908 +-
 ...LProcedureStore.TestSequentialProcedure.html |  908 +-
 .../store/wal/TestWALProcedureStore.html        |  908 +-
 .../BaseTestHBaseFsck.MasterSyncObserver.html   |  673 +-
 .../BaseTestHBaseFsck.MockErrorReporter.html    |  673 +-
 .../hadoop/hbase/util/BaseTestHBaseFsck.html    |  673 +-
 .../hadoop/hbase/util/TestHBaseFsckOneRS.html   |    2 +-
 .../hadoop/hbase/util/TestHBaseFsckTwoRS.html   |   49 +-
 .../hbase/coprocessor/TestMasterObserver.html   | 3533 ++++----
 .../store/TestProcedureStoreTracker.html        |    4 +-
 .../store/wal/TestWALProcedureStore.html        |  908 +-
 .../hadoop/hbase/util/BaseTestHBaseFsck.html    |  673 +-
 .../hadoop/hbase/util/TestHBaseFsckOneRS.html   |    2 +-
 .../hadoop/hbase/util/TestHBaseFsckTwoRS.html   |   49 +-
 xref/org/apache/hadoop/hbase/ProcedureInfo.html |  400 +-
 .../BaseMasterAndRegionObserver.html            |  890 +-
 .../hbase/coprocessor/BaseMasterObserver.html   |  906 +-
 .../hbase/coprocessor/MasterObserver.html       |   23 +-
 .../hbase/master/MasterCoprocessorHost.html     |  676 +-
 .../hadoop/hbase/master/MasterRpcServices.html  | 2088 ++---
 .../hadoop/hbase/procedure2/Procedure.html      |  255 +-
 .../hbase/procedure2/ProcedureExecutor.html     | 1895 ++---
 .../hbase/procedure2/store/ProcedureStore.html  |  300 +-
 .../procedure2/store/ProcedureStoreTracker.html |  350 +-
 .../store/wal/ProcedureWALFormat.html           |  333 +-
 .../store/wal/ProcedureWALFormatReader.html     | 1368 ++--
 .../procedure2/store/wal/WALProcedureStore.html | 1418 ++--
 .../hbase/security/access/AccessController.html |  165 +-
 .../hbase/tmpl/common/TaskMonitorTmpl.html      |   60 +-
 .../hbase/tmpl/common/TaskMonitorTmplImpl.html  |   16 +-
 .../hbase/tmpl/master/MasterStatusTmpl.html     |  270 +-
 .../hbase/tmpl/master/MasterStatusTmplImpl.html |   76 +-
 .../hbase/tmpl/regionserver/RSStatusTmpl.html   |  120 +-
 .../tmpl/regionserver/RSStatusTmplImpl.html     |   36 +-
 .../org/apache/hadoop/hbase/util/HBaseFsck.html | 7739 +++++++++---------
 .../hbase/zookeeper/MetaTableLocator.html       | 1123 ++-
 279 files changed, 119079 insertions(+), 117296 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/acid-semantics.html
----------------------------------------------------------------------
diff --git a/acid-semantics.html b/acid-semantics.html
index beb5e4c..e4ec6db 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="20160122" />
+    <meta name="Date-Revision-yyyymmdd" content="20160124" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) ACID Properties
@@ -600,7 +600,7 @@ under the License. -->
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-22</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-24</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 5d08993..e43f346 100644
Binary files a/apache_hbase_reference_guide.pdf and b/apache_hbase_reference_guide.pdf differ

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/apache_hbase_reference_guide.pdfmarks
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdfmarks b/apache_hbase_reference_guide.pdfmarks
index 5dddb48..053fb1f 100644
--- a/apache_hbase_reference_guide.pdfmarks
+++ b/apache_hbase_reference_guide.pdfmarks
@@ -2,8 +2,8 @@
   /Author (Apache HBase Team)
   /Subject ()
   /Keywords ()
-  /ModDate (D:20160122161716)
-  /CreationDate (D:20160122161716)
+  /ModDate (D:20160124152328)
+  /CreationDate (D:20160124152328)
   /Creator (Asciidoctor PDF 1.5.0.alpha.6, based on Prawn 1.2.1)
   /Producer ()
   /DOCINFO pdfmark

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/apidocs/index-all.html
----------------------------------------------------------------------
diff --git a/apidocs/index-all.html b/apidocs/index-all.html
index 02fea49..e3bd835 100644
--- a/apidocs/index-all.html
+++ b/apidocs/index-all.html
@@ -9877,7 +9877,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <dd>
 <div class="block">Procedure information</div>
 </dd>
-<dt><span class="strong"><a href="./org/apache/hadoop/hbase/ProcedureInfo.html#ProcedureInfo(long,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState,%20long,%20org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage,%20long,%20long,%20byte[])">ProcedureInfo(long, String, String, ProcedureProtos.ProcedureState, long, ErrorHandlingProtos.ForeignExceptionMessage, long, long, byte[])</a></span> - Constructor for class org.apache.hadoop.hbase.<a href="./org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a></dt>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/ProcedureInfo.html#ProcedureInfo(long,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState,%20long,%20org.apache.hadoop.hbase.util.NonceKey,%20org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage,%20long,%20long,%20byte[])">ProcedureInfo(long, String, String, ProcedureProtos.ProcedureState, long, NonceKey, ErrorHandlingProtos.ForeignExceptionMessage, long, long, byte[])</a></span> - Constructor for class org.apache.hadoop.hbase.<a href="./org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/client/HConnection.html#processBatch(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[])">processBatch(List&lt;? extends Row&gt;, TableName, ExecutorService, Object[])</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="./org/apache/hadoop/hbase/client/HConnection.html" title="interface in org.apache.hadoop.hbase.client">HConnection</a></dt>
 <dd>
@@ -12011,8 +12011,6 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <dd>
 <div class="block">Set the namespace filter regex</div>
 </dd>
-<dt><span class="strong"><a href="./org/apache/hadoop/hbase/ProcedureInfo.html#setNonceKey(org.apache.hadoop.hbase.util.NonceKey)">setNonceKey(NonceKey)</a></span> - Method in class org.apache.hadoop.hbase.<a href="./org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/HTableDescriptor.html#setNormalizationEnabled(boolean)">setNormalizationEnabled(boolean)</a></span> - Method in class org.apache.hadoop.hbase.<a href="./org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a></dt>
 <dd>
 <div class="block">Setting the table normalization enable flag.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/apidocs/org/apache/hadoop/hbase/ProcedureInfo.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/ProcedureInfo.html b/apidocs/org/apache/hadoop/hbase/ProcedureInfo.html
index 2a7cc23..3bfb466 100644
--- a/apidocs/org/apache/hadoop/hbase/ProcedureInfo.html
+++ b/apidocs/org/apache/hadoop/hbase/ProcedureInfo.html
@@ -123,11 +123,12 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><strong><a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html#ProcedureInfo(long,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState,%20long,%20org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage,%20long,%20long,%20byte[])">ProcedureInfo</a></strong>(long&nbsp;procId,
+<td class="colOne"><code><strong><a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html#ProcedureInfo(long,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState,%20long,%20org.apache.hadoop.hbase.util.NonceKey,%20org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage,%20long,%20long,%20byte[])">ProcedureInfo</a></strong>(long&nbsp;procId,
                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;procName,
                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;procOwner,
                           org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState&nbsp;procState,
                           long&nbsp;parentId,
+                          org.apache.hadoop.hbase.util.NonceKey&nbsp;nonceKey,
                           org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage&nbsp;exception,
                           long&nbsp;lastUpdate,
                           long&nbsp;startTime,
@@ -220,10 +221,6 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html#isFailed()">isFailed</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html#setNonceKey(org.apache.hadoop.hbase.util.NonceKey)">setNonceKey</a></strong>(org.apache.hadoop.hbase.util.NonceKey&nbsp;nonceKey)</code>&nbsp;</td>
-</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
@@ -246,7 +243,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="ProcedureInfo(long, java.lang.String, java.lang.String, org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState, long, org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage, long, long, byte[])">
+<a name="ProcedureInfo(long, java.lang.String, java.lang.String, org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState, long, org.apache.hadoop.hbase.util.NonceKey, org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage, long, long, byte[])">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -257,6 +254,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
              <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;procOwner,
              org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState&nbsp;procState,
              long&nbsp;parentId,
+             org.apache.hadoop.hbase.util.NonceKey&nbsp;nonceKey,
              org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage&nbsp;exception,
              long&nbsp;lastUpdate,
              long&nbsp;startTime,
@@ -277,7 +275,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>clone</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.77">clone</a>()</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.79">clone</a>()</pre>
 <dl>
 <dt><strong>Overrides:</strong></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -290,7 +288,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcId</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.82">getProcId</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.84">getProcId</a>()</pre>
 </li>
 </ul>
 <a name="getProcName()">
@@ -299,7 +297,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcName</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html#line.86">getProcName</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html#line.88">getProcName</a>()</pre>
 </li>
 </ul>
 <a name="getProcOwner()">
@@ -308,7 +306,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcOwner</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html#line.90">getProcOwner</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html#line.92">getProcOwner</a>()</pre>
 </li>
 </ul>
 <a name="getProcState()">
@@ -317,7 +315,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcState</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.94">getProcState</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.96">getProcState</a>()</pre>
 </li>
 </ul>
 <a name="hasParentId()">
@@ -326,7 +324,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>hasParentId</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.98">hasParentId</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.100">hasParentId</a>()</pre>
 </li>
 </ul>
 <a name="getParentId()">
@@ -335,7 +333,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>getParentId</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.102">getParentId</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.104">getParentId</a>()</pre>
 </li>
 </ul>
 <a name="getNonceKey()">
@@ -344,16 +342,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonceKey</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.util.NonceKey&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.106">getNonceKey</a>()</pre>
-</li>
-</ul>
-<a name="setNonceKey(org.apache.hadoop.hbase.util.NonceKey)">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>setNonceKey</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.110">setNonceKey</a>(org.apache.hadoop.hbase.util.NonceKey&nbsp;nonceKey)</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.util.NonceKey&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.108">getNonceKey</a>()</pre>
 </li>
 </ul>
 <a name="isFailed()">
@@ -362,7 +351,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>isFailed</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.114">isFailed</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.112">isFailed</a>()</pre>
 </li>
 </ul>
 <a name="getException()">
@@ -371,7 +360,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>getException</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.118">getException</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.116">getException</a>()</pre>
 </li>
 </ul>
 <a name="getExceptionCause()">
@@ -380,7 +369,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>getExceptionCause</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html#line.130">getExceptionCause</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html#line.128">getExceptionCause</a>()</pre>
 </li>
 </ul>
 <a name="getExceptionMessage()">
@@ -389,7 +378,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>getExceptionMessage</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html#line.135">getExceptionMessage</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html#line.133">getExceptionMessage</a>()</pre>
 </li>
 </ul>
 <a name="getExceptionFullMessage()">
@@ -398,7 +387,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>getExceptionFullMessage</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html#line.140">getExceptionFullMessage</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html#line.138">getExceptionFullMessage</a>()</pre>
 </li>
 </ul>
 <a name="hasResultData()">
@@ -407,7 +396,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>hasResultData</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.145">hasResultData</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.143">hasResultData</a>()</pre>
 </li>
 </ul>
 <a name="getResult()">
@@ -416,7 +405,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>getResult</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.149">getResult</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.147">getResult</a>()</pre>
 </li>
 </ul>
 <a name="getStartTime()">
@@ -425,7 +414,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>getStartTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.153">getStartTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.151">getStartTime</a>()</pre>
 </li>
 </ul>
 <a name="getLastUpdate()">
@@ -434,7 +423,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastUpdate</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.157">getLastUpdate</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.155">getLastUpdate</a>()</pre>
 </li>
 </ul>
 <a name="executionTime()">
@@ -443,7 +432,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockListLast">
 <li class="blockList">
 <h4>executionTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.161">executionTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.159">executionTime</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/apidocs/src-html/org/apache/hadoop/hbase/ProcedureInfo.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/ProcedureInfo.html b/apidocs/src-html/org/apache/hadoop/hbase/ProcedureInfo.html
index a3748d3..8178706 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/ProcedureInfo.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/ProcedureInfo.html
@@ -49,12 +49,12 @@
 <span class="sourceLineNo">041</span>  private final String procOwner;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>  private final ProcedureState procState;<a name="line.42"></a>
 <span class="sourceLineNo">043</span>  private final long parentId;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>  private final ForeignExceptionMessage exception;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  private final long lastUpdate;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  private final long startTime;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>  private final byte[] result;<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>  private NonceKey nonceKey = null;<a name="line.49"></a>
+<span class="sourceLineNo">044</span>  private final NonceKey nonceKey;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>  private final ForeignExceptionMessage exception;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  private final long lastUpdate;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  private final long startTime;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  private final byte[] result;<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
 <span class="sourceLineNo">050</span>  private long clientAckTime = -1;<a name="line.50"></a>
 <span class="sourceLineNo">051</span><a name="line.51"></a>
 <span class="sourceLineNo">052</span>  public ProcedureInfo(<a name="line.52"></a>
@@ -63,200 +63,204 @@
 <span class="sourceLineNo">055</span>      final String procOwner,<a name="line.55"></a>
 <span class="sourceLineNo">056</span>      final ProcedureState procState,<a name="line.56"></a>
 <span class="sourceLineNo">057</span>      final long parentId,<a name="line.57"></a>
-<span class="sourceLineNo">058</span>      final ForeignExceptionMessage exception,<a name="line.58"></a>
-<span class="sourceLineNo">059</span>      final long lastUpdate,<a name="line.59"></a>
-<span class="sourceLineNo">060</span>      final long startTime,<a name="line.60"></a>
-<span class="sourceLineNo">061</span>      final byte[] result) {<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    this.procId = procId;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    this.procName = procName;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    this.procOwner = procOwner;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    this.procState = procState;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    this.parentId = parentId;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    this.lastUpdate = lastUpdate;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    this.startTime = startTime;<a name="line.68"></a>
-<span class="sourceLineNo">069</span><a name="line.69"></a>
-<span class="sourceLineNo">070</span>    // If the procedure is completed, we should treat exception and result differently<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    this.exception = exception;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    this.result = result;<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>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="CN_IDIOM_NO_SUPER_CALL",<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      justification="Intentional; calling super class clone doesn't make sense here.")<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  public ProcedureInfo clone() {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    return new ProcedureInfo(<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      procId, procName, procOwner, procState, parentId, exception, lastUpdate, startTime, result);<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>  public long getProcId() {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    return procId;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  }<a name="line.84"></a>
-<span class="sourceLineNo">085</span><a name="line.85"></a>
-<span class="sourceLineNo">086</span>  public String getProcName() {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    return procName;<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>  public String getProcOwner() {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    return procOwner;<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>  public ProcedureState getProcState() {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    return procState;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  }<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>  public boolean hasParentId() {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    return (parentId != -1);<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 long getParentId() {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    return parentId;<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 NonceKey getNonceKey() {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    return nonceKey;<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 void setNonceKey(NonceKey nonceKey) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    this.nonceKey = nonceKey;<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>  public boolean isFailed() {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    return exception != null;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>  public IOException getException() {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    if (isFailed()) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      return ForeignExceptionUtil.toIOException(exception);<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    return null;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>  }<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span>  @InterfaceAudience.Private<a name="line.125"></a>
-<span class="sourceLineNo">126</span>  public ForeignExceptionMessage getForeignExceptionMessage() {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    return exception;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span>  public String getExceptionCause() {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    assert isFailed();<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    return exception.getGenericException().getClassName();<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>  public String getExceptionMessage() {<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    assert isFailed();<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    return exception.getGenericException().getMessage();<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>  public String getExceptionFullMessage() {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    assert isFailed();<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    return getExceptionCause() + " - " + getExceptionMessage();<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>  public boolean hasResultData() {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    return result != null;<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>  public byte[] getResult() {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    return result;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  }<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>  public long getStartTime() {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    return startTime;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  }<a name="line.155"></a>
-<span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>  public long getLastUpdate() {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    return lastUpdate;<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 long executionTime() {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    return lastUpdate - startTime;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  }<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>  @InterfaceAudience.Private<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public boolean hasClientAckTime() {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    return clientAckTime &gt; 0;<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>  @InterfaceAudience.Private<a name="line.170"></a>
-<span class="sourceLineNo">171</span>  public long getClientAckTime() {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    return clientAckTime;<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>  @InterfaceAudience.Private<a name="line.175"></a>
-<span class="sourceLineNo">176</span>  public void setClientAckTime(final long timestamp) {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    this.clientAckTime = timestamp;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>  /**<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   * @return Convert the current {@link ProcedureInfo} into a Protocol Buffers Procedure<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * instance.<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   */<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  @InterfaceAudience.Private<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  public static ProcedureProtos.Procedure convertToProcedureProto(<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      final ProcedureInfo procInfo) {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    ProcedureProtos.Procedure.Builder builder = ProcedureProtos.Procedure.newBuilder();<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>    builder.setClassName(procInfo.getProcName());<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    builder.setProcId(procInfo.getProcId());<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    builder.setStartTime(procInfo.getStartTime());<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    builder.setState(procInfo.getProcState());<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    builder.setLastUpdate(procInfo.getLastUpdate());<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>    if (procInfo.hasParentId()) {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      builder.setParentId(procInfo.getParentId());<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    }<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>    if (procInfo.getProcOwner() != null) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>       builder.setOwner(procInfo.getProcOwner());<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>    if (procInfo.isFailed()) {<a name="line.203"></a>
-<span class="sourceLineNo">204</span>        builder.setException(procInfo.getForeignExceptionMessage());<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    }<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>    if (procInfo.hasResultData()) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      builder.setResult(ByteStringer.wrap(procInfo.getResult()));<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    }<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>    return builder.build();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  }<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>  /**<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * Helper to convert the protobuf object.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   * @return Convert the current Protocol Buffers Procedure to {@link ProcedureInfo}<a name="line.216"></a>
-<span class="sourceLineNo">217</span>   * instance.<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   */<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  @InterfaceAudience.Private<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  public static ProcedureInfo convert(final ProcedureProtos.Procedure procProto) {<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    return new ProcedureInfo(<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      procProto.getProcId(),<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      procProto.getClassName(),<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      procProto.getOwner(),<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      procProto.getState(),<a name="line.225"></a>
-<span class="sourceLineNo">226</span>      procProto.hasParentId() ? procProto.getParentId() : -1,<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      procProto.hasException() ? procProto.getException() : null,<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      procProto.getLastUpdate(),<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      procProto.getStartTime(),<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      procProto.hasResult() ? procProto.getResult().toByteArray() : null);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  }<a name="line.231"></a>
-<span class="sourceLineNo">232</span><a name="line.232"></a>
-<span class="sourceLineNo">233</span>  /**<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   * Check if the user is this procedure's owner<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   * @param procInfo the procedure to check<a name="line.235"></a>
-<span class="sourceLineNo">236</span>   * @param user the user<a name="line.236"></a>
-<span class="sourceLineNo">237</span>   * @return true if the user is the owner of the procedure,<a name="line.237"></a>
-<span class="sourceLineNo">238</span>   *   false otherwise or the owner is unknown.<a name="line.238"></a>
-<span class="sourceLineNo">239</span>   */<a name="line.239"></a>
-<span class="sourceLineNo">240</span>  @InterfaceAudience.Private<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  public static boolean isProcedureOwner(final ProcedureInfo procInfo, final User user) {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    if (user == null) {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      return false;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    }<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    String procOwner = procInfo.getProcOwner();<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    if (procOwner == null) {<a name="line.246"></a>
+<span class="sourceLineNo">058</span>      final NonceKey nonceKey,<a name="line.58"></a>
+<span class="sourceLineNo">059</span>      final ForeignExceptionMessage exception,<a name="line.59"></a>
+<span class="sourceLineNo">060</span>      final long lastUpdate,<a name="line.60"></a>
+<span class="sourceLineNo">061</span>      final long startTime,<a name="line.61"></a>
+<span class="sourceLineNo">062</span>      final byte[] result) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    this.procId = procId;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    this.procName = procName;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    this.procOwner = procOwner;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    this.procState = procState;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    this.parentId = parentId;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    this.nonceKey = nonceKey;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    this.lastUpdate = lastUpdate;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    this.startTime = startTime;<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>    // If the procedure is completed, we should treat exception and result differently<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    this.exception = exception;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    this.result = result;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="CN_IDIOM_NO_SUPER_CALL",<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      justification="Intentional; calling super class clone doesn't make sense here.")<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  public ProcedureInfo clone() {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    return new ProcedureInfo(procId, procName, procOwner, procState, parentId, nonceKey,<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      exception, lastUpdate, startTime, result);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>  public long getProcId() {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    return procId;<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>  public String getProcName() {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    return procName;<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>  public String getProcOwner() {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    return procOwner;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public ProcedureState getProcState() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    return procState;<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 boolean hasParentId() {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    return (parentId != -1);<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>  public long getParentId() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    return parentId;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>  }<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>  public NonceKey getNonceKey() {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    return nonceKey;<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>  public boolean isFailed() {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    return exception != null;<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>  public IOException getException() {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    if (isFailed()) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      return ForeignExceptionUtil.toIOException(exception);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    return null;<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>  @InterfaceAudience.Private<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  public ForeignExceptionMessage getForeignExceptionMessage() {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    return exception;<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>  public String getExceptionCause() {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    assert isFailed();<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    return exception.getGenericException().getClassName();<a name="line.130"></a>
+<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>  public String getExceptionMessage() {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    assert isFailed();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    return exception.getGenericException().getMessage();<a name="line.135"></a>
+<span class="sourceLineNo">136</span>  }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>  public String getExceptionFullMessage() {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    assert isFailed();<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    return getExceptionCause() + " - " + getExceptionMessage();<a name="line.140"></a>
+<span class="sourceLineNo">141</span>  }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>  public boolean hasResultData() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    return result != null;<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>  public byte[] getResult() {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    return result;<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>  public long getStartTime() {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    return startTime;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  }<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  public long getLastUpdate() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    return lastUpdate;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>  }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  public long executionTime() {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    return lastUpdate - startTime;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>  }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>  @InterfaceAudience.Private<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  public boolean hasClientAckTime() {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    return clientAckTime &gt; 0;<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>  @InterfaceAudience.Private<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  public long getClientAckTime() {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    return clientAckTime;<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>  @InterfaceAudience.Private<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  public void setClientAckTime(final long timestamp) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    this.clientAckTime = timestamp;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  }<a name="line.176"></a>
+<span class="sourceLineNo">177</span><a name="line.177"></a>
+<span class="sourceLineNo">178</span>  /**<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   * @return Convert the current {@link ProcedureInfo} into a Protocol Buffers Procedure<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * instance.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  @InterfaceAudience.Private<a name="line.182"></a>
+<span class="sourceLineNo">183</span>  public static ProcedureProtos.Procedure convertToProcedureProto(<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      final ProcedureInfo procInfo) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    ProcedureProtos.Procedure.Builder builder = ProcedureProtos.Procedure.newBuilder();<a name="line.185"></a>
+<span class="sourceLineNo">186</span><a name="line.186"></a>
+<span class="sourceLineNo">187</span>    builder.setClassName(procInfo.getProcName());<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    builder.setProcId(procInfo.getProcId());<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    builder.setStartTime(procInfo.getStartTime());<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    builder.setState(procInfo.getProcState());<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    builder.setLastUpdate(procInfo.getLastUpdate());<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>    if (procInfo.hasParentId()) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      builder.setParentId(procInfo.getParentId());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>    if (procInfo.getProcOwner() != null) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>       builder.setOwner(procInfo.getProcOwner());<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>    if (procInfo.isFailed()) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        builder.setException(procInfo.getForeignExceptionMessage());<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>    if (procInfo.hasResultData()) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      builder.setResult(ByteStringer.wrap(procInfo.getResult()));<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    }<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>    return builder.build();<a name="line.209"></a>
+<span class="sourceLineNo">210</span>  }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>  /**<a name="line.212"></a>
+<span class="sourceLineNo">213</span>   * Helper to convert the protobuf object.<a name="line.213"></a>
+<span class="sourceLineNo">214</span>   * @return Convert the current Protocol Buffers Procedure to {@link ProcedureInfo}<a name="line.214"></a>
+<span class="sourceLineNo">215</span>   * instance.<a name="line.215"></a>
+<span class="sourceLineNo">216</span>   */<a name="line.216"></a>
+<span class="sourceLineNo">217</span>  @InterfaceAudience.Private<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  public static ProcedureInfo convert(final ProcedureProtos.Procedure procProto) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    NonceKey nonceKey = null;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    if (procProto.getNonce() != HConstants.NO_NONCE) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      nonceKey = new NonceKey(procProto.getNonceGroup(), procProto.getNonce());<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>    return new ProcedureInfo(<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      procProto.getProcId(),<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      procProto.getClassName(),<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      procProto.getOwner(),<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      procProto.getState(),<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      procProto.hasParentId() ? procProto.getParentId() : -1,<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      nonceKey,<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      procProto.hasException() ? procProto.getException() : null,<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      procProto.getLastUpdate(),<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      procProto.getStartTime(),<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      procProto.hasResult() ? procProto.getResult().toByteArray() : null);<a name="line.234"></a>
+<span class="sourceLineNo">235</span>  }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>  /**<a name="line.237"></a>
+<span class="sourceLineNo">238</span>   * Check if the user is this procedure's owner<a name="line.238"></a>
+<span class="sourceLineNo">239</span>   * @param procInfo the procedure to check<a name="line.239"></a>
+<span class="sourceLineNo">240</span>   * @param user the user<a name="line.240"></a>
+<span class="sourceLineNo">241</span>   * @return true if the user is the owner of the procedure,<a name="line.241"></a>
+<span class="sourceLineNo">242</span>   *   false otherwise or the owner is unknown.<a name="line.242"></a>
+<span class="sourceLineNo">243</span>   */<a name="line.243"></a>
+<span class="sourceLineNo">244</span>  @InterfaceAudience.Private<a name="line.244"></a>
+<span class="sourceLineNo">245</span>  public static boolean isProcedureOwner(final ProcedureInfo procInfo, final User user) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    if (user == null) {<a name="line.246"></a>
 <span class="sourceLineNo">247</span>      return false;<a name="line.247"></a>
 <span class="sourceLineNo">248</span>    }<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    return procOwner.equals(user.getShortName());<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">249</span>    String procOwner = procInfo.getProcOwner();<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    if (procOwner == null) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      return false;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    return procOwner.equals(user.getShortName());<a name="line.253"></a>
+<span class="sourceLineNo">254</span>  }<a name="line.254"></a>
+<span class="sourceLineNo">255</span>}<a name="line.255"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index c146003..a06ecf1 100644
--- a/book.html
+++ b/book.html
@@ -32933,7 +32933,7 @@ The server will return cellblocks compressed using this same compressor as long
 <div id="footer">
 <div id="footer-text">
 Version 2.0.0-SNAPSHOT<br>
-Last updated 2016-01-22 15:48:40 UTC
+Last updated 2016-01-24 14:56:38 UTC
 </div>
 </div>
 </body>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index 2689acf..9431167 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="20160122" />
+    <meta name="Date-Revision-yyyymmdd" content="20160124" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -305,7 +305,7 @@ under the License. -->
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-22</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-24</li>
             </p>
                 </div>
 


[46/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html b/devapidocs/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html
index 4791324..2dd82f3 100644
--- a/devapidocs/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html
+++ b/devapidocs/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html
@@ -337,26 +337,34 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                                  <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                                  <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)</code>
+<div class="block">called after dispatching the region merge request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postEnableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the enableTable operation has been requested.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postEnableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the enableTable operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postGetNamespaceDescriptor(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postGetNamespaceDescriptor</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                     <a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
 <div class="block">Called after a getNamespaceDescriptor request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postGetTableDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.util.List,%20java.lang.String)">postGetTableDescriptors</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                               <a href="http://docs.oracle.com/javase/7/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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNamesList,
@@ -365,7 +373,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after a getTableDescriptors request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postGetTableNames(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.lang.String)">postGetTableNames</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
@@ -373,28 +381,28 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after a getTableNames request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postListNamespaceDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListNamespaceDescriptors</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                         <a href="http://docs.oracle.com/javase/7/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/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;&nbsp;descriptors)</code>
 <div class="block">Called after a listNamespaceDescriptors request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postListProcedures(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListProcedures</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     <a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&gt;&nbsp;procInfoList)</code>
 <div class="block">Called after a listProcedures request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postListSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">postListSnapshot</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)</code>
 <div class="block">Called after listSnapshots request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumn</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -402,7 +410,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamily</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -410,7 +418,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the column family has been updated.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamilyHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                           <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -418,7 +426,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the column family has been updated.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -426,14 +434,14 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postModifyNamespace</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                       <a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
 <div class="block">Called after the modifyNamespace operation has been requested.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -441,7 +449,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the modifyTable operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -449,7 +457,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after to modifying a table's properties.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">postMove</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
@@ -458,14 +466,14 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the region move has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postRegionOffline(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">postRegionOffline</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>
 <div class="block">Called after the region has been marked offline.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postRestoreSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postRestoreSnapshot</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                       org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
@@ -473,7 +481,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after a snapshot restore operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postSetNamespaceQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetNamespaceQuota</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
@@ -481,7 +489,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the quota for the namespace is stored.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postSetTableQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetTableQuota</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -489,7 +497,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the quota for the table is stored.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -497,7 +505,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the quota for the user is stored.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -506,7 +514,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the quota for the user on the specified namespace is stored.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -515,7 +523,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the quota for the user on the specified table is stored.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postSnapshot</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
@@ -523,28 +531,28 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the snapshot operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postStartMaster(org.apache.hadoop.hbase.coprocessor.ObserverContext)">postStartMaster</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called immediately after an active master instance has completed
  initialization.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postTableFlush(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postTableFlush</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the table memstore is flushed to disk.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postTruncateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postTruncateTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the truncateTable operation has been requested.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postTruncateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postTruncateTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                 <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
@@ -552,7 +560,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
  table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postUnassign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20boolean)">postUnassign</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,
@@ -560,7 +568,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the region unassignment has been requested.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preAbortProcedure(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.procedure2.ProcedureExecutor,%20long)">preAbortProcedure</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&gt;&nbsp;procEnv,
@@ -568,7 +576,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called before a abortProcedure request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preAddColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumn</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -576,7 +584,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preAddColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumnFamily</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -584,7 +592,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called prior to adding a new column family to the table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preAddColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumnFamilyHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                   <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -592,7 +600,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called prior to adding a new column family to the table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preAddColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumnHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                       <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -600,28 +608,28 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preAssign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">preAssign</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>
 <div class="block">Called prior to assigning a specific region.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preBalance(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preBalance</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called prior to requesting rebalancing of the cluster regions, though after
  the initial checks for regions in transition and the balance switch flag.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preBalanceSwitch(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20boolean)">preBalanceSwitch</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 boolean&nbsp;b)</code>
 <div class="block">Called prior to modifying the flag used to enable/disable region balancing.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preCloneSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">preCloneSnapshot</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
@@ -629,7 +637,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called before a snapshot is cloned.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preCreateNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">preCreateNamespace</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     <a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
@@ -637,7 +645,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
  <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preCreateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;desc,
@@ -646,7 +654,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
  <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preCreateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;desc,
@@ -655,7 +663,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
  <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preDeleteColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumn</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -663,7 +671,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preDeleteColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumnFamily</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -671,7 +679,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called prior to deleting the entire column family.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preDeleteColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumnFamilyHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                         <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -679,7 +687,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called prior to deleting the entire column family.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preDeleteColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumnHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -687,7 +695,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preDeleteNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String)">preDeleteNamespace</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace)</code>
@@ -696,14 +704,14 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
  It can't bypass the default action, e.g., ctx.bypass() won't have effect.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preDeleteSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">preDeleteSnapshot</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)</code>
 <div class="block">Called before a snapshot is deleted.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preDeleteTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDeleteTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
@@ -711,7 +719,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
  table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preDeleteTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDeleteTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
@@ -719,20 +727,28 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
  table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preDisableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDisableTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to disabling a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preDisableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDisableTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to disabling a table.</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">preDispatchMerge</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                                <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                                <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)</code>
+<div class="block">Called before dispatching region merge request.</div>
+</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preEnableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preEnableTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
@@ -1107,13 +1123,54 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <dd><code><a href="http://docs.oracle.com/javase/7/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="preDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext, org.apache.hadoop.hbase.HRegionInfo, org.apache.hadoop.hbase.HRegionInfo)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>preDispatchMerge</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.68">preDispatchMerge</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                    <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                    <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)
+                      throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">MasterObserver</a></code></strong></div>
+<div class="block">Called before dispatching region merge request. 
+ It can't bypass the default action, e.g., ctx.bypass() won't have effect.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">preDispatchMerge</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ctx</code> - coprocessor environment</dd><dd><code>regionA</code> - first region to be merged</dd><dd><code>regionB</code> - second region to be merged</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if an error occurred on the coprocessor</dd></dl>
+</li>
+</ul>
+<a name="postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext, org.apache.hadoop.hbase.HRegionInfo, org.apache.hadoop.hbase.HRegionInfo)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>postDispatchMerge</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.73">postDispatchMerge</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                     <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                     <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)
+                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">MasterObserver</a></code></strong></div>
+<div class="block">called after dispatching the region merge request.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ctx</code> - coprocessor environment</dd><dd><code>regionA</code> - first region to be merged</dd><dd><code>regionB</code> - second region to be merged</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if an error occurred on the coprocessor</dd></dl>
+</li>
+</ul>
 <a name="preDeleteTable(org.apache.hadoop.hbase.coprocessor.ObserverContext, org.apache.hadoop.hbase.TableName)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>preDeleteTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.68">preDeleteTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.78">preDeleteTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                     throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">MasterObserver</a></code></strong></div>
@@ -1134,7 +1191,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>postDeleteTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.73">postDeleteTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.83">postDeleteTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                    <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                      throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">MasterObserver</a></code></strong></div>
@@ -1154,7 +1211,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>preDeleteTableHandler</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.78">preDeleteTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.88">preDeleteTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                          <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">MasterObserver</a></code></strong></div>
@@ -1176,7 +1233,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>postDeleteTableHandler</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.84">postDeleteTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.94">postDeleteTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                           <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                             throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">MasterObserver</a></code></strong></div>
@@ -1198,7 +1255,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>preTruncateTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.90">preTruncateTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.100">preTruncateTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                     <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">MasterObserver</a></code></strong></div>
@@ -1219,7 +1276,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>postTruncateTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.95">postTruncateTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.105">postTruncateTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                      <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTruncateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">MasterObserver</a></code></strong></div>
@@ -1241,7 +1298,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>preTruncateTableHandler</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.100">preTruncateTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.110">preTruncateTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                            <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">MasterObserver</a></code></strong></div>
@@ -1263,7 +1320,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>postTruncateTableHandler</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.106">postTruncateTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.116">postTruncateTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                               throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTruncateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">MasterObserver</a></code></strong></div>
@@ -1285,7 +1342,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>preModifyTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.112">preModifyTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.122">preModifyTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                   <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)
                     throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1307,7 +1364,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>postModifyTableHandler</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.117">postModifyTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.127">postModifyTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                           <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                           <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)
                             throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1329,7 +1386,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>preModifyTableHandler</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.123">preModifyTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.133">preModifyTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                          <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                          <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)
                            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1351,7 +1408,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>postModifyTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.129">postModifyTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.139">postModifyTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                    <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                    <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)
                      throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1372,7 +1429,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>preCreateNamespace</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.134">preCreateNamespace</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.144">preCreateNamespace</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                       <a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)
                         throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">MasterObserver</a></code></strong></div>
@@ -1393,7 +1450,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>postCreateNamespace</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.140">postCreateNamespace</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#line.150">postCreateNamespace</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                        <a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)
                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" ti

<TRUNCATED>

[41/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html b/devapidocs/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html
index 777c0eb..981017b 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html
@@ -310,211 +310,221 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postEnableTable(org.apache.hadoop.hbase.TableName)">postEnableTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postDispatchMerge(org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfoA,
+                                  <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfoB)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postEnableTableHandler(org.apache.hadoop.hbase.TableName)">postEnableTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postEnableTable(org.apache.hadoop.hbase.TableName)">postEnableTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postGetNamespaceDescriptor(org.apache.hadoop.hbase.NamespaceDescriptor)">postGetNamespaceDescriptor</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postEnableTableHandler(org.apache.hadoop.hbase.TableName)">postEnableTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postGetNamespaceDescriptor(org.apache.hadoop.hbase.NamespaceDescriptor)">postGetNamespaceDescriptor</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postGetTableDescriptors(java.util.List,%20java.util.List,%20java.lang.String)">postGetTableDescriptors</a></strong>(<a href="http://docs.oracle.com/javase/7/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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNamesList,
                                               <a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
                                               <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postGetTableNames(java.util.List,%20java.lang.String)">postGetTableNames</a></strong>(<a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
                                   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postListNamespaceDescriptors(java.util.List)">postListNamespaceDescriptors</a></strong>(<a href="http://docs.oracle.com/javase/7/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/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;&nbsp;descriptors)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postListProcedures(java.util.List)">postListProcedures</a></strong>(<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&gt;&nbsp;procInfoList)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postListSnapshot(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">postListSnapshot</a></strong>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postModifyColumn(org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumn</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                 <a href="../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;columnFamily)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postModifyColumnHandler(org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                               <a href="../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;columnFamily)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postModifyNamespace(org.apache.hadoop.hbase.NamespaceDescriptor)">postModifyNamespace</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postModifyTable(org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                               <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postModifyTableHandler(org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                             <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postMove(org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">postMove</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
                 <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;srcServer,
                 <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;destServer)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postRegionOffline(org.apache.hadoop.hbase.HRegionInfo)">postRegionOffline</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postRestoreSnapshot(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postRestoreSnapshot</a></strong>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
                                       <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;hTableDescriptor)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postSetNamespaceQuota(java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetNamespaceQuota</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                                           org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postSetTableQuota(org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetTableQuota</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
                                   org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postSetUserQuota(java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
                                 org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postSetUserQuota(java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                                 org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postSetUserQuota(java.lang.String,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
                                 <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
                                 org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postSnapshot(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postSnapshot</a></strong>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
                         <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;hTableDescriptor)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postStartMaster()">postStartMaster</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postTableFlush(org.apache.hadoop.hbase.TableName)">postTableFlush</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postTruncateTable(org.apache.hadoop.hbase.TableName)">postTruncateTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postTruncateTableHandler(org.apache.hadoop.hbase.TableName)">postTruncateTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postUnassign(org.apache.hadoop.hbase.HRegionInfo,%20boolean)">postUnassign</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,
                         boolean&nbsp;force)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preAbortProcedure(org.apache.hadoop.hbase.procedure2.ProcedureExecutor,%20long)">preAbortProcedure</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&gt;&nbsp;procEnv,
                                   long&nbsp;procId)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preAddColumn(org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumn</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                         <a href="../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;columnFamily)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preAddColumnHandler(org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumnHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                       <a href="../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;columnFamily)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preAssign(org.apache.hadoop.hbase.HRegionInfo)">preAssign</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preBalance()">preBalance</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preBalanceSwitch(boolean)">preBalanceSwitch</a></strong>(boolean&nbsp;b)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preCloneSnapshot(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">preCloneSnapshot</a></strong>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
                                 <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;hTableDescriptor)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preCreateNamespace(org.apache.hadoop.hbase.NamespaceDescriptor)">preCreateNamespace</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preCreateTable(org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd,
                             <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>[]&nbsp;regions)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preCreateTableHandler(org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd,
                                           <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>[]&nbsp;regions)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preDeleteColumn(org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumn</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                               byte[]&nbsp;columnFamily)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preDeleteColumnHandler(org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumnHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                             byte[]&nbsp;columnFamily)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preDeleteNamespace(java.lang.String)">preDeleteNamespace</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespaceName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preDeleteSnapshot(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">preDeleteSnapshot</a></strong>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preDeleteTable(org.apache.hadoop.hbase.TableName)">preDeleteTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preDeleteTableHandler(org.apache.hadoop.hbase.TableName)">preDeleteTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preDisableTable(org.apache.hadoop.hbase.TableName)">preDisableTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preDisableTableHandler(org.apache.hadoop.hbase.TableName)">preDisableTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preDispatchMerge(org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">preDispatchMerge</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfoA,
+                                <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfoB)</code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preEnableTable(org.apache.hadoop.hbase.TableName)">preEnableTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
@@ -1465,13 +1475,39 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <dd><code><a href="http://docs.oracle.com/javase/7/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="preDispatchMerge(org.apache.hadoop.hbase.HRegionInfo, org.apache.hadoop.hbase.HRegionInfo)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>preDispatchMerge</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.732">preDispatchMerge</a>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfoA,
+                    <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfoB)
+                      throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl><dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/7/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="postDispatchMerge(org.apache.hadoop.hbase.HRegionInfo, org.apache.hadoop.hbase.HRegionInfo)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>postDispatchMerge</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.743">postDispatchMerge</a>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfoA,
+                     <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfoB)
+                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl><dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/7/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="preBalance()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>preBalance</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.732">preBalance</a>()
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.754">preBalance</a>()
                    throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1483,7 +1519,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postBalance</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.742">postBalance</a>(<a href="http://docs.oracle.com/javase/7/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/master/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&gt;&nbsp;plans)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.764">postBalance</a>(<a href="http://docs.oracle.com/javase/7/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/master/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&gt;&nbsp;plans)
                  throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1495,7 +1531,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preBalanceSwitch</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.752">preBalanceSwitch</a>(boolean&nbsp;b)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.774">preBalanceSwitch</a>(boolean&nbsp;b)
                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1507,7 +1543,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postBalanceSwitch</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.763">postBalanceSwitch</a>(boolean&nbsp;oldValue,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.785">postBalanceSwitch</a>(boolean&nbsp;oldValue,
                      boolean&nbsp;newValue)
                        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1520,7 +1556,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preShutdown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.774">preShutdown</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.796">preShutdown</a>()
                  throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1532,7 +1568,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preStopMaster</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.789">preStopMaster</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.811">preStopMaster</a>()
                    throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1544,7 +1580,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preMasterInitialization</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.804">preMasterInitialization</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.826">preMasterInitialization</a>()
                              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1556,7 +1592,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postStartMaster</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.814">postStartMaster</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.836">postStartMaster</a>()
                      throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1568,7 +1604,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preSnapshot</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.824">preSnapshot</a>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.846">preSnapshot</a>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
                <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;hTableDescriptor)
                  throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1581,7 +1617,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postSnapshot</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.835">postSnapshot</a>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.857">postSnapshot</a>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
                 <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;hTableDescriptor)
                   throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1594,7 +1630,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preListSnapshot</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.846">preListSnapshot</a>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.868">preListSnapshot</a>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)
                      throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1606,7 +1642,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postListSnapshot</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.856">postListSnapshot</a>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.878">postListSnapshot</a>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)
                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1618,7 +1654,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preCloneSnapshot</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.866">preCloneSnapshot</a>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.888">preCloneSnapshot</a>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
                     <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;hTableDescriptor)
                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1631,7 +1667,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postCloneSnapshot</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.877">postCloneSnapshot</a>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.899">postCloneSnapshot</a>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
                      <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;hTableDescriptor)
                        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1644,7 +1680,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preRestoreSnapshot</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.888">preRestoreSnapshot</a>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.910">preRestoreSnapshot</a>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
                       <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;hTableDescriptor)
                         throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1657,7 +1693,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postRestoreSnapshot</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.899">postRestoreSnapshot</a>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.921">postRestoreSnapshot</a>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
                        <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;hTableDescriptor)
                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1670,7 +1706,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preDeleteSnapshot</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.910">preDeleteSnapshot</a>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.932">preDeleteSnapshot</a>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)
                        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1682,7 +1718,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postDeleteSnapshot</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.920">postDeleteSnapshot</a>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.942">postDeleteSnapshot</a>(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)
                         throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1694,7 +1730,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preGetTableDescriptors</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.930">preGetTableDescriptors</a>(<a href="http://docs.oracle.com/javase/7/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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNamesList,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.952">preGetTableDescriptors</a>(<a href="http://docs.oracle.com/javase/7/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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNamesList,
                              <a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
                              <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)
                                throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1708,7 +1744,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postGetTableDescriptors</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.941">postGetTableDescriptors</a>(<a href="http://docs.oracle.com/javase/7/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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNamesList,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.963">postGetTableDescriptors</a>(<a href="http://docs.oracle.com/javase/7/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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNamesList,
                            <a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
                            <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)
                              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1722,7 +1758,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preGetTableNames</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.952">preGetTableNames</a>(<a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.974">preGetTableNames</a>(<a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
                        <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)
                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1735,7 +1771,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postGetTableNames</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.963">postGetTableNames</a>(<a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.985">postGetTableNames</a>(<a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
                      <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)
                        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1748,7 +1784,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preTableFlush</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.974">preTableFlush</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.996">preTableFlush</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                    throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1760,7 +1796,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postTableFlush</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.984">postTableFlush</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1006">postTableFlush</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                     throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1772,7 +1808,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preSetUserQuota</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.994">preSetUserQuota</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1016">preSetUserQuota</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
                    org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)
                      throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1785,7 +1821,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postSetUserQuota</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1004">postSetUserQuota</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1026">postSetUserQuota</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
                     org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)
                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1798,7 +1834,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preSetUserQuota</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1014">preSetUserQuota</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1036">preSetUserQuota</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
                    <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
                    org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)
                      throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1812,7 +1848,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postSetUserQuota</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1025">postSetUserQuota</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1047">postSetUserQuota</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
                     <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
                     org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)
                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1826,7 +1862,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preSetUserQuota</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1036">preSetUserQuota</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1058">preSetUserQuota</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
                    <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                    org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)
                      throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1840,7 +1876,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postSetUserQuota</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1047">postSetUserQuota</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1069">postSetUserQuota</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
                     <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                     org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)
                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1854,7 +1890,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preSetTableQuota</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1058">preSetTableQuota</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1080">preSetTableQuota</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
                     org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)
                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1867,7 +1903,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postSetTableQuota</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1068">postSetTableQuota</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1090">postSetTableQuota</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
                      org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)
                        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1880,7 +1916,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preSetNamespaceQuota</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1078">preSetNamespaceQuota</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1100">preSetNamespaceQuota</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                         org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)
                           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1893,7 +1929,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postSetNamespaceQuota</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1088">postSetNamespaceQuota</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1110">postSetNamespaceQuota</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                          org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)
                            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1908,7 +1944,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>execOperationWithResult</h4>
-<pre>private&nbsp;&lt;T&gt;&nbsp;T&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1116">execOperationWithResult</a>(T&nbsp;defaultValue,
+<pre>private&nbsp;&lt;T&gt;&nbsp;T&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1138">execOperationWithResult</a>(T&nbsp;defaultValue,
                             <a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost.CoprocessorOperationWithResult</a>&lt;T&gt;&nbsp;ctx)
                            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1921,7 +1957,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockListLast">
 <li class="blockList">
 <h4>execOperation</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1124">execOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperation.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost.CoprocessorOperation</a>&nbsp;ctx)
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1146">execOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperation.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost.CoprocessorOperation</a>&nbsp;ctx)
                        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>


[20/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.html
index 8737ad5..6535576 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.html
@@ -648,152 +648,141 @@
 <span class="sourceLineNo">640</span>   */<a name="line.640"></a>
 <span class="sourceLineNo">641</span>  @InterfaceAudience.Private<a name="line.641"></a>
 <span class="sourceLineNo">642</span>  public static ProcedureInfo createProcedureInfo(final Procedure proc, final NonceKey nonceKey) {<a name="line.642"></a>
-<span class="sourceLineNo">643</span>    RemoteProcedureException exception;<a name="line.643"></a>
-<span class="sourceLineNo">644</span><a name="line.644"></a>
-<span class="sourceLineNo">645</span>    if (proc.hasException()) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>      exception = proc.getException();<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    } else {<a name="line.647"></a>
-<span class="sourceLineNo">648</span>      exception = null;<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    }<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    ProcedureInfo procInfo = new ProcedureInfo(<a name="line.650"></a>
-<span class="sourceLineNo">651</span>      proc.getProcId(),<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      proc.toStringClass(),<a name="line.652"></a>
-<span class="sourceLineNo">653</span>      proc.getOwner(),<a name="line.653"></a>
-<span class="sourceLineNo">654</span>      proc.getState(),<a name="line.654"></a>
-<span class="sourceLineNo">655</span>      proc.hasParent() ? proc.getParentProcId() : -1,<a name="line.655"></a>
-<span class="sourceLineNo">656</span>      exception != null ?<a name="line.656"></a>
-<span class="sourceLineNo">657</span>          RemoteProcedureException.toProto(exception.getSource(), exception.getCause()) : null,<a name="line.657"></a>
-<span class="sourceLineNo">658</span>      proc.getLastUpdate(),<a name="line.658"></a>
-<span class="sourceLineNo">659</span>      proc.getStartTime(),<a name="line.659"></a>
-<span class="sourceLineNo">660</span>      proc.getResult());<a name="line.660"></a>
-<span class="sourceLineNo">661</span><a name="line.661"></a>
-<span class="sourceLineNo">662</span>    if (nonceKey != null) {<a name="line.662"></a>
-<span class="sourceLineNo">663</span>      procInfo.setNonceKey(nonceKey);<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>    return procInfo;<a name="line.666"></a>
-<span class="sourceLineNo">667</span>  }<a name="line.667"></a>
-<span class="sourceLineNo">668</span><a name="line.668"></a>
-<span class="sourceLineNo">669</span>  /**<a name="line.669"></a>
-<span class="sourceLineNo">670</span>   * Helper to convert the procedure to protobuf.<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   * Used by ProcedureStore implementations.<a name="line.671"></a>
-<span class="sourceLineNo">672</span>   */<a name="line.672"></a>
-<span class="sourceLineNo">673</span>  @InterfaceAudience.Private<a name="line.673"></a>
-<span class="sourceLineNo">674</span>  public static ProcedureProtos.Procedure convert(final Procedure proc)<a name="line.674"></a>
-<span class="sourceLineNo">675</span>      throws IOException {<a name="line.675"></a>
-<span class="sourceLineNo">676</span>    Preconditions.checkArgument(proc != null);<a name="line.676"></a>
-<span class="sourceLineNo">677</span>    validateClass(proc);<a name="line.677"></a>
+<span class="sourceLineNo">643</span>    RemoteProcedureException exception = proc.hasException() ? proc.getException() : null;<a name="line.643"></a>
+<span class="sourceLineNo">644</span>    return new ProcedureInfo(<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      proc.getProcId(),<a name="line.645"></a>
+<span class="sourceLineNo">646</span>      proc.toStringClass(),<a name="line.646"></a>
+<span class="sourceLineNo">647</span>      proc.getOwner(),<a name="line.647"></a>
+<span class="sourceLineNo">648</span>      proc.getState(),<a name="line.648"></a>
+<span class="sourceLineNo">649</span>      proc.hasParent() ? proc.getParentProcId() : -1,<a name="line.649"></a>
+<span class="sourceLineNo">650</span>      nonceKey,<a name="line.650"></a>
+<span class="sourceLineNo">651</span>      exception != null ?<a name="line.651"></a>
+<span class="sourceLineNo">652</span>          RemoteProcedureException.toProto(exception.getSource(), exception.getCause()) : null,<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      proc.getLastUpdate(),<a name="line.653"></a>
+<span class="sourceLineNo">654</span>      proc.getStartTime(),<a name="line.654"></a>
+<span class="sourceLineNo">655</span>      proc.getResult());<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>   * Helper to convert the procedure to protobuf.<a name="line.659"></a>
+<span class="sourceLineNo">660</span>   * Used by ProcedureStore implementations.<a name="line.660"></a>
+<span class="sourceLineNo">661</span>   */<a name="line.661"></a>
+<span class="sourceLineNo">662</span>  @InterfaceAudience.Private<a name="line.662"></a>
+<span class="sourceLineNo">663</span>  public static ProcedureProtos.Procedure convert(final Procedure proc)<a name="line.663"></a>
+<span class="sourceLineNo">664</span>      throws IOException {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>    Preconditions.checkArgument(proc != null);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>    validateClass(proc);<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>    ProcedureProtos.Procedure.Builder builder = ProcedureProtos.Procedure.newBuilder()<a name="line.668"></a>
+<span class="sourceLineNo">669</span>      .setClassName(proc.getClass().getName())<a name="line.669"></a>
+<span class="sourceLineNo">670</span>      .setProcId(proc.getProcId())<a name="line.670"></a>
+<span class="sourceLineNo">671</span>      .setState(proc.getState())<a name="line.671"></a>
+<span class="sourceLineNo">672</span>      .setStartTime(proc.getStartTime())<a name="line.672"></a>
+<span class="sourceLineNo">673</span>      .setLastUpdate(proc.getLastUpdate());<a name="line.673"></a>
+<span class="sourceLineNo">674</span><a name="line.674"></a>
+<span class="sourceLineNo">675</span>    if (proc.hasParent()) {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>      builder.setParentId(proc.getParentProcId());<a name="line.676"></a>
+<span class="sourceLineNo">677</span>    }<a name="line.677"></a>
 <span class="sourceLineNo">678</span><a name="line.678"></a>
-<span class="sourceLineNo">679</span>    ProcedureProtos.Procedure.Builder builder = ProcedureProtos.Procedure.newBuilder()<a name="line.679"></a>
-<span class="sourceLineNo">680</span>      .setClassName(proc.getClass().getName())<a name="line.680"></a>
-<span class="sourceLineNo">681</span>      .setProcId(proc.getProcId())<a name="line.681"></a>
-<span class="sourceLineNo">682</span>      .setState(proc.getState())<a name="line.682"></a>
-<span class="sourceLineNo">683</span>      .setStartTime(proc.getStartTime())<a name="line.683"></a>
-<span class="sourceLineNo">684</span>      .setLastUpdate(proc.getLastUpdate());<a name="line.684"></a>
-<span class="sourceLineNo">685</span><a name="line.685"></a>
-<span class="sourceLineNo">686</span>    if (proc.hasParent()) {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>      builder.setParentId(proc.getParentProcId());<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>    if (proc.hasTimeout()) {<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      builder.setTimeout(proc.getTimeout());<a name="line.691"></a>
+<span class="sourceLineNo">679</span>    if (proc.hasTimeout()) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span>      builder.setTimeout(proc.getTimeout());<a name="line.680"></a>
+<span class="sourceLineNo">681</span>    }<a name="line.681"></a>
+<span class="sourceLineNo">682</span><a name="line.682"></a>
+<span class="sourceLineNo">683</span>    if (proc.hasOwner()) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>      builder.setOwner(proc.getOwner());<a name="line.684"></a>
+<span class="sourceLineNo">685</span>    }<a name="line.685"></a>
+<span class="sourceLineNo">686</span><a name="line.686"></a>
+<span class="sourceLineNo">687</span>    int[] stackIds = proc.getStackIndexes();<a name="line.687"></a>
+<span class="sourceLineNo">688</span>    if (stackIds != null) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>      for (int i = 0; i &lt; stackIds.length; ++i) {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>        builder.addStackId(stackIds[i]);<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><a name="line.693"></a>
-<span class="sourceLineNo">694</span>    if (proc.hasOwner()) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>      builder.setOwner(proc.getOwner());<a name="line.695"></a>
-<span class="sourceLineNo">696</span>    }<a name="line.696"></a>
-<span class="sourceLineNo">697</span><a name="line.697"></a>
-<span class="sourceLineNo">698</span>    int[] stackIds = proc.getStackIndexes();<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    if (stackIds != null) {<a name="line.699"></a>
-<span class="sourceLineNo">700</span>      for (int i = 0; i &lt; stackIds.length; ++i) {<a name="line.700"></a>
-<span class="sourceLineNo">701</span>        builder.addStackId(stackIds[i]);<a name="line.701"></a>
-<span class="sourceLineNo">702</span>      }<a name="line.702"></a>
+<span class="sourceLineNo">694</span>    if (proc.hasException()) {<a name="line.694"></a>
+<span class="sourceLineNo">695</span>      RemoteProcedureException exception = proc.getException();<a name="line.695"></a>
+<span class="sourceLineNo">696</span>      builder.setException(<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        RemoteProcedureException.toProto(exception.getSource(), exception.getCause()));<a name="line.697"></a>
+<span class="sourceLineNo">698</span>    }<a name="line.698"></a>
+<span class="sourceLineNo">699</span><a name="line.699"></a>
+<span class="sourceLineNo">700</span>    byte[] result = proc.getResult();<a name="line.700"></a>
+<span class="sourceLineNo">701</span>    if (result != null) {<a name="line.701"></a>
+<span class="sourceLineNo">702</span>      builder.setResult(ByteStringer.wrap(result));<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>    if (proc.hasException()) {<a name="line.705"></a>
-<span class="sourceLineNo">706</span>      RemoteProcedureException exception = proc.getException();<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      builder.setException(<a name="line.707"></a>
-<span class="sourceLineNo">708</span>        RemoteProcedureException.toProto(exception.getSource(), exception.getCause()));<a name="line.708"></a>
+<span class="sourceLineNo">705</span>    ByteString.Output stateStream = ByteString.newOutput();<a name="line.705"></a>
+<span class="sourceLineNo">706</span>    proc.serializeStateData(stateStream);<a name="line.706"></a>
+<span class="sourceLineNo">707</span>    if (stateStream.size() &gt; 0) {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>      builder.setStateData(stateStream.toByteString());<a name="line.708"></a>
 <span class="sourceLineNo">709</span>    }<a name="line.709"></a>
 <span class="sourceLineNo">710</span><a name="line.710"></a>
-<span class="sourceLineNo">711</span>    byte[] result = proc.getResult();<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    if (result != null) {<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      builder.setResult(ByteStringer.wrap(result));<a name="line.713"></a>
+<span class="sourceLineNo">711</span>    if (proc.getNonceKey() != null) {<a name="line.711"></a>
+<span class="sourceLineNo">712</span>      builder.setNonceGroup(proc.getNonceKey().getNonceGroup());<a name="line.712"></a>
+<span class="sourceLineNo">713</span>      builder.setNonce(proc.getNonceKey().getNonce());<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>    ByteString.Output stateStream = ByteString.newOutput();<a name="line.716"></a>
-<span class="sourceLineNo">717</span>    proc.serializeStateData(stateStream);<a name="line.717"></a>
-<span class="sourceLineNo">718</span>    if (stateStream.size() &gt; 0) {<a name="line.718"></a>
-<span class="sourceLineNo">719</span>      builder.setStateData(stateStream.toByteString());<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    }<a name="line.720"></a>
-<span class="sourceLineNo">721</span><a name="line.721"></a>
-<span class="sourceLineNo">722</span>    if (proc.getNonceKey() != null) {<a name="line.722"></a>
-<span class="sourceLineNo">723</span>      builder.setNonceGroup(proc.getNonceKey().getNonceGroup());<a name="line.723"></a>
-<span class="sourceLineNo">724</span>      builder.setNonce(proc.getNonceKey().getNonce());<a name="line.724"></a>
-<span class="sourceLineNo">725</span>    }<a name="line.725"></a>
-<span class="sourceLineNo">726</span><a name="line.726"></a>
-<span class="sourceLineNo">727</span>    return builder.build();<a name="line.727"></a>
-<span class="sourceLineNo">728</span>  }<a name="line.728"></a>
-<span class="sourceLineNo">729</span><a name="line.729"></a>
-<span class="sourceLineNo">730</span>  /**<a name="line.730"></a>
-<span class="sourceLineNo">731</span>   * Helper to convert the protobuf procedure.<a name="line.731"></a>
-<span class="sourceLineNo">732</span>   * Used by ProcedureStore implementations.<a name="line.732"></a>
-<span class="sourceLineNo">733</span>   *<a name="line.733"></a>
-<span class="sourceLineNo">734</span>   * TODO: OPTIMIZATION: some of the field never change during the execution<a name="line.734"></a>
-<span class="sourceLineNo">735</span>   *                     (e.g. className, procId, parentId, ...).<a name="line.735"></a>
-<span class="sourceLineNo">736</span>   *                     We can split in 'data' and 'state', and the store<a name="line.736"></a>
-<span class="sourceLineNo">737</span>   *                     may take advantage of it by storing the data only on insert().<a name="line.737"></a>
-<span class="sourceLineNo">738</span>   */<a name="line.738"></a>
-<span class="sourceLineNo">739</span>  @InterfaceAudience.Private<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  public static Procedure convert(final ProcedureProtos.Procedure proto)<a name="line.740"></a>
-<span class="sourceLineNo">741</span>      throws IOException {<a name="line.741"></a>
-<span class="sourceLineNo">742</span>    // Procedure from class name<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    Procedure proc = Procedure.newInstance(proto.getClassName());<a name="line.743"></a>
-<span class="sourceLineNo">744</span><a name="line.744"></a>
-<span class="sourceLineNo">745</span>    // set fields<a name="line.745"></a>
-<span class="sourceLineNo">746</span>    proc.setProcId(proto.getProcId());<a name="line.746"></a>
-<span class="sourceLineNo">747</span>    proc.setState(proto.getState());<a name="line.747"></a>
-<span class="sourceLineNo">748</span>    proc.setStartTime(proto.getStartTime());<a name="line.748"></a>
-<span class="sourceLineNo">749</span>    proc.setLastUpdate(proto.getLastUpdate());<a name="line.749"></a>
-<span class="sourceLineNo">750</span><a name="line.750"></a>
-<span class="sourceLineNo">751</span>    if (proto.hasParentId()) {<a name="line.751"></a>
-<span class="sourceLineNo">752</span>      proc.setParentProcId(proto.getParentId());<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    }<a name="line.753"></a>
-<span class="sourceLineNo">754</span><a name="line.754"></a>
-<span class="sourceLineNo">755</span>    if (proto.hasOwner()) {<a name="line.755"></a>
-<span class="sourceLineNo">756</span>      proc.setOwner(proto.getOwner());<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    }<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>    if (proto.hasTimeout()) {<a name="line.759"></a>
-<span class="sourceLineNo">760</span>      proc.setTimeout(proto.getTimeout());<a name="line.760"></a>
+<span class="sourceLineNo">716</span>    return builder.build();<a name="line.716"></a>
+<span class="sourceLineNo">717</span>  }<a name="line.717"></a>
+<span class="sourceLineNo">718</span><a name="line.718"></a>
+<span class="sourceLineNo">719</span>  /**<a name="line.719"></a>
+<span class="sourceLineNo">720</span>   * Helper to convert the protobuf procedure.<a name="line.720"></a>
+<span class="sourceLineNo">721</span>   * Used by ProcedureStore implementations.<a name="line.721"></a>
+<span class="sourceLineNo">722</span>   *<a name="line.722"></a>
+<span class="sourceLineNo">723</span>   * TODO: OPTIMIZATION: some of the field never change during the execution<a name="line.723"></a>
+<span class="sourceLineNo">724</span>   *                     (e.g. className, procId, parentId, ...).<a name="line.724"></a>
+<span class="sourceLineNo">725</span>   *                     We can split in 'data' and 'state', and the store<a name="line.725"></a>
+<span class="sourceLineNo">726</span>   *                     may take advantage of it by storing the data only on insert().<a name="line.726"></a>
+<span class="sourceLineNo">727</span>   */<a name="line.727"></a>
+<span class="sourceLineNo">728</span>  @InterfaceAudience.Private<a name="line.728"></a>
+<span class="sourceLineNo">729</span>  public static Procedure convert(final ProcedureProtos.Procedure proto)<a name="line.729"></a>
+<span class="sourceLineNo">730</span>      throws IOException {<a name="line.730"></a>
+<span class="sourceLineNo">731</span>    // Procedure from class name<a name="line.731"></a>
+<span class="sourceLineNo">732</span>    Procedure proc = Procedure.newInstance(proto.getClassName());<a name="line.732"></a>
+<span class="sourceLineNo">733</span><a name="line.733"></a>
+<span class="sourceLineNo">734</span>    // set fields<a name="line.734"></a>
+<span class="sourceLineNo">735</span>    proc.setProcId(proto.getProcId());<a name="line.735"></a>
+<span class="sourceLineNo">736</span>    proc.setState(proto.getState());<a name="line.736"></a>
+<span class="sourceLineNo">737</span>    proc.setStartTime(proto.getStartTime());<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    proc.setLastUpdate(proto.getLastUpdate());<a name="line.738"></a>
+<span class="sourceLineNo">739</span><a name="line.739"></a>
+<span class="sourceLineNo">740</span>    if (proto.hasParentId()) {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>      proc.setParentProcId(proto.getParentId());<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    }<a name="line.742"></a>
+<span class="sourceLineNo">743</span><a name="line.743"></a>
+<span class="sourceLineNo">744</span>    if (proto.hasOwner()) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>      proc.setOwner(proto.getOwner());<a name="line.745"></a>
+<span class="sourceLineNo">746</span>    }<a name="line.746"></a>
+<span class="sourceLineNo">747</span><a name="line.747"></a>
+<span class="sourceLineNo">748</span>    if (proto.hasTimeout()) {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>      proc.setTimeout(proto.getTimeout());<a name="line.749"></a>
+<span class="sourceLineNo">750</span>    }<a name="line.750"></a>
+<span class="sourceLineNo">751</span><a name="line.751"></a>
+<span class="sourceLineNo">752</span>    if (proto.getStackIdCount() &gt; 0) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>      proc.setStackIndexes(proto.getStackIdList());<a name="line.753"></a>
+<span class="sourceLineNo">754</span>    }<a name="line.754"></a>
+<span class="sourceLineNo">755</span><a name="line.755"></a>
+<span class="sourceLineNo">756</span>    if (proto.hasException()) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>      assert proc.getState() == ProcedureState.FINISHED ||<a name="line.757"></a>
+<span class="sourceLineNo">758</span>             proc.getState() == ProcedureState.ROLLEDBACK :<a name="line.758"></a>
+<span class="sourceLineNo">759</span>             "The procedure must be failed (waiting to rollback) or rolledback";<a name="line.759"></a>
+<span class="sourceLineNo">760</span>      proc.setFailure(RemoteProcedureException.fromProto(proto.getException()));<a name="line.760"></a>
 <span class="sourceLineNo">761</span>    }<a name="line.761"></a>
 <span class="sourceLineNo">762</span><a name="line.762"></a>
-<span class="sourceLineNo">763</span>    if (proto.getStackIdCount() &gt; 0) {<a name="line.763"></a>
-<span class="sourceLineNo">764</span>      proc.setStackIndexes(proto.getStackIdList());<a name="line.764"></a>
+<span class="sourceLineNo">763</span>    if (proto.hasResult()) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>      proc.setResult(proto.getResult().toByteArray());<a name="line.764"></a>
 <span class="sourceLineNo">765</span>    }<a name="line.765"></a>
 <span class="sourceLineNo">766</span><a name="line.766"></a>
-<span class="sourceLineNo">767</span>    if (proto.hasException()) {<a name="line.767"></a>
-<span class="sourceLineNo">768</span>      assert proc.getState() == ProcedureState.FINISHED ||<a name="line.768"></a>
-<span class="sourceLineNo">769</span>             proc.getState() == ProcedureState.ROLLEDBACK :<a name="line.769"></a>
-<span class="sourceLineNo">770</span>             "The procedure must be failed (waiting to rollback) or rolledback";<a name="line.770"></a>
-<span class="sourceLineNo">771</span>      proc.setFailure(RemoteProcedureException.fromProto(proto.getException()));<a name="line.771"></a>
-<span class="sourceLineNo">772</span>    }<a name="line.772"></a>
-<span class="sourceLineNo">773</span><a name="line.773"></a>
-<span class="sourceLineNo">774</span>    if (proto.hasResult()) {<a name="line.774"></a>
-<span class="sourceLineNo">775</span>      proc.setResult(proto.getResult().toByteArray());<a name="line.775"></a>
-<span class="sourceLineNo">776</span>    }<a name="line.776"></a>
-<span class="sourceLineNo">777</span><a name="line.777"></a>
-<span class="sourceLineNo">778</span>    if (proto.getNonce() != HConstants.NO_NONCE) {<a name="line.778"></a>
-<span class="sourceLineNo">779</span>      NonceKey nonceKey = new NonceKey(proto.getNonceGroup(), proto.getNonce());<a name="line.779"></a>
-<span class="sourceLineNo">780</span>      proc.setNonceKey(nonceKey);<a name="line.780"></a>
-<span class="sourceLineNo">781</span>    }<a name="line.781"></a>
-<span class="sourceLineNo">782</span><a name="line.782"></a>
-<span class="sourceLineNo">783</span>    // we want to call deserialize even when the stream is empty, mainly for testing.<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    proc.deserializeStateData(proto.getStateData().newInput());<a name="line.784"></a>
-<span class="sourceLineNo">785</span><a name="line.785"></a>
-<span class="sourceLineNo">786</span>    return proc;<a name="line.786"></a>
-<span class="sourceLineNo">787</span>  }<a name="line.787"></a>
-<span class="sourceLineNo">788</span>}<a name="line.788"></a>
+<span class="sourceLineNo">767</span>    if (proto.getNonce() != HConstants.NO_NONCE) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>      NonceKey nonceKey = new NonceKey(proto.getNonceGroup(), proto.getNonce());<a name="line.768"></a>
+<span class="sourceLineNo">769</span>      proc.setNonceKey(nonceKey);<a name="line.769"></a>
+<span class="sourceLineNo">770</span>    }<a name="line.770"></a>
+<span class="sourceLineNo">771</span><a name="line.771"></a>
+<span class="sourceLineNo">772</span>    // we want to call deserialize even when the stream is empty, mainly for testing.<a name="line.772"></a>
+<span class="sourceLineNo">773</span>    proc.deserializeStateData(proto.getStateData().newInput());<a name="line.773"></a>
+<span class="sourceLineNo">774</span><a name="line.774"></a>
+<span class="sourceLineNo">775</span>    return proc;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>  }<a name="line.776"></a>
+<span class="sourceLineNo">777</span>}<a name="line.777"></a>
 
 
 


[02/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html
index 446dacf..129a5d3 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html
@@ -2538,89 +2538,96 @@
 <span class="sourceLineNo">2530</span>  }<a name="line.2530"></a>
 <span class="sourceLineNo">2531</span><a name="line.2531"></a>
 <span class="sourceLineNo">2532</span>  @Override<a name="line.2532"></a>
-<span class="sourceLineNo">2533</span>  public void preMerge(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx, Region regionA,<a name="line.2533"></a>
-<span class="sourceLineNo">2534</span>      Region regionB) throws IOException {<a name="line.2534"></a>
-<span class="sourceLineNo">2535</span>    requirePermission("mergeRegions", regionA.getTableDesc().getTableName(), null, null,<a name="line.2535"></a>
+<span class="sourceLineNo">2533</span>  public void preDispatchMerge(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2533"></a>
+<span class="sourceLineNo">2534</span>      HRegionInfo regionA, HRegionInfo regionB) throws IOException {<a name="line.2534"></a>
+<span class="sourceLineNo">2535</span>    requirePermission("mergeRegions", regionA.getTable(), null, null,<a name="line.2535"></a>
 <span class="sourceLineNo">2536</span>      Action.ADMIN);<a name="line.2536"></a>
 <span class="sourceLineNo">2537</span>  }<a name="line.2537"></a>
 <span class="sourceLineNo">2538</span><a name="line.2538"></a>
 <span class="sourceLineNo">2539</span>  @Override<a name="line.2539"></a>
-<span class="sourceLineNo">2540</span>  public void postMerge(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; c, Region regionA,<a name="line.2540"></a>
-<span class="sourceLineNo">2541</span>      Region regionB, Region mergedRegion) throws IOException { }<a name="line.2541"></a>
-<span class="sourceLineNo">2542</span><a name="line.2542"></a>
-<span class="sourceLineNo">2543</span>  @Override<a name="line.2543"></a>
-<span class="sourceLineNo">2544</span>  public void preMergeCommit(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2544"></a>
-<span class="sourceLineNo">2545</span>      Region regionA, Region regionB, List&lt;Mutation&gt; metaEntries) throws IOException { }<a name="line.2545"></a>
-<span class="sourceLineNo">2546</span><a name="line.2546"></a>
-<span class="sourceLineNo">2547</span>  @Override<a name="line.2547"></a>
-<span class="sourceLineNo">2548</span>  public void postMergeCommit(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2548"></a>
-<span class="sourceLineNo">2549</span>      Region regionA, Region regionB, Region mergedRegion) throws IOException { }<a name="line.2549"></a>
-<span class="sourceLineNo">2550</span><a name="line.2550"></a>
-<span class="sourceLineNo">2551</span>  @Override<a name="line.2551"></a>
-<span class="sourceLineNo">2552</span>  public void preRollBackMerge(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2552"></a>
-<span class="sourceLineNo">2553</span>      Region regionA, Region regionB) throws IOException { }<a name="line.2553"></a>
-<span class="sourceLineNo">2554</span><a name="line.2554"></a>
-<span class="sourceLineNo">2555</span>  @Override<a name="line.2555"></a>
-<span class="sourceLineNo">2556</span>  public void postRollBackMerge(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2556"></a>
-<span class="sourceLineNo">2557</span>      Region regionA, Region regionB) throws IOException { }<a name="line.2557"></a>
-<span class="sourceLineNo">2558</span><a name="line.2558"></a>
-<span class="sourceLineNo">2559</span>  @Override<a name="line.2559"></a>
-<span class="sourceLineNo">2560</span>  public void preRollWALWriterRequest(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx)<a name="line.2560"></a>
-<span class="sourceLineNo">2561</span>      throws IOException {<a name="line.2561"></a>
-<span class="sourceLineNo">2562</span>    requirePermission("preRollLogWriterRequest", Permission.Action.ADMIN);<a name="line.2562"></a>
-<span class="sourceLineNo">2563</span>  }<a name="line.2563"></a>
-<span class="sourceLineNo">2564</span><a name="line.2564"></a>
-<span class="sourceLineNo">2565</span>  @Override<a name="line.2565"></a>
-<span class="sourceLineNo">2566</span>  public void postRollWALWriterRequest(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx)<a name="line.2566"></a>
-<span class="sourceLineNo">2567</span>      throws IOException { }<a name="line.2567"></a>
-<span class="sourceLineNo">2568</span><a name="line.2568"></a>
-<span class="sourceLineNo">2569</span>  @Override<a name="line.2569"></a>
-<span class="sourceLineNo">2570</span>  public void preSetUserQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2570"></a>
-<span class="sourceLineNo">2571</span>      final String userName, final Quotas quotas) throws IOException {<a name="line.2571"></a>
-<span class="sourceLineNo">2572</span>    requirePermission("setUserQuota", Action.ADMIN);<a name="line.2572"></a>
-<span class="sourceLineNo">2573</span>  }<a name="line.2573"></a>
-<span class="sourceLineNo">2574</span><a name="line.2574"></a>
-<span class="sourceLineNo">2575</span>  @Override<a name="line.2575"></a>
-<span class="sourceLineNo">2576</span>  public void preSetUserQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2576"></a>
-<span class="sourceLineNo">2577</span>      final String userName, final TableName tableName, final Quotas quotas) throws IOException {<a name="line.2577"></a>
-<span class="sourceLineNo">2578</span>    requirePermission("setUserTableQuota", tableName, null, null, Action.ADMIN);<a name="line.2578"></a>
-<span class="sourceLineNo">2579</span>  }<a name="line.2579"></a>
-<span class="sourceLineNo">2580</span><a name="line.2580"></a>
-<span class="sourceLineNo">2581</span>  @Override<a name="line.2581"></a>
-<span class="sourceLineNo">2582</span>  public void preSetUserQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2582"></a>
-<span class="sourceLineNo">2583</span>      final String userName, final String namespace, final Quotas quotas) throws IOException {<a name="line.2583"></a>
-<span class="sourceLineNo">2584</span>    requirePermission("setUserNamespaceQuota", Action.ADMIN);<a name="line.2584"></a>
-<span class="sourceLineNo">2585</span>  }<a name="line.2585"></a>
-<span class="sourceLineNo">2586</span><a name="line.2586"></a>
-<span class="sourceLineNo">2587</span>  @Override<a name="line.2587"></a>
-<span class="sourceLineNo">2588</span>  public void preSetTableQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2588"></a>
-<span class="sourceLineNo">2589</span>      final TableName tableName, final Quotas quotas) throws IOException {<a name="line.2589"></a>
-<span class="sourceLineNo">2590</span>    requirePermission("setTableQuota", tableName, null, null, Action.ADMIN);<a name="line.2590"></a>
-<span class="sourceLineNo">2591</span>  }<a name="line.2591"></a>
-<span class="sourceLineNo">2592</span><a name="line.2592"></a>
-<span class="sourceLineNo">2593</span>  @Override<a name="line.2593"></a>
-<span class="sourceLineNo">2594</span>  public void preSetNamespaceQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2594"></a>
-<span class="sourceLineNo">2595</span>      final String namespace, final Quotas quotas) throws IOException {<a name="line.2595"></a>
-<span class="sourceLineNo">2596</span>    requirePermission("setNamespaceQuota", Action.ADMIN);<a name="line.2596"></a>
-<span class="sourceLineNo">2597</span>  }<a name="line.2597"></a>
-<span class="sourceLineNo">2598</span><a name="line.2598"></a>
-<span class="sourceLineNo">2599</span>  @Override<a name="line.2599"></a>
-<span class="sourceLineNo">2600</span>  public ReplicationEndpoint postCreateReplicationEndPoint(<a name="line.2600"></a>
-<span class="sourceLineNo">2601</span>      ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx, ReplicationEndpoint endpoint) {<a name="line.2601"></a>
-<span class="sourceLineNo">2602</span>    return endpoint;<a name="line.2602"></a>
-<span class="sourceLineNo">2603</span>  }<a name="line.2603"></a>
-<span class="sourceLineNo">2604</span><a name="line.2604"></a>
-<span class="sourceLineNo">2605</span>  @Override<a name="line.2605"></a>
-<span class="sourceLineNo">2606</span>  public void preReplicateLogEntries(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2606"></a>
-<span class="sourceLineNo">2607</span>      List&lt;WALEntry&gt; entries, CellScanner cells) throws IOException {<a name="line.2607"></a>
-<span class="sourceLineNo">2608</span>    requirePermission("replicateLogEntries", Action.WRITE);<a name="line.2608"></a>
-<span class="sourceLineNo">2609</span>  }<a name="line.2609"></a>
-<span class="sourceLineNo">2610</span><a name="line.2610"></a>
-<span class="sourceLineNo">2611</span>  @Override<a name="line.2611"></a>
-<span class="sourceLineNo">2612</span>  public void postReplicateLogEntries(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2612"></a>
-<span class="sourceLineNo">2613</span>      List&lt;WALEntry&gt; entries, CellScanner cells) throws IOException {<a name="line.2613"></a>
-<span class="sourceLineNo">2614</span>  }<a name="line.2614"></a>
-<span class="sourceLineNo">2615</span>}<a name="line.2615"></a>
+<span class="sourceLineNo">2540</span>  public void preMerge(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx, Region regionA,<a name="line.2540"></a>
+<span class="sourceLineNo">2541</span>      Region regionB) throws IOException {<a name="line.2541"></a>
+<span class="sourceLineNo">2542</span>    requirePermission("mergeRegions", regionA.getTableDesc().getTableName(), null, null,<a name="line.2542"></a>
+<span class="sourceLineNo">2543</span>      Action.ADMIN);<a name="line.2543"></a>
+<span class="sourceLineNo">2544</span>  }<a name="line.2544"></a>
+<span class="sourceLineNo">2545</span><a name="line.2545"></a>
+<span class="sourceLineNo">2546</span>  @Override<a name="line.2546"></a>
+<span class="sourceLineNo">2547</span>  public void postMerge(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; c, Region regionA,<a name="line.2547"></a>
+<span class="sourceLineNo">2548</span>      Region regionB, Region mergedRegion) throws IOException { }<a name="line.2548"></a>
+<span class="sourceLineNo">2549</span><a name="line.2549"></a>
+<span class="sourceLineNo">2550</span>  @Override<a name="line.2550"></a>
+<span class="sourceLineNo">2551</span>  public void preMergeCommit(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2551"></a>
+<span class="sourceLineNo">2552</span>      Region regionA, Region regionB, List&lt;Mutation&gt; metaEntries) throws IOException { }<a name="line.2552"></a>
+<span class="sourceLineNo">2553</span><a name="line.2553"></a>
+<span class="sourceLineNo">2554</span>  @Override<a name="line.2554"></a>
+<span class="sourceLineNo">2555</span>  public void postMergeCommit(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2555"></a>
+<span class="sourceLineNo">2556</span>      Region regionA, Region regionB, Region mergedRegion) throws IOException { }<a name="line.2556"></a>
+<span class="sourceLineNo">2557</span><a name="line.2557"></a>
+<span class="sourceLineNo">2558</span>  @Override<a name="line.2558"></a>
+<span class="sourceLineNo">2559</span>  public void preRollBackMerge(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2559"></a>
+<span class="sourceLineNo">2560</span>      Region regionA, Region regionB) throws IOException { }<a name="line.2560"></a>
+<span class="sourceLineNo">2561</span><a name="line.2561"></a>
+<span class="sourceLineNo">2562</span>  @Override<a name="line.2562"></a>
+<span class="sourceLineNo">2563</span>  public void postRollBackMerge(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2563"></a>
+<span class="sourceLineNo">2564</span>      Region regionA, Region regionB) throws IOException { }<a name="line.2564"></a>
+<span class="sourceLineNo">2565</span><a name="line.2565"></a>
+<span class="sourceLineNo">2566</span>  @Override<a name="line.2566"></a>
+<span class="sourceLineNo">2567</span>  public void preRollWALWriterRequest(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx)<a name="line.2567"></a>
+<span class="sourceLineNo">2568</span>      throws IOException {<a name="line.2568"></a>
+<span class="sourceLineNo">2569</span>    requirePermission("preRollLogWriterRequest", Permission.Action.ADMIN);<a name="line.2569"></a>
+<span class="sourceLineNo">2570</span>  }<a name="line.2570"></a>
+<span class="sourceLineNo">2571</span><a name="line.2571"></a>
+<span class="sourceLineNo">2572</span>  @Override<a name="line.2572"></a>
+<span class="sourceLineNo">2573</span>  public void postRollWALWriterRequest(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx)<a name="line.2573"></a>
+<span class="sourceLineNo">2574</span>      throws IOException { }<a name="line.2574"></a>
+<span class="sourceLineNo">2575</span><a name="line.2575"></a>
+<span class="sourceLineNo">2576</span>  @Override<a name="line.2576"></a>
+<span class="sourceLineNo">2577</span>  public void preSetUserQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2577"></a>
+<span class="sourceLineNo">2578</span>      final String userName, final Quotas quotas) throws IOException {<a name="line.2578"></a>
+<span class="sourceLineNo">2579</span>    requirePermission("setUserQuota", Action.ADMIN);<a name="line.2579"></a>
+<span class="sourceLineNo">2580</span>  }<a name="line.2580"></a>
+<span class="sourceLineNo">2581</span><a name="line.2581"></a>
+<span class="sourceLineNo">2582</span>  @Override<a name="line.2582"></a>
+<span class="sourceLineNo">2583</span>  public void preSetUserQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2583"></a>
+<span class="sourceLineNo">2584</span>      final String userName, final TableName tableName, final Quotas quotas) throws IOException {<a name="line.2584"></a>
+<span class="sourceLineNo">2585</span>    requirePermission("setUserTableQuota", tableName, null, null, Action.ADMIN);<a name="line.2585"></a>
+<span class="sourceLineNo">2586</span>  }<a name="line.2586"></a>
+<span class="sourceLineNo">2587</span><a name="line.2587"></a>
+<span class="sourceLineNo">2588</span>  @Override<a name="line.2588"></a>
+<span class="sourceLineNo">2589</span>  public void preSetUserQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2589"></a>
+<span class="sourceLineNo">2590</span>      final String userName, final String namespace, final Quotas quotas) throws IOException {<a name="line.2590"></a>
+<span class="sourceLineNo">2591</span>    requirePermission("setUserNamespaceQuota", Action.ADMIN);<a name="line.2591"></a>
+<span class="sourceLineNo">2592</span>  }<a name="line.2592"></a>
+<span class="sourceLineNo">2593</span><a name="line.2593"></a>
+<span class="sourceLineNo">2594</span>  @Override<a name="line.2594"></a>
+<span class="sourceLineNo">2595</span>  public void preSetTableQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2595"></a>
+<span class="sourceLineNo">2596</span>      final TableName tableName, final Quotas quotas) throws IOException {<a name="line.2596"></a>
+<span class="sourceLineNo">2597</span>    requirePermission("setTableQuota", tableName, null, null, Action.ADMIN);<a name="line.2597"></a>
+<span class="sourceLineNo">2598</span>  }<a name="line.2598"></a>
+<span class="sourceLineNo">2599</span><a name="line.2599"></a>
+<span class="sourceLineNo">2600</span>  @Override<a name="line.2600"></a>
+<span class="sourceLineNo">2601</span>  public void preSetNamespaceQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2601"></a>
+<span class="sourceLineNo">2602</span>      final String namespace, final Quotas quotas) throws IOException {<a name="line.2602"></a>
+<span class="sourceLineNo">2603</span>    requirePermission("setNamespaceQuota", Action.ADMIN);<a name="line.2603"></a>
+<span class="sourceLineNo">2604</span>  }<a name="line.2604"></a>
+<span class="sourceLineNo">2605</span><a name="line.2605"></a>
+<span class="sourceLineNo">2606</span>  @Override<a name="line.2606"></a>
+<span class="sourceLineNo">2607</span>  public ReplicationEndpoint postCreateReplicationEndPoint(<a name="line.2607"></a>
+<span class="sourceLineNo">2608</span>      ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx, ReplicationEndpoint endpoint) {<a name="line.2608"></a>
+<span class="sourceLineNo">2609</span>    return endpoint;<a name="line.2609"></a>
+<span class="sourceLineNo">2610</span>  }<a name="line.2610"></a>
+<span class="sourceLineNo">2611</span><a name="line.2611"></a>
+<span class="sourceLineNo">2612</span>  @Override<a name="line.2612"></a>
+<span class="sourceLineNo">2613</span>  public void preReplicateLogEntries(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2613"></a>
+<span class="sourceLineNo">2614</span>      List&lt;WALEntry&gt; entries, CellScanner cells) throws IOException {<a name="line.2614"></a>
+<span class="sourceLineNo">2615</span>    requirePermission("replicateLogEntries", Action.WRITE);<a name="line.2615"></a>
+<span class="sourceLineNo">2616</span>  }<a name="line.2616"></a>
+<span class="sourceLineNo">2617</span><a name="line.2617"></a>
+<span class="sourceLineNo">2618</span>  @Override<a name="line.2618"></a>
+<span class="sourceLineNo">2619</span>  public void postReplicateLogEntries(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2619"></a>
+<span class="sourceLineNo">2620</span>      List&lt;WALEntry&gt; entries, CellScanner cells) throws IOException {<a name="line.2620"></a>
+<span class="sourceLineNo">2621</span>  }<a name="line.2621"></a>
+<span class="sourceLineNo">2622</span>}<a name="line.2622"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.html b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.html
index 446dacf..129a5d3 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.html
@@ -2538,89 +2538,96 @@
 <span class="sourceLineNo">2530</span>  }<a name="line.2530"></a>
 <span class="sourceLineNo">2531</span><a name="line.2531"></a>
 <span class="sourceLineNo">2532</span>  @Override<a name="line.2532"></a>
-<span class="sourceLineNo">2533</span>  public void preMerge(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx, Region regionA,<a name="line.2533"></a>
-<span class="sourceLineNo">2534</span>      Region regionB) throws IOException {<a name="line.2534"></a>
-<span class="sourceLineNo">2535</span>    requirePermission("mergeRegions", regionA.getTableDesc().getTableName(), null, null,<a name="line.2535"></a>
+<span class="sourceLineNo">2533</span>  public void preDispatchMerge(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2533"></a>
+<span class="sourceLineNo">2534</span>      HRegionInfo regionA, HRegionInfo regionB) throws IOException {<a name="line.2534"></a>
+<span class="sourceLineNo">2535</span>    requirePermission("mergeRegions", regionA.getTable(), null, null,<a name="line.2535"></a>
 <span class="sourceLineNo">2536</span>      Action.ADMIN);<a name="line.2536"></a>
 <span class="sourceLineNo">2537</span>  }<a name="line.2537"></a>
 <span class="sourceLineNo">2538</span><a name="line.2538"></a>
 <span class="sourceLineNo">2539</span>  @Override<a name="line.2539"></a>
-<span class="sourceLineNo">2540</span>  public void postMerge(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; c, Region regionA,<a name="line.2540"></a>
-<span class="sourceLineNo">2541</span>      Region regionB, Region mergedRegion) throws IOException { }<a name="line.2541"></a>
-<span class="sourceLineNo">2542</span><a name="line.2542"></a>
-<span class="sourceLineNo">2543</span>  @Override<a name="line.2543"></a>
-<span class="sourceLineNo">2544</span>  public void preMergeCommit(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2544"></a>
-<span class="sourceLineNo">2545</span>      Region regionA, Region regionB, List&lt;Mutation&gt; metaEntries) throws IOException { }<a name="line.2545"></a>
-<span class="sourceLineNo">2546</span><a name="line.2546"></a>
-<span class="sourceLineNo">2547</span>  @Override<a name="line.2547"></a>
-<span class="sourceLineNo">2548</span>  public void postMergeCommit(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2548"></a>
-<span class="sourceLineNo">2549</span>      Region regionA, Region regionB, Region mergedRegion) throws IOException { }<a name="line.2549"></a>
-<span class="sourceLineNo">2550</span><a name="line.2550"></a>
-<span class="sourceLineNo">2551</span>  @Override<a name="line.2551"></a>
-<span class="sourceLineNo">2552</span>  public void preRollBackMerge(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2552"></a>
-<span class="sourceLineNo">2553</span>      Region regionA, Region regionB) throws IOException { }<a name="line.2553"></a>
-<span class="sourceLineNo">2554</span><a name="line.2554"></a>
-<span class="sourceLineNo">2555</span>  @Override<a name="line.2555"></a>
-<span class="sourceLineNo">2556</span>  public void postRollBackMerge(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2556"></a>
-<span class="sourceLineNo">2557</span>      Region regionA, Region regionB) throws IOException { }<a name="line.2557"></a>
-<span class="sourceLineNo">2558</span><a name="line.2558"></a>
-<span class="sourceLineNo">2559</span>  @Override<a name="line.2559"></a>
-<span class="sourceLineNo">2560</span>  public void preRollWALWriterRequest(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx)<a name="line.2560"></a>
-<span class="sourceLineNo">2561</span>      throws IOException {<a name="line.2561"></a>
-<span class="sourceLineNo">2562</span>    requirePermission("preRollLogWriterRequest", Permission.Action.ADMIN);<a name="line.2562"></a>
-<span class="sourceLineNo">2563</span>  }<a name="line.2563"></a>
-<span class="sourceLineNo">2564</span><a name="line.2564"></a>
-<span class="sourceLineNo">2565</span>  @Override<a name="line.2565"></a>
-<span class="sourceLineNo">2566</span>  public void postRollWALWriterRequest(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx)<a name="line.2566"></a>
-<span class="sourceLineNo">2567</span>      throws IOException { }<a name="line.2567"></a>
-<span class="sourceLineNo">2568</span><a name="line.2568"></a>
-<span class="sourceLineNo">2569</span>  @Override<a name="line.2569"></a>
-<span class="sourceLineNo">2570</span>  public void preSetUserQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2570"></a>
-<span class="sourceLineNo">2571</span>      final String userName, final Quotas quotas) throws IOException {<a name="line.2571"></a>
-<span class="sourceLineNo">2572</span>    requirePermission("setUserQuota", Action.ADMIN);<a name="line.2572"></a>
-<span class="sourceLineNo">2573</span>  }<a name="line.2573"></a>
-<span class="sourceLineNo">2574</span><a name="line.2574"></a>
-<span class="sourceLineNo">2575</span>  @Override<a name="line.2575"></a>
-<span class="sourceLineNo">2576</span>  public void preSetUserQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2576"></a>
-<span class="sourceLineNo">2577</span>      final String userName, final TableName tableName, final Quotas quotas) throws IOException {<a name="line.2577"></a>
-<span class="sourceLineNo">2578</span>    requirePermission("setUserTableQuota", tableName, null, null, Action.ADMIN);<a name="line.2578"></a>
-<span class="sourceLineNo">2579</span>  }<a name="line.2579"></a>
-<span class="sourceLineNo">2580</span><a name="line.2580"></a>
-<span class="sourceLineNo">2581</span>  @Override<a name="line.2581"></a>
-<span class="sourceLineNo">2582</span>  public void preSetUserQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2582"></a>
-<span class="sourceLineNo">2583</span>      final String userName, final String namespace, final Quotas quotas) throws IOException {<a name="line.2583"></a>
-<span class="sourceLineNo">2584</span>    requirePermission("setUserNamespaceQuota", Action.ADMIN);<a name="line.2584"></a>
-<span class="sourceLineNo">2585</span>  }<a name="line.2585"></a>
-<span class="sourceLineNo">2586</span><a name="line.2586"></a>
-<span class="sourceLineNo">2587</span>  @Override<a name="line.2587"></a>
-<span class="sourceLineNo">2588</span>  public void preSetTableQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2588"></a>
-<span class="sourceLineNo">2589</span>      final TableName tableName, final Quotas quotas) throws IOException {<a name="line.2589"></a>
-<span class="sourceLineNo">2590</span>    requirePermission("setTableQuota", tableName, null, null, Action.ADMIN);<a name="line.2590"></a>
-<span class="sourceLineNo">2591</span>  }<a name="line.2591"></a>
-<span class="sourceLineNo">2592</span><a name="line.2592"></a>
-<span class="sourceLineNo">2593</span>  @Override<a name="line.2593"></a>
-<span class="sourceLineNo">2594</span>  public void preSetNamespaceQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2594"></a>
-<span class="sourceLineNo">2595</span>      final String namespace, final Quotas quotas) throws IOException {<a name="line.2595"></a>
-<span class="sourceLineNo">2596</span>    requirePermission("setNamespaceQuota", Action.ADMIN);<a name="line.2596"></a>
-<span class="sourceLineNo">2597</span>  }<a name="line.2597"></a>
-<span class="sourceLineNo">2598</span><a name="line.2598"></a>
-<span class="sourceLineNo">2599</span>  @Override<a name="line.2599"></a>
-<span class="sourceLineNo">2600</span>  public ReplicationEndpoint postCreateReplicationEndPoint(<a name="line.2600"></a>
-<span class="sourceLineNo">2601</span>      ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx, ReplicationEndpoint endpoint) {<a name="line.2601"></a>
-<span class="sourceLineNo">2602</span>    return endpoint;<a name="line.2602"></a>
-<span class="sourceLineNo">2603</span>  }<a name="line.2603"></a>
-<span class="sourceLineNo">2604</span><a name="line.2604"></a>
-<span class="sourceLineNo">2605</span>  @Override<a name="line.2605"></a>
-<span class="sourceLineNo">2606</span>  public void preReplicateLogEntries(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2606"></a>
-<span class="sourceLineNo">2607</span>      List&lt;WALEntry&gt; entries, CellScanner cells) throws IOException {<a name="line.2607"></a>
-<span class="sourceLineNo">2608</span>    requirePermission("replicateLogEntries", Action.WRITE);<a name="line.2608"></a>
-<span class="sourceLineNo">2609</span>  }<a name="line.2609"></a>
-<span class="sourceLineNo">2610</span><a name="line.2610"></a>
-<span class="sourceLineNo">2611</span>  @Override<a name="line.2611"></a>
-<span class="sourceLineNo">2612</span>  public void postReplicateLogEntries(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2612"></a>
-<span class="sourceLineNo">2613</span>      List&lt;WALEntry&gt; entries, CellScanner cells) throws IOException {<a name="line.2613"></a>
-<span class="sourceLineNo">2614</span>  }<a name="line.2614"></a>
-<span class="sourceLineNo">2615</span>}<a name="line.2615"></a>
+<span class="sourceLineNo">2540</span>  public void preMerge(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx, Region regionA,<a name="line.2540"></a>
+<span class="sourceLineNo">2541</span>      Region regionB) throws IOException {<a name="line.2541"></a>
+<span class="sourceLineNo">2542</span>    requirePermission("mergeRegions", regionA.getTableDesc().getTableName(), null, null,<a name="line.2542"></a>
+<span class="sourceLineNo">2543</span>      Action.ADMIN);<a name="line.2543"></a>
+<span class="sourceLineNo">2544</span>  }<a name="line.2544"></a>
+<span class="sourceLineNo">2545</span><a name="line.2545"></a>
+<span class="sourceLineNo">2546</span>  @Override<a name="line.2546"></a>
+<span class="sourceLineNo">2547</span>  public void postMerge(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; c, Region regionA,<a name="line.2547"></a>
+<span class="sourceLineNo">2548</span>      Region regionB, Region mergedRegion) throws IOException { }<a name="line.2548"></a>
+<span class="sourceLineNo">2549</span><a name="line.2549"></a>
+<span class="sourceLineNo">2550</span>  @Override<a name="line.2550"></a>
+<span class="sourceLineNo">2551</span>  public void preMergeCommit(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2551"></a>
+<span class="sourceLineNo">2552</span>      Region regionA, Region regionB, List&lt;Mutation&gt; metaEntries) throws IOException { }<a name="line.2552"></a>
+<span class="sourceLineNo">2553</span><a name="line.2553"></a>
+<span class="sourceLineNo">2554</span>  @Override<a name="line.2554"></a>
+<span class="sourceLineNo">2555</span>  public void postMergeCommit(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2555"></a>
+<span class="sourceLineNo">2556</span>      Region regionA, Region regionB, Region mergedRegion) throws IOException { }<a name="line.2556"></a>
+<span class="sourceLineNo">2557</span><a name="line.2557"></a>
+<span class="sourceLineNo">2558</span>  @Override<a name="line.2558"></a>
+<span class="sourceLineNo">2559</span>  public void preRollBackMerge(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2559"></a>
+<span class="sourceLineNo">2560</span>      Region regionA, Region regionB) throws IOException { }<a name="line.2560"></a>
+<span class="sourceLineNo">2561</span><a name="line.2561"></a>
+<span class="sourceLineNo">2562</span>  @Override<a name="line.2562"></a>
+<span class="sourceLineNo">2563</span>  public void postRollBackMerge(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2563"></a>
+<span class="sourceLineNo">2564</span>      Region regionA, Region regionB) throws IOException { }<a name="line.2564"></a>
+<span class="sourceLineNo">2565</span><a name="line.2565"></a>
+<span class="sourceLineNo">2566</span>  @Override<a name="line.2566"></a>
+<span class="sourceLineNo">2567</span>  public void preRollWALWriterRequest(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx)<a name="line.2567"></a>
+<span class="sourceLineNo">2568</span>      throws IOException {<a name="line.2568"></a>
+<span class="sourceLineNo">2569</span>    requirePermission("preRollLogWriterRequest", Permission.Action.ADMIN);<a name="line.2569"></a>
+<span class="sourceLineNo">2570</span>  }<a name="line.2570"></a>
+<span class="sourceLineNo">2571</span><a name="line.2571"></a>
+<span class="sourceLineNo">2572</span>  @Override<a name="line.2572"></a>
+<span class="sourceLineNo">2573</span>  public void postRollWALWriterRequest(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx)<a name="line.2573"></a>
+<span class="sourceLineNo">2574</span>      throws IOException { }<a name="line.2574"></a>
+<span class="sourceLineNo">2575</span><a name="line.2575"></a>
+<span class="sourceLineNo">2576</span>  @Override<a name="line.2576"></a>
+<span class="sourceLineNo">2577</span>  public void preSetUserQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2577"></a>
+<span class="sourceLineNo">2578</span>      final String userName, final Quotas quotas) throws IOException {<a name="line.2578"></a>
+<span class="sourceLineNo">2579</span>    requirePermission("setUserQuota", Action.ADMIN);<a name="line.2579"></a>
+<span class="sourceLineNo">2580</span>  }<a name="line.2580"></a>
+<span class="sourceLineNo">2581</span><a name="line.2581"></a>
+<span class="sourceLineNo">2582</span>  @Override<a name="line.2582"></a>
+<span class="sourceLineNo">2583</span>  public void preSetUserQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2583"></a>
+<span class="sourceLineNo">2584</span>      final String userName, final TableName tableName, final Quotas quotas) throws IOException {<a name="line.2584"></a>
+<span class="sourceLineNo">2585</span>    requirePermission("setUserTableQuota", tableName, null, null, Action.ADMIN);<a name="line.2585"></a>
+<span class="sourceLineNo">2586</span>  }<a name="line.2586"></a>
+<span class="sourceLineNo">2587</span><a name="line.2587"></a>
+<span class="sourceLineNo">2588</span>  @Override<a name="line.2588"></a>
+<span class="sourceLineNo">2589</span>  public void preSetUserQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2589"></a>
+<span class="sourceLineNo">2590</span>      final String userName, final String namespace, final Quotas quotas) throws IOException {<a name="line.2590"></a>
+<span class="sourceLineNo">2591</span>    requirePermission("setUserNamespaceQuota", Action.ADMIN);<a name="line.2591"></a>
+<span class="sourceLineNo">2592</span>  }<a name="line.2592"></a>
+<span class="sourceLineNo">2593</span><a name="line.2593"></a>
+<span class="sourceLineNo">2594</span>  @Override<a name="line.2594"></a>
+<span class="sourceLineNo">2595</span>  public void preSetTableQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2595"></a>
+<span class="sourceLineNo">2596</span>      final TableName tableName, final Quotas quotas) throws IOException {<a name="line.2596"></a>
+<span class="sourceLineNo">2597</span>    requirePermission("setTableQuota", tableName, null, null, Action.ADMIN);<a name="line.2597"></a>
+<span class="sourceLineNo">2598</span>  }<a name="line.2598"></a>
+<span class="sourceLineNo">2599</span><a name="line.2599"></a>
+<span class="sourceLineNo">2600</span>  @Override<a name="line.2600"></a>
+<span class="sourceLineNo">2601</span>  public void preSetNamespaceQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2601"></a>
+<span class="sourceLineNo">2602</span>      final String namespace, final Quotas quotas) throws IOException {<a name="line.2602"></a>
+<span class="sourceLineNo">2603</span>    requirePermission("setNamespaceQuota", Action.ADMIN);<a name="line.2603"></a>
+<span class="sourceLineNo">2604</span>  }<a name="line.2604"></a>
+<span class="sourceLineNo">2605</span><a name="line.2605"></a>
+<span class="sourceLineNo">2606</span>  @Override<a name="line.2606"></a>
+<span class="sourceLineNo">2607</span>  public ReplicationEndpoint postCreateReplicationEndPoint(<a name="line.2607"></a>
+<span class="sourceLineNo">2608</span>      ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx, ReplicationEndpoint endpoint) {<a name="line.2608"></a>
+<span class="sourceLineNo">2609</span>    return endpoint;<a name="line.2609"></a>
+<span class="sourceLineNo">2610</span>  }<a name="line.2610"></a>
+<span class="sourceLineNo">2611</span><a name="line.2611"></a>
+<span class="sourceLineNo">2612</span>  @Override<a name="line.2612"></a>
+<span class="sourceLineNo">2613</span>  public void preReplicateLogEntries(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2613"></a>
+<span class="sourceLineNo">2614</span>      List&lt;WALEntry&gt; entries, CellScanner cells) throws IOException {<a name="line.2614"></a>
+<span class="sourceLineNo">2615</span>    requirePermission("replicateLogEntries", Action.WRITE);<a name="line.2615"></a>
+<span class="sourceLineNo">2616</span>  }<a name="line.2616"></a>
+<span class="sourceLineNo">2617</span><a name="line.2617"></a>
+<span class="sourceLineNo">2618</span>  @Override<a name="line.2618"></a>
+<span class="sourceLineNo">2619</span>  public void postReplicateLogEntries(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx,<a name="line.2619"></a>
+<span class="sourceLineNo">2620</span>      List&lt;WALEntry&gt; entries, CellScanner cells) throws IOException {<a name="line.2620"></a>
+<span class="sourceLineNo">2621</span>  }<a name="line.2621"></a>
+<span class="sourceLineNo">2622</span>}<a name="line.2622"></a>
 
 
 

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


[10/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html
index 7e13ac4..a2d35fb 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html
@@ -73,173 +73,172 @@
 <span class="sourceLineNo">065</span>  }<a name="line.65"></a>
 <span class="sourceLineNo">066</span><a name="line.66"></a>
 <span class="sourceLineNo">067</span>  interface Loader extends ProcedureLoader {<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    void removeLog(ProcedureWALFile log);<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    void markCorruptedWAL(ProcedureWALFile log, IOException e);<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  }<a name="line.70"></a>
-<span class="sourceLineNo">071</span><a name="line.71"></a>
-<span class="sourceLineNo">072</span>  private ProcedureWALFormat() {}<a name="line.72"></a>
-<span class="sourceLineNo">073</span><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  public static void load(final Iterator&lt;ProcedureWALFile&gt; logs,<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      final ProcedureStoreTracker tracker, final Loader loader) throws IOException {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    ProcedureWALFormatReader reader = new ProcedureWALFormatReader(tracker);<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    tracker.setKeepDeletes(true);<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    try {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      while (logs.hasNext()) {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>        ProcedureWALFile log = logs.next();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>        log.open();<a name="line.81"></a>
-<span class="sourceLineNo">082</span>        try {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>          reader.read(log, loader);<a name="line.83"></a>
-<span class="sourceLineNo">084</span>        } finally {<a name="line.84"></a>
-<span class="sourceLineNo">085</span>          log.close();<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>      reader.finalize(loader);<a name="line.88"></a>
-<span class="sourceLineNo">089</span>      // The tracker is now updated with all the procedures read from the logs<a name="line.89"></a>
-<span class="sourceLineNo">090</span>      tracker.setPartialFlag(false);<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      tracker.resetUpdates();<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    } finally {<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      tracker.setKeepDeletes(false);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    }<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  }<a name="line.95"></a>
-<span class="sourceLineNo">096</span><a name="line.96"></a>
-<span class="sourceLineNo">097</span>  public static void writeHeader(OutputStream stream, ProcedureWALHeader header)<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      throws IOException {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    header.writeDelimitedTo(stream);<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>  /*<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * +-----------------+<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * | END OF WAL DATA | &lt;---+<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>   * |     Tracker     |     |<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>   * |     version     |     |<a name="line.110"></a>
-<span class="sourceLineNo">111</span>   * +-----------------+     |<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   * |  TRAILER_MAGIC  |     |<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   * +-----------------+     |<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   * |      offset     |-----+<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 static void writeTrailer(FSDataOutputStream stream, ProcedureStoreTracker tracker)<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      throws IOException {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    long offset = stream.getPos();<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>    // Write EOF Entry<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    ProcedureWALEntry.newBuilder()<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      .setType(ProcedureWALEntry.Type.PROCEDURE_WAL_EOF)<a name="line.123"></a>
-<span class="sourceLineNo">124</span>      .build().writeDelimitedTo(stream);<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>    // Write Tracker<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    tracker.writeTo(stream);<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>    stream.write(TRAILER_VERSION);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    StreamUtils.writeLong(stream, TRAILER_MAGIC);<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    StreamUtils.writeLong(stream, offset);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>  }<a name="line.132"></a>
-<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>  public static ProcedureWALHeader readHeader(InputStream stream)<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      throws IOException {<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    ProcedureWALHeader header;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    try {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      header = ProcedureWALHeader.parseDelimitedFrom(stream);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    } catch (InvalidProtocolBufferException e) {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      throw new InvalidWALDataException(e);<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    }<a name="line.141"></a>
-<span class="sourceLineNo">142</span><a name="line.142"></a>
-<span class="sourceLineNo">143</span>    if (header == null) {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      throw new InvalidWALDataException("No data available to read the Header");<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>    if (header.getVersion() &lt; 0 || header.getVersion() != HEADER_VERSION) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      throw new InvalidWALDataException("Invalid Header version. got " + header.getVersion() +<a name="line.148"></a>
-<span class="sourceLineNo">149</span>          " expected " + HEADER_VERSION);<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>    if (header.getType() &lt; 0 || header.getType() &gt; LOG_TYPE_MAX_VALID) {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      throw new InvalidWALDataException("Invalid header type. got " + header.getType());<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>    return header;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>  }<a name="line.157"></a>
-<span class="sourceLineNo">158</span><a name="line.158"></a>
-<span class="sourceLineNo">159</span>  public static ProcedureWALTrailer readTrailer(FSDataInputStream stream, long startPos, long size)<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      throws IOException {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    long trailerPos = size - 17; // Beginning of the Trailer Jump<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>    if (trailerPos &lt; startPos) {<a name="line.163"></a>
-<span class="sourceLineNo">164</span>      throw new InvalidWALDataException("Missing trailer: size=" + size + " startPos=" + startPos);<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    }<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>    stream.seek(trailerPos);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    int version = stream.read();<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    if (version != TRAILER_VERSION) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>      throw new InvalidWALDataException("Invalid Trailer version. got " + version +<a name="line.170"></a>
-<span class="sourceLineNo">171</span>          " expected " + TRAILER_VERSION);<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>    long magic = StreamUtils.readLong(stream);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    if (magic != TRAILER_MAGIC) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      throw new InvalidWALDataException("Invalid Trailer magic. got " + magic +<a name="line.176"></a>
-<span class="sourceLineNo">177</span>          " expected " + TRAILER_MAGIC);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>    long trailerOffset = StreamUtils.readLong(stream);<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    stream.seek(trailerOffset);<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>    ProcedureWALEntry entry = readEntry(stream);<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    if (entry.getType() != ProcedureWALEntry.Type.PROCEDURE_WAL_EOF) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      throw new InvalidWALDataException("Invalid Trailer begin");<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>    ProcedureWALTrailer trailer = ProcedureWALTrailer.newBuilder()<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      .setVersion(version)<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      .setTrackerPos(stream.getPos())<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      .build();<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    return trailer;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  }<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  public static ProcedureWALEntry readEntry(InputStream stream) throws IOException {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    return ProcedureWALEntry.parseDelimitedFrom(stream);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>  }<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  public static void writeEntry(ByteSlot slot, ProcedureWALEntry.Type type,<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      Procedure proc, Procedure[] subprocs) throws IOException {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    ProcedureWALEntry.Builder builder = ProcedureWALEntry.newBuilder();<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    builder.setType(type);<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    builder.addProcedure(Procedure.convert(proc));<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    if (subprocs != null) {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>      for (int i = 0; i &lt; subprocs.length; ++i) {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        builder.addProcedure(Procedure.convert(subprocs[i]));<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      }<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    builder.build().writeDelimitedTo(slot);<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 static void writeInsert(ByteSlot slot, Procedure proc)<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      throws IOException {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    writeEntry(slot, ProcedureWALEntry.Type.PROCEDURE_WAL_INIT, proc, null);<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>  public static void writeInsert(ByteSlot slot, Procedure proc, Procedure[] subprocs)<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      throws IOException {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    writeEntry(slot, ProcedureWALEntry.Type.PROCEDURE_WAL_INSERT, proc, subprocs);<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>  public static void writeUpdate(ByteSlot slot, Procedure proc)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      throws IOException {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    writeEntry(slot, ProcedureWALEntry.Type.PROCEDURE_WAL_UPDATE, proc, null);<a name="line.224"></a>
-<span class="sourceLineNo">225</span>  }<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>  public static void writeDelete(ByteSlot slot, long procId)<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      throws IOException {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    ProcedureWALEntry.Builder builder = ProcedureWALEntry.newBuilder();<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    builder.setType(ProcedureWALEntry.Type.PROCEDURE_WAL_DELETE);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    builder.setProcId(procId);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    builder.build().writeDelimitedTo(slot);<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">068</span>    void markCorruptedWAL(ProcedureWALFile log, IOException e);<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  private ProcedureWALFormat() {}<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>  public static void load(final Iterator&lt;ProcedureWALFile&gt; logs,<a name="line.73"></a>
+<span class="sourceLineNo">074</span>      final ProcedureStoreTracker tracker, final Loader loader) throws IOException {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    ProcedureWALFormatReader reader = new ProcedureWALFormatReader(tracker);<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    tracker.setKeepDeletes(true);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    try {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      while (logs.hasNext()) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>        ProcedureWALFile log = logs.next();<a name="line.79"></a>
+<span class="sourceLineNo">080</span>        log.open();<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        try {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>          reader.read(log, loader);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        } finally {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>          log.close();<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>      }<a name="line.86"></a>
+<span class="sourceLineNo">087</span>      reader.finalize(loader);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>      // The tracker is now updated with all the procedures read from the logs<a name="line.88"></a>
+<span class="sourceLineNo">089</span>      tracker.setPartialFlag(false);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      tracker.resetUpdates();<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    } finally {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      tracker.setKeepDeletes(false);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public static void writeHeader(OutputStream stream, ProcedureWALHeader header)<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      throws IOException {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    header.writeDelimitedTo(stream);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>  /*<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   * +-----------------+<a name="line.102"></a>
+<span class="sourceLineNo">103</span>   * | END OF WAL DATA | &lt;---+<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>   * |     Tracker     |     |<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   * |                 |     |<a name="line.107"></a>
+<span class="sourceLineNo">108</span>   * +-----------------+     |<a name="line.108"></a>
+<span class="sourceLineNo">109</span>   * |     version     |     |<a name="line.109"></a>
+<span class="sourceLineNo">110</span>   * +-----------------+     |<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   * |  TRAILER_MAGIC  |     |<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   * +-----------------+     |<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   * |      offset     |-----+<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>  public static void writeTrailer(FSDataOutputStream stream, ProcedureStoreTracker tracker)<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      throws IOException {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    long offset = stream.getPos();<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>    // Write EOF Entry<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    ProcedureWALEntry.newBuilder()<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      .setType(ProcedureWALEntry.Type.PROCEDURE_WAL_EOF)<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      .build().writeDelimitedTo(stream);<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>    // Write Tracker<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    tracker.writeTo(stream);<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>    stream.write(TRAILER_VERSION);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    StreamUtils.writeLong(stream, TRAILER_MAGIC);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    StreamUtils.writeLong(stream, offset);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>  public static ProcedureWALHeader readHeader(InputStream stream)<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      throws IOException {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    ProcedureWALHeader header;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    try {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      header = ProcedureWALHeader.parseDelimitedFrom(stream);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    } catch (InvalidProtocolBufferException e) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      throw new InvalidWALDataException(e);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>    if (header == null) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      throw new InvalidWALDataException("No data available to read the Header");<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>    if (header.getVersion() &lt; 0 || header.getVersion() != HEADER_VERSION) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      throw new InvalidWALDataException("Invalid Header version. got " + header.getVersion() +<a name="line.147"></a>
+<span class="sourceLineNo">148</span>          " expected " + HEADER_VERSION);<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>    if (header.getType() &lt; 0 || header.getType() &gt; LOG_TYPE_MAX_VALID) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      throw new InvalidWALDataException("Invalid header type. got " + header.getType());<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    }<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>    return header;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>  }<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span>  public static ProcedureWALTrailer readTrailer(FSDataInputStream stream, long startPos, long size)<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      throws IOException {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    long trailerPos = size - 17; // Beginning of the Trailer Jump<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>    if (trailerPos &lt; startPos) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      throw new InvalidWALDataException("Missing trailer: size=" + size + " startPos=" + startPos);<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>    stream.seek(trailerPos);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    int version = stream.read();<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    if (version != TRAILER_VERSION) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      throw new InvalidWALDataException("Invalid Trailer version. got " + version +<a name="line.169"></a>
+<span class="sourceLineNo">170</span>          " expected " + TRAILER_VERSION);<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>    long magic = StreamUtils.readLong(stream);<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    if (magic != TRAILER_MAGIC) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      throw new InvalidWALDataException("Invalid Trailer magic. got " + magic +<a name="line.175"></a>
+<span class="sourceLineNo">176</span>          " expected " + TRAILER_MAGIC);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    }<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>    long trailerOffset = StreamUtils.readLong(stream);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    stream.seek(trailerOffset);<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>    ProcedureWALEntry entry = readEntry(stream);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    if (entry.getType() != ProcedureWALEntry.Type.PROCEDURE_WAL_EOF) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      throw new InvalidWALDataException("Invalid Trailer begin");<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>    ProcedureWALTrailer trailer = ProcedureWALTrailer.newBuilder()<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      .setVersion(version)<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      .setTrackerPos(stream.getPos())<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      .build();<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    return trailer;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  }<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>  public static ProcedureWALEntry readEntry(InputStream stream) throws IOException {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    return ProcedureWALEntry.parseDelimitedFrom(stream);<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>  public static void writeEntry(ByteSlot slot, ProcedureWALEntry.Type type,<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      Procedure proc, Procedure[] subprocs) throws IOException {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    ProcedureWALEntry.Builder builder = ProcedureWALEntry.newBuilder();<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    builder.setType(type);<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    builder.addProcedure(Procedure.convert(proc));<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    if (subprocs != null) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      for (int i = 0; i &lt; subprocs.length; ++i) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        builder.addProcedure(Procedure.convert(subprocs[i]));<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      }<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    }<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    builder.build().writeDelimitedTo(slot);<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 static void writeInsert(ByteSlot slot, Procedure proc)<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      throws IOException {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    writeEntry(slot, ProcedureWALEntry.Type.PROCEDURE_WAL_INIT, proc, null);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  }<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>  public static void writeInsert(ByteSlot slot, Procedure proc, Procedure[] subprocs)<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      throws IOException {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    writeEntry(slot, ProcedureWALEntry.Type.PROCEDURE_WAL_INSERT, proc, subprocs);<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>  public static void writeUpdate(ByteSlot slot, Procedure proc)<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      throws IOException {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    writeEntry(slot, ProcedureWALEntry.Type.PROCEDURE_WAL_UPDATE, proc, null);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>  }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>  public static void writeDelete(ByteSlot slot, long procId)<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      throws IOException {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    ProcedureWALEntry.Builder builder = ProcedureWALEntry.newBuilder();<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    builder.setType(ProcedureWALEntry.Type.PROCEDURE_WAL_DELETE);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    builder.setProcId(procId);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    builder.build().writeDelimitedTo(slot);<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>
 
 
 


[45/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/coprocessor/MasterObserver.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/coprocessor/MasterObserver.html b/devapidocs/org/apache/hadoop/hbase/coprocessor/MasterObserver.html
index acada9c..c172fdf 100644
--- a/devapidocs/org/apache/hadoop/hbase/coprocessor/MasterObserver.html
+++ b/devapidocs/org/apache/hadoop/hbase/coprocessor/MasterObserver.html
@@ -333,26 +333,34 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
+                                  <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                                  <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)</code>
+<div class="block">called after dispatching the region merge request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the enableTable operation has been requested.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the enableTable operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetNamespaceDescriptor(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postGetNamespaceDescriptor</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                     <a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
 <div class="block">Called after a getNamespaceDescriptor request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.util.List,%20java.lang.String)">postGetTableDescriptors</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                               <a href="http://docs.oracle.com/javase/7/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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNamesList,
@@ -361,7 +369,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called after a getTableDescriptors request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableNames(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.lang.String)">postGetTableNames</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
@@ -369,28 +377,28 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called after a getTableNames request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListNamespaceDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListNamespaceDescriptors</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                         <a href="http://docs.oracle.com/javase/7/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/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;&nbsp;descriptors)</code>
 <div class="block">Called after a listNamespaceDescriptors request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListProcedures(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListProcedures</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     <a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&gt;&nbsp;procInfoList)</code>
 <div class="block">Called after a listProcedures request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">postListSnapshot</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)</code>
 <div class="block">Called after listSnapshots request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumn</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -402,7 +410,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamily</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -410,7 +418,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called after the column family has been updated.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamilyHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                           <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -418,7 +426,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called after the column family has been updated.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -430,14 +438,14 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postModifyNamespace</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                       <a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
 <div class="block">Called after the modifyNamespace operation has been requested.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -445,7 +453,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called after the modifyTable operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -453,7 +461,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called after to modifying a table's properties.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">postMove</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
@@ -462,14 +470,14 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called after the region move has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRegionOffline(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">postRegionOffline</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>
 <div class="block">Called after the region has been marked offline.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRestoreSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postRestoreSnapshot</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                       org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
@@ -477,7 +485,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called after a snapshot restore operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetNamespaceQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetNamespaceQuota</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
@@ -485,7 +493,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called after the quota for the namespace is stored.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetTableQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetTableQuota</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -493,7 +501,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called after the quota for the table is stored.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -501,7 +509,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called after the quota for the user is stored.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -510,7 +518,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called after the quota for the user on the specified namespace is stored.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -519,7 +527,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called after the quota for the user on the specified table is stored.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postSnapshot</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
@@ -527,28 +535,28 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called after the snapshot operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postStartMaster(org.apache.hadoop.hbase.coprocessor.ObserverContext)">postStartMaster</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called immediately after an active master instance has completed
  initialization.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTableFlush(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postTableFlush</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the table memstore is flushed to disk.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTruncateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postTruncateTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the truncateTable operation has been requested.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTruncateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postTruncateTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                 <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
@@ -556,7 +564,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
  table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUnassign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20boolean)">postUnassign</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,
@@ -564,7 +572,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called after the region unassignment has been requested.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAbortProcedure(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.procedure2.ProcedureExecutor,%20long)">preAbortProcedure</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&gt;&nbsp;procEnv,
@@ -572,7 +580,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called before a abortProcedure request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumn</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -584,7 +592,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumnFamily</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -592,7 +600,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called prior to adding a new column family to the table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumnFamilyHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                   <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -600,7 +608,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called prior to adding a new column family to the table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumnHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                       <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -612,28 +620,28 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAssign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">preAssign</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>
 <div class="block">Called prior to assigning a specific region.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalance(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preBalance</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called prior to requesting rebalancing of the cluster regions, though after
  the initial checks for regions in transition and the balance switch flag.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceSwitch(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20boolean)">preBalanceSwitch</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 boolean&nbsp;newValue)</code>
 <div class="block">Called prior to modifying the flag used to enable/disable region balancing.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCloneSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">preCloneSnapshot</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
@@ -641,7 +649,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called before a snapshot is cloned.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">preCreateNamespace</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     <a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
@@ -649,7 +657,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
  <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;desc,
@@ -658,7 +666,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
  <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;desc,
@@ -667,7 +675,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
  <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumn</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -679,7 +687,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumnFamily</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -687,7 +695,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called prior to deleting the entire column family.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumnFamilyHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                         <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -695,7 +703,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 <div class="block">Called prior to deleting the entire column family.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumnHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -707,7 +715,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String)">preDeleteNamespace</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace)</code>
@@ -716,14 +724,14 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
  It can't bypass the default action, e.g., ctx.bypass() won't have effect.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">preDeleteSnapshot</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)</code>
 <div class="block">Called before a snapshot is deleted.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDeleteTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
@@ -731,7 +739,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
  table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDeleteTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
@@ -739,20 +747,28 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html" title=
  table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDisableTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to disabling a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDisableTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to disabling a table.</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">preDispatchMerge</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                                <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                                <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)</code>
+<div class="block">Called before dispatching region merge request.</div>
+</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preEnableTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
@@ -2818,7 +2834,7 @@ void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/M
 <a name="postSetNamespaceQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext, java.lang.String, org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>postSetNamespaceQuota</h4>
 <pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MasterObserver.html#line.1218">postSetNamespaceQuota</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
@@ -2831,6 +2847,39 @@ void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/M
 <dd><code><a href="http://docs.oracle.com/javase/7/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="preDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext, org.apache.hadoop.hbase.HRegionInfo, org.apache.hadoop.hbase.HRegionInfo)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>preDispatchMerge</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MasterObserver.html#line.1229">preDispatchMerge</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                    <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                    <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)
+                      throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block">Called before dispatching region merge request. 
+ It can't bypass the default action, e.g., ctx.bypass() won't have effect.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ctx</code> - coprocessor environment</dd><dd><code>regionA</code> - first region to be merged</dd><dd><code>regionB</code> - second region to be merged</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if an error occurred on the coprocessor</dd></dl>
+</li>
+</ul>
+<a name="postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext, org.apache.hadoop.hbase.HRegionInfo, org.apache.hadoop.hbase.HRegionInfo)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>postDispatchMerge</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MasterObserver.html#line.1239">postDispatchMerge</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
+                     <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                     <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)
+                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block">called after dispatching the region merge request.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>c</code> - coprocessor environment</dd><dd><code>regionA</code> - first region to be merged</dd><dd><code>regionB</code> - second region to be merged</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if an error occurred on the coprocessor</dd></dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>


[03/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html
index fc06682..f81d2d3 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html
@@ -244,734 +244,730 @@
 <span class="sourceLineNo">236</span>    return storeTracker;<a name="line.236"></a>
 <span class="sourceLineNo">237</span>  }<a name="line.237"></a>
 <span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>  public LinkedList&lt;ProcedureWALFile&gt; getActiveLogs() {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    return logs;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  }<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>  public Set&lt;ProcedureWALFile&gt; getCorruptedLogs() {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    return corruptedLogs;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  }<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>  @Override<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  public void recoverLease() throws IOException {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    lock.lock();<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    try {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      LOG.info("Starting WAL Procedure Store lease recovery");<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      FileStatus[] oldLogs = getLogFiles();<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      while (isRunning()) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>        // Get Log-MaxID and recover lease on old logs<a name="line.254"></a>
-<span class="sourceLineNo">255</span>        flushLogId = initOldLogs(oldLogs);<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>        // Create new state-log<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        if (!rollWriter(flushLogId + 1)) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>          // someone else has already created this log<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          LOG.debug("someone else has already created log " + flushLogId);<a name="line.260"></a>
-<span class="sourceLineNo">261</span>          continue;<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>        // We have the lease on the log<a name="line.264"></a>
-<span class="sourceLineNo">265</span>        oldLogs = getLogFiles();<a name="line.265"></a>
-<span class="sourceLineNo">266</span>        if (getMaxLogId(oldLogs) &gt; flushLogId) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>          if (LOG.isDebugEnabled()) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>            LOG.debug("Someone else created new logs. Expected maxLogId &lt; " + flushLogId);<a name="line.268"></a>
-<span class="sourceLineNo">269</span>          }<a name="line.269"></a>
-<span class="sourceLineNo">270</span>          logs.getLast().removeFile();<a name="line.270"></a>
-<span class="sourceLineNo">271</span>          continue;<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>        LOG.info("Lease acquired for flushLogId: " + flushLogId);<a name="line.274"></a>
-<span class="sourceLineNo">275</span>        break;<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    } finally {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      lock.unlock();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    }<a name="line.279"></a>
-<span class="sourceLineNo">280</span>  }<a name="line.280"></a>
-<span class="sourceLineNo">281</span><a name="line.281"></a>
-<span class="sourceLineNo">282</span>  @Override<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  public void load(final ProcedureLoader loader) throws IOException {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    if (logs.isEmpty()) {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      throw new RuntimeException("recoverLease() must be called before loading data");<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>    // Nothing to do, If we have only the current log.<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    if (logs.size() == 1) {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      if (LOG.isDebugEnabled()) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        LOG.debug("No state logs to replay.");<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>      loader.setMaxProcId(0);<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      loading.set(false);<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      return;<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>    // Load the old logs<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    final ArrayList&lt;ProcedureWALFile&gt; toRemove = new ArrayList&lt;ProcedureWALFile&gt;();<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    Iterator&lt;ProcedureWALFile&gt; it = logs.descendingIterator();<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    it.next(); // Skip the current log<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    try {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      ProcedureWALFormat.load(it, storeTracker, new ProcedureWALFormat.Loader() {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>        @Override<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        public void setMaxProcId(long maxProcId) {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>          loader.setMaxProcId(maxProcId);<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<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        public void load(ProcedureIterator procIter) throws IOException {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>          loader.load(procIter);<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 void handleCorrupted(ProcedureIterator procIter) throws IOException {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>          loader.handleCorrupted(procIter);<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 void removeLog(ProcedureWALFile log) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          toRemove.add(log);<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>        @Override<a name="line.324"></a>
-<span class="sourceLineNo">325</span>        public void markCorruptedWAL(ProcedureWALFile log, IOException e) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>          if (corruptedLogs == null) {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>            corruptedLogs = new HashSet&lt;ProcedureWALFile&gt;();<a name="line.327"></a>
-<span class="sourceLineNo">328</span>          }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>          corruptedLogs.add(log);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>          // TODO: sideline corrupted log<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>    } finally {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      if (!toRemove.isEmpty()) {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        for (ProcedureWALFile log: toRemove) {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>          removeLogFile(log);<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>      loading.set(false);<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">239</span>  public ArrayList&lt;ProcedureWALFile&gt; getActiveLogs() {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    lock.lock();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    try {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      return new ArrayList&lt;ProcedureWALFile&gt;(logs);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    } finally {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      lock.unlock();<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><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  public Set&lt;ProcedureWALFile&gt; getCorruptedLogs() {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    return corruptedLogs;<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>  @Override<a name="line.252"></a>
+<span class="sourceLineNo">253</span>  public void recoverLease() throws IOException {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    lock.lock();<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    try {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      LOG.info("Starting WAL Procedure Store lease recovery");<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      FileStatus[] oldLogs = getLogFiles();<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      while (isRunning()) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        // Get Log-MaxID and recover lease on old logs<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        flushLogId = initOldLogs(oldLogs);<a name="line.260"></a>
+<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">262</span>        // Create new state-log<a name="line.262"></a>
+<span class="sourceLineNo">263</span>        if (!rollWriter(flushLogId + 1)) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>          // someone else has already created this log<a name="line.264"></a>
+<span class="sourceLineNo">265</span>          LOG.debug("someone else has already created log " + flushLogId);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>          continue;<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>        // We have the lease on the log<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        oldLogs = getLogFiles();<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        if (getMaxLogId(oldLogs) &gt; flushLogId) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          if (LOG.isDebugEnabled()) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            LOG.debug("Someone else created new logs. Expected maxLogId &lt; " + flushLogId);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>          logs.getLast().removeFile();<a name="line.275"></a>
+<span class="sourceLineNo">276</span>          continue;<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        }<a name="line.277"></a>
+<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">279</span>        LOG.info("Lease acquired for flushLogId: " + flushLogId);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>        break;<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      }<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    } finally {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      lock.unlock();<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  }<a name="line.285"></a>
+<span class="sourceLineNo">286</span><a name="line.286"></a>
+<span class="sourceLineNo">287</span>  @Override<a name="line.287"></a>
+<span class="sourceLineNo">288</span>  public void load(final ProcedureLoader loader) throws IOException {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    if (logs.isEmpty()) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      throw new RuntimeException("recoverLease() must be called before loading data");<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>    // Nothing to do, If we have only the current log.<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    if (logs.size() == 1) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>      if (LOG.isDebugEnabled()) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>        LOG.debug("No state logs to replay.");<a name="line.296"></a>
+<span class="sourceLineNo">297</span>      }<a name="line.297"></a>
+<span class="sourceLineNo">298</span>      loader.setMaxProcId(0);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      loading.set(false);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      return;<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>    // Load the old logs<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    Iterator&lt;ProcedureWALFile&gt; it = logs.descendingIterator();<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    it.next(); // Skip the current log<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    try {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureWALFormat.load(it, storeTracker, new ProcedureWALFormat.Loader() {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        @Override<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        public void setMaxProcId(long maxProcId) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>          loader.setMaxProcId(maxProcId);<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>        @Override<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        public void load(ProcedureIterator procIter) throws IOException {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>          loader.load(procIter);<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>        @Override<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        public void handleCorrupted(ProcedureIterator procIter) throws IOException {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>          loader.handleCorrupted(procIter);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        }<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>        @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>        public void markCorruptedWAL(ProcedureWALFile log, IOException e) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>          if (corruptedLogs == null) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>            corruptedLogs = new HashSet&lt;ProcedureWALFile&gt;();<a name="line.326"></a>
+<span class="sourceLineNo">327</span>          }<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          corruptedLogs.add(log);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          // TODO: sideline corrupted log<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      });<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    } finally {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      loading.set(false);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
+<span class="sourceLineNo">338</span>  public void insert(final Procedure proc, final Procedure[] subprocs) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    if (LOG.isTraceEnabled()) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      LOG.trace("Insert " + proc + ", subproc=" + Arrays.toString(subprocs));<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    }<a name="line.341"></a>
 <span class="sourceLineNo">342</span><a name="line.342"></a>
-<span class="sourceLineNo">343</span>  @Override<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  public void insert(final Procedure proc, final Procedure[] subprocs) {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    if (LOG.isTraceEnabled()) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      LOG.trace("Insert " + proc + ", subproc=" + Arrays.toString(subprocs));<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    }<a name="line.347"></a>
-<span class="sourceLineNo">348</span><a name="line.348"></a>
-<span class="sourceLineNo">349</span>    ByteSlot slot = acquireSlot();<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    try {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      // Serialize the insert<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      long[] subProcIds = null;<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      if (subprocs != null) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>        ProcedureWALFormat.writeInsert(slot, proc, subprocs);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>        subProcIds = new long[subprocs.length];<a name="line.355"></a>
-<span class="sourceLineNo">356</span>        for (int i = 0; i &lt; subprocs.length; ++i) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>          subProcIds[i] = subprocs[i].getProcId();<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        }<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      } else {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        assert !proc.hasParent();<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        ProcedureWALFormat.writeInsert(slot, proc);<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>      // Push the transaction data and wait until it is persisted<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      pushData(PushType.INSERT, slot, proc.getProcId(), subProcIds);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    } catch (IOException e) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      // We are not able to serialize the procedure.<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      // this is a code error, and we are not able to go on.<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      LOG.fatal("Unable to serialize one of the procedure: proc=" + proc +<a name="line.369"></a>
-<span class="sourceLineNo">370</span>                ", subprocs=" + Arrays.toString(subprocs), e);<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      throw new RuntimeException(e);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    } finally {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      releaseSlot(slot);<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">343</span>    ByteSlot slot = acquireSlot();<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    try {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>      // Serialize the insert<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      long[] subProcIds = null;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      if (subprocs != null) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        ProcedureWALFormat.writeInsert(slot, proc, subprocs);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>        subProcIds = new long[subprocs.length];<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        for (int i = 0; i &lt; subprocs.length; ++i) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>          subProcIds[i] = subprocs[i].getProcId();<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      } else {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        assert !proc.hasParent();<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        ProcedureWALFormat.writeInsert(slot, proc);<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      }<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span>      // Push the transaction data and wait until it is persisted<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      pushData(PushType.INSERT, slot, proc.getProcId(), subProcIds);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    } catch (IOException e) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      // We are not able to serialize the procedure.<a name="line.361"></a>
+<span class="sourceLineNo">362</span>      // this is a code error, and we are not able to go on.<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      LOG.fatal("Unable to serialize one of the procedure: proc=" + proc +<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                ", subprocs=" + Arrays.toString(subprocs), e);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      throw new RuntimeException(e);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    } finally {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      releaseSlot(slot);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>  @Override<a name="line.371"></a>
+<span class="sourceLineNo">372</span>  public void update(final Procedure proc) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    if (LOG.isTraceEnabled()) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      LOG.trace("Update " + proc);<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
 <span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
-<span class="sourceLineNo">378</span>  public void update(final Procedure proc) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    if (LOG.isTraceEnabled()) {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      LOG.trace("Update " + proc);<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>    ByteSlot slot = acquireSlot();<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    try {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      // Serialize the update<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      ProcedureWALFormat.writeUpdate(slot, proc);<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>      // Push the transaction data and wait until it is persisted<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      pushData(PushType.UPDATE, slot, proc.getProcId(), null);<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    } catch (IOException e) {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      // We are not able to serialize the procedure.<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      // this is a code error, and we are not able to go on.<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      LOG.fatal("Unable to serialize the procedure: " + proc, e);<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      throw new RuntimeException(e);<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    } finally {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      releaseSlot(slot);<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">377</span>    ByteSlot slot = acquireSlot();<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    try {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      // Serialize the update<a name="line.379"></a>
+<span class="sourceLineNo">380</span>      ProcedureWALFormat.writeUpdate(slot, proc);<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>      // Push the transaction data and wait until it is persisted<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      pushData(PushType.UPDATE, slot, proc.getProcId(), null);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    } catch (IOException e) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      // We are not able to serialize the procedure.<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      // this is a code error, and we are not able to go on.<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      LOG.fatal("Unable to serialize the procedure: " + proc, e);<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      throw new RuntimeException(e);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    } finally {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      releaseSlot(slot);<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    }<a name="line.391"></a>
+<span class="sourceLineNo">392</span>  }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>  @Override<a name="line.394"></a>
+<span class="sourceLineNo">395</span>  public void delete(final long procId) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    if (LOG.isTraceEnabled()) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>      LOG.trace("Delete " + procId);<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>  @Override<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  public void delete(final long procId) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    if (LOG.isTraceEnabled()) {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      LOG.trace("Delete " + procId);<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>    ByteSlot slot = acquireSlot();<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    try {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      // Serialize the delete<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      ProcedureWALFormat.writeDelete(slot, procId);<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>      // Push the transaction data and wait until it is persisted<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      pushData(PushType.DELETE, slot, procId, null);<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    } catch (IOException e) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      // We are not able to serialize the procedure.<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      // this is a code error, and we are not able to go on.<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      LOG.fatal("Unable to serialize the procedure: " + procId, e);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      throw new RuntimeException(e);<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    } finally {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      releaseSlot(slot);<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>  private ByteSlot acquireSlot() {<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    ByteSlot slot = slotsCache.poll();<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    return slot != null ? slot : new ByteSlot();<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>  private void releaseSlot(final ByteSlot slot) {<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    slot.reset();<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    slotsCache.offer(slot);<a name="line.430"></a>
-<span class="sourceLineNo">431</span>  }<a name="line.431"></a>
-<span class="sourceLineNo">432</span><a name="line.432"></a>
-<span class="sourceLineNo">433</span>  private enum PushType { INSERT, UPDATE, DELETE };<a name="line.433"></a>
-<span class="sourceLineNo">434</span><a name="line.434"></a>
-<span class="sourceLineNo">435</span>  private long pushData(final PushType type, final ByteSlot slot,<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      final long procId, final long[] subProcIds) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    if (!isRunning()) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      throw new RuntimeException("the store must be running before inserting data");<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    }<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    if (logs.isEmpty()) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      throw new RuntimeException("recoverLease() must be called before inserting data");<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>    long logId = -1;<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    lock.lock();<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    try {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      // Wait for the sync to be completed<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      while (true) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>        if (!isRunning()) {<a name="line.449"></a>
-<span class="sourceLineNo">450</span>          throw new RuntimeException("store no longer running");<a name="line.450"></a>
-<span class="sourceLineNo">451</span>        } else if (isSyncAborted()) {<a name="line.451"></a>
-<span class="sourceLineNo">452</span>          throw new RuntimeException("sync aborted", syncException.get());<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        } else if (inSync.get()) {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>          syncCond.await();<a name="line.454"></a>
-<span class="sourceLineNo">455</span>        } else if (slotIndex == slots.length) {<a name="line.455"></a>
-<span class="sourceLineNo">456</span>          slotCond.signal();<a name="line.456"></a>
-<span class="sourceLineNo">457</span>          syncCond.await();<a name="line.457"></a>
-<span class="sourceLineNo">458</span>        } else {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>          break;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>        }<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      }<a name="line.461"></a>
-<span class="sourceLineNo">462</span><a name="line.462"></a>
-<span class="sourceLineNo">463</span>      updateStoreTracker(type, procId, subProcIds);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      slots[slotIndex++] = slot;<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      logId = flushLogId;<a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>      // Notify that there is new data<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      if (slotIndex == 1) {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>        waitCond.signal();<a name="line.469"></a>
+<span class="sourceLineNo">400</span>    ByteSlot slot = acquireSlot();<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    try {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>      // Serialize the delete<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      ProcedureWALFormat.writeDelete(slot, procId);<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>      // Push the transaction data and wait until it is persisted<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      pushData(PushType.DELETE, slot, procId, null);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    } catch (IOException e) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>      // We are not able to serialize the procedure.<a name="line.408"></a>
+<span class="sourceLineNo">409</span>      // this is a code error, and we are not able to go on.<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      LOG.fatal("Unable to serialize the procedure: " + procId, e);<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      throw new RuntimeException(e);<a name="line.411"></a>
+<span class="sourceLineNo">412</span>    } finally {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      releaseSlot(slot);<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    }<a name="line.414"></a>
+<span class="sourceLineNo">415</span>  }<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span>  private ByteSlot acquireSlot() {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    ByteSlot slot = slotsCache.poll();<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    return slot != null ? slot : new ByteSlot();<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>  private void releaseSlot(final ByteSlot slot) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    slot.reset();<a name="line.423"></a>
+<span class="sourceLineNo">424</span>    slotsCache.offer(slot);<a name="line.424"></a>
+<span class="sourceLineNo">425</span>  }<a name="line.425"></a>
+<span class="sourceLineNo">426</span><a name="line.426"></a>
+<span class="sourceLineNo">427</span>  private enum PushType { INSERT, UPDATE, DELETE };<a name="line.427"></a>
+<span class="sourceLineNo">428</span><a name="line.428"></a>
+<span class="sourceLineNo">429</span>  private long pushData(final PushType type, final ByteSlot slot,<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      final long procId, final long[] subProcIds) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    if (!isRunning()) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      throw new RuntimeException("the store must be running before inserting data");<a name="line.432"></a>
+<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    if (logs.isEmpty()) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      throw new RuntimeException("recoverLease() must be called before inserting data");<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    }<a name="line.436"></a>
+<span class="sourceLineNo">437</span><a name="line.437"></a>
+<span class="sourceLineNo">438</span>    long logId = -1;<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    lock.lock();<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    try {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      // Wait for the sync to be completed<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      while (true) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        if (!isRunning()) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>          throw new RuntimeException("store no longer running");<a name="line.444"></a>
+<span class="sourceLineNo">445</span>        } else if (isSyncAborted()) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>          throw new RuntimeException("sync aborted", syncException.get());<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        } else if (inSync.get()) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>          syncCond.await();<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        } else if (slotIndex == slots.length) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>          slotCond.signal();<a name="line.450"></a>
+<span class="sourceLineNo">451</span>          syncCond.await();<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        } else {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>          break;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        }<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>      updateStoreTracker(type, procId, subProcIds);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>      slots[slotIndex++] = slot;<a name="line.458"></a>
+<span class="sourceLineNo">459</span>      logId = flushLogId;<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>      // Notify that there is new data<a name="line.461"></a>
+<span class="sourceLineNo">462</span>      if (slotIndex == 1) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        waitCond.signal();<a name="line.463"></a>
+<span class="sourceLineNo">464</span>      }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>      // Notify that the slots are full<a name="line.466"></a>
+<span class="sourceLineNo">467</span>      if (slotIndex == slots.length) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>        waitCond.signal();<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        slotCond.signal();<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>      // Notify that the slots are full<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      if (slotIndex == slots.length) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        waitCond.signal();<a name="line.474"></a>
-<span class="sourceLineNo">475</span>        slotCond.signal();<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>      syncCond.await();<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    } catch (InterruptedException e) {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      Thread.currentThread().interrupt();<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      sendAbortProcessSignal();<a name="line.481"></a>
-<span class="sourceLineNo">482</span>      throw new RuntimeException(e);<a name="line.482"></a>
-<span class="sourceLineNo">483</span>    } finally {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      lock.unlock();<a name="line.484"></a>
-<span class="sourceLineNo">485</span>      if (isSyncAborted()) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>        throw new RuntimeException("sync aborted", syncException.get());<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      }<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    }<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    return logId;<a name="line.489"></a>
-<span class="sourceLineNo">490</span>  }<a name="line.490"></a>
-<span class="sourceLineNo">491</span><a name="line.491"></a>
-<span class="sourceLineNo">492</span>  private void updateStoreTracker(final PushType type,<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      final long procId, final long[] subProcIds) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    switch (type) {<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      case INSERT:<a name="line.495"></a>
-<span class="sourceLineNo">496</span>        if (subProcIds == null) {<a name="line.496"></a>
-<span class="sourceLineNo">497</span>          storeTracker.insert(procId);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>        } else {<a name="line.498"></a>
-<span class="sourceLineNo">499</span>          storeTracker.insert(procId, subProcIds);<a name="line.499"></a>
-<span class="sourceLineNo">500</span>        }<a name="line.500"></a>
+<span class="sourceLineNo">472</span>      syncCond.await();<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    } catch (InterruptedException e) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>      Thread.currentThread().interrupt();<a name="line.474"></a>
+<span class="sourceLineNo">475</span>      sendAbortProcessSignal();<a name="line.475"></a>
+<span class="sourceLineNo">476</span>      throw new RuntimeException(e);<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    } finally {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>      lock.unlock();<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      if (isSyncAborted()) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        throw new RuntimeException("sync aborted", syncException.get());<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      }<a name="line.481"></a>
+<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
+<span class="sourceLineNo">483</span>    return logId;<a name="line.483"></a>
+<span class="sourceLineNo">484</span>  }<a name="line.484"></a>
+<span class="sourceLineNo">485</span><a name="line.485"></a>
+<span class="sourceLineNo">486</span>  private void updateStoreTracker(final PushType type,<a name="line.486"></a>
+<span class="sourceLineNo">487</span>      final long procId, final long[] subProcIds) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>    switch (type) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>      case INSERT:<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        if (subProcIds == null) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>          storeTracker.insert(procId);<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        } else {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>          storeTracker.insert(procId, subProcIds);<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        }<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        break;<a name="line.495"></a>
+<span class="sourceLineNo">496</span>      case UPDATE:<a name="line.496"></a>
+<span class="sourceLineNo">497</span>        storeTracker.update(procId);<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        break;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>      case DELETE:<a name="line.499"></a>
+<span class="sourceLineNo">500</span>        storeTracker.delete(procId);<a name="line.500"></a>
 <span class="sourceLineNo">501</span>        break;<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      case UPDATE:<a name="line.502"></a>
-<span class="sourceLineNo">503</span>        storeTracker.update(procId);<a name="line.503"></a>
-<span class="sourceLineNo">504</span>        break;<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      case DELETE:<a name="line.505"></a>
-<span class="sourceLineNo">506</span>        storeTracker.delete(procId);<a name="line.506"></a>
-<span class="sourceLineNo">507</span>        break;<a name="line.507"></a>
-<span class="sourceLineNo">508</span>      default:<a name="line.508"></a>
-<span class="sourceLineNo">509</span>        throw new RuntimeException("invalid push type " + type);<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    }<a name="line.510"></a>
-<span class="sourceLineNo">511</span>  }<a name="line.511"></a>
-<span class="sourceLineNo">512</span><a name="line.512"></a>
-<span class="sourceLineNo">513</span>  private boolean isSyncAborted() {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>    return syncException.get() != null;<a name="line.514"></a>
-<span class="sourceLineNo">515</span>  }<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>  private void syncLoop() throws Throwable {<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    inSync.set(false);<a name="line.518"></a>
-<span class="sourceLineNo">519</span>    lock.lock();<a name="line.519"></a>
-<span class="sourceLineNo">520</span>    try {<a name="line.520"></a>
-<span class="sourceLineNo">521</span>      while (isRunning()) {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>        try {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>          // Wait until new data is available<a name="line.523"></a>
-<span class="sourceLineNo">524</span>          if (slotIndex == 0) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>            if (!loading.get()) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>              periodicRoll();<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>            if (LOG.isTraceEnabled()) {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>              float rollTsSec = getMillisFromLastRoll() / 1000.0f;<a name="line.530"></a>
-<span class="sourceLineNo">531</span>              LOG.trace(String.format("Waiting for data. flushed=%s (%s/sec)",<a name="line.531"></a>
-<span class="sourceLineNo">532</span>                        StringUtils.humanSize(totalSynced.get()),<a name="line.532"></a>
-<span class="sourceLineNo">533</span>                        StringUtils.humanSize(totalSynced.get() / rollTsSec)));<a name="line.533"></a>
+<span class="sourceLineNo">502</span>      default:<a name="line.502"></a>
+<span class="sourceLineNo">503</span>        throw new RuntimeException("invalid push type " + type);<a name="line.503"></a>
+<span class="sourceLineNo">504</span>    }<a name="line.504"></a>
+<span class="sourceLineNo">505</span>  }<a name="line.505"></a>
+<span class="sourceLineNo">506</span><a name="line.506"></a>
+<span class="sourceLineNo">507</span>  private boolean isSyncAborted() {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>    return syncException.get() != null;<a name="line.508"></a>
+<span class="sourceLineNo">509</span>  }<a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span>  private void syncLoop() throws Throwable {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>    inSync.set(false);<a name="line.512"></a>
+<span class="sourceLineNo">513</span>    lock.lock();<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    try {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>      while (isRunning()) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        try {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>          // Wait until new data is available<a name="line.517"></a>
+<span class="sourceLineNo">518</span>          if (slotIndex == 0) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>            if (!loading.get()) {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>              periodicRoll();<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>            if (LOG.isTraceEnabled()) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>              float rollTsSec = getMillisFromLastRoll() / 1000.0f;<a name="line.524"></a>
+<span class="sourceLineNo">525</span>              LOG.trace(String.format("Waiting for data. flushed=%s (%s/sec)",<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                        StringUtils.humanSize(totalSynced.get()),<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                        StringUtils.humanSize(totalSynced.get() / rollTsSec)));<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>            waitCond.await(getMillisToNextPeriodicRoll(), TimeUnit.MILLISECONDS);<a name="line.530"></a>
+<span class="sourceLineNo">531</span>            if (slotIndex == 0) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>              // no data.. probably a stop() or a periodic roll<a name="line.532"></a>
+<span class="sourceLineNo">533</span>              continue;<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>            waitCond.await(getMillisToNextPeriodicRoll(), TimeUnit.MILLISECONDS);<a name="line.536"></a>
-<span class="sourceLineNo">537</span>            if (slotIndex == 0) {<a name="line.537"></a>
-<span class="sourceLineNo">538</span>              // no data.. probably a stop() or a periodic roll<a name="line.538"></a>
-<span class="sourceLineNo">539</span>              continue;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>            }<a name="line.540"></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>          // Wait SYNC_WAIT_MSEC or the signal of "slots full" before flushing<a name="line.537"></a>
+<span class="sourceLineNo">538</span>          long syncWaitSt = System.currentTimeMillis();<a name="line.538"></a>
+<span class="sourceLineNo">539</span>          if (slotIndex != slots.length) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>            slotCond.await(syncWaitMsec, TimeUnit.MILLISECONDS);<a name="line.540"></a>
 <span class="sourceLineNo">541</span>          }<a name="line.541"></a>
-<span class="sourceLineNo">542</span><a name="line.542"></a>
-<span class="sourceLineNo">543</span>          // Wait SYNC_WAIT_MSEC or the signal of "slots full" before flushing<a name="line.543"></a>
-<span class="sourceLineNo">544</span>          long syncWaitSt = System.currentTimeMillis();<a name="line.544"></a>
-<span class="sourceLineNo">545</span>          if (slotIndex != slots.length) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>            slotCond.await(syncWaitMsec, TimeUnit.MILLISECONDS);<a name="line.546"></a>
-<span class="sourceLineNo">547</span>          }<a name="line.547"></a>
-<span class="sourceLineNo">548</span>          long syncWaitMs = System.currentTimeMillis() - syncWaitSt;<a name="line.548"></a>
-<span class="sourceLineNo">549</span>          if (LOG.isTraceEnabled() &amp;&amp; (syncWaitMs &gt; 10 || slotIndex &lt; slots.length)) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>            float rollSec = getMillisFromLastRoll() / 1000.0f;<a name="line.550"></a>
-<span class="sourceLineNo">551</span>            LOG.trace(String.format("Sync wait %s, slotIndex=%s , totalSynced=%s (%s/sec)",<a name="line.551"></a>
-<span class="sourceLineNo">552</span>                      StringUtils.humanTimeDiff(syncWaitMs), slotIndex,<a name="line.552"></a>
-<span class="sourceLineNo">553</span>                      StringUtils.humanSize(totalSynced.get()),<a name="line.553"></a>
-<span class="sourceLineNo">554</span>                      StringUtils.humanSize(totalSynced.get() / rollSec)));<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>          inSync.set(true);<a name="line.557"></a>
-<span class="sourceLineNo">558</span>          totalSynced.addAndGet(syncSlots());<a name="line.558"></a>
-<span class="sourceLineNo">559</span>          slotIndex = 0;<a name="line.559"></a>
-<span class="sourceLineNo">560</span>          inSync.set(false);<a name="line.560"></a>
-<span class="sourceLineNo">561</span>        } catch (InterruptedException e) {<a name="line.561"></a>
-<span class="sourceLineNo">562</span>          Thread.currentThread().interrupt();<a name="line.562"></a>
-<span class="sourceLineNo">563</span>          sendAbortProcessSignal();<a name="line.563"></a>
-<span class="sourceLineNo">564</span>          syncException.compareAndSet(null, e);<a name="line.564"></a>
-<span class="sourceLineNo">565</span>          throw e;<a name="line.565"></a>
-<span class="sourceLineNo">566</span>        } catch (Throwable t) {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>          syncException.compareAndSet(null, t);<a name="line.567"></a>
-<span class="sourceLineNo">568</span>          throw t;<a name="line.568"></a>
-<span class="sourceLineNo">569</span>        } finally {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>          syncCond.signalAll();<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        }<a name="line.571"></a>
-<span class="sourceLineNo">572</span>      }<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    } finally {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      lock.unlock();<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>  }<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>  private long syncSlots() throws Throwable {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    int retry = 0;<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    int logRolled = 0;<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    long totalSynced = 0;<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    do {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      try {<a name="line.583"></a>
-<span class="sourceLineNo">584</span>        totalSynced = syncSlots(stream, slots, 0, slotIndex);<a name="line.584"></a>
-<span class="sourceLineNo">585</span>        break;<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      } catch (Throwable e) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>        if (++retry &gt;= maxRetriesBeforeRoll) {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>          if (logRolled &gt;= maxSyncFailureRoll) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>            LOG.error("Sync slots after log roll failed, abort.", e);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>            sendAbortProcessSignal();<a name="line.590"></a>
-<span class="sourceLineNo">591</span>            throw e;<a name="line.591"></a>
-<span class="sourceLineNo">592</span>          }<a name="line.592"></a>
-<span class="sourceLineNo">593</span><a name="line.593"></a>
-<span class="sourceLineNo">594</span>          if (!rollWriterOrDie()) {<a name="line.594"></a>
-<span class="sourceLineNo">595</span>            throw e;<a name="line.595"></a>
-<span class="sourceLineNo">596</span>          }<a name="line.596"></a>
-<span class="sourceLineNo">597</span><a name="line.597"></a>
-<span class="sourceLineNo">598</span>          logRolled++;<a name="line.598"></a>
-<span class="sourceLineNo">599</span>          retry = 0;<a name="line.599"></a>
-<span class="sourceLineNo">600</span>        }<a name="line.600"></a>
-<span class="sourceLineNo">601</span>      }<a name="line.601"></a>
-<span class="sourceLineNo">602</span>    } while (isRunning());<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    return totalSynced;<a name="line.603"></a>
-<span class="sourceLineNo">604</span>  }<a name="line.604"></a>
-<span class="sourceLineNo">605</span><a name="line.605"></a>
-<span class="sourceLineNo">606</span>  protected long syncSlots(FSDataOutputStream stream, ByteSlot[] slots, int offset, int count)<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      throws IOException {<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    long totalSynced = 0;<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    for (int i = 0; i &lt; count; ++i) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      ByteSlot data = slots[offset + i];<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      data.writeTo(stream);<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      totalSynced += data.size();<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    }<a name="line.613"></a>
-<span class="sourceLineNo">614</span><a name="line.614"></a>
-<span class="sourceLineNo">615</span>    if (useHsync) {<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      stream.hsync();<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    } else {<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      stream.hflush();<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    }<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    sendPostSyncSignal();<a name="line.620"></a>
-<span class="sourceLineNo">621</span><a name="line.621"></a>
-<span class="sourceLineNo">622</span>    if (LOG.isTraceEnabled()) {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      LOG.trace("Sync slots=" + count + '/' + slots.length +<a name="line.623"></a>
-<span class="sourceLineNo">624</span>                ", flushed=" + StringUtils.humanSize(totalSynced));<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    }<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    return totalSynced;<a name="line.626"></a>
-<span class="sourceLineNo">627</span>  }<a name="line.627"></a>
-<span class="sourceLineNo">628</span><a name="line.628"></a>
-<span class="sourceLineNo">629</span>  private boolean rollWriterOrDie() {<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    for (int i = 1; i &lt;= rollRetries; ++i) {<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      try {<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        if (rollWriter()) {<a name="line.632"></a>
-<span class="sourceLineNo">633</span>          return true;<a name="line.633"></a>
-<span class="sourceLineNo">634</span>        }<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      } catch (IOException e) {<a name="line.635"></a>
-<span class="sourceLineNo">636</span>        LOG.warn("Unable to roll the log, attempt=" + i, e);<a name="line.636"></a>
-<span class="sourceLineNo">637</span>        Threads.sleepWithoutInterrupt(waitBeforeRoll);<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      }<a name="line.638"></a>
-<span class="sourceLineNo">639</span>    }<a name="line.639"></a>
-<span class="sourceLineNo">640</span>    LOG.fatal("Unable to roll the log");<a name="line.640"></a>
-<span class="sourceLineNo">641</span>    sendAbortProcessSignal();<a name="line.641"></a>
-<span class="sourceLineNo">642</span>    throw new RuntimeException("unable to roll the log");<a name="line.642"></a>
-<span class="sourceLineNo">643</span>  }<a name="line.643"></a>
-<span class="sourceLineNo">644</span><a name="line.644"></a>
-<span class="sourceLineNo">645</span>  private boolean tryRollWriter() {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    try {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>      return rollWriter();<a name="line.647"></a>
-<span class="sourceLineNo">648</span>    } catch (IOException e) {<a name="line.648"></a>
-<span class="sourceLineNo">649</span>      LOG.warn("Unable to roll the log", e);<a name="line.649"></a>
-<span class="sourceLineNo">650</span>      return false;<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    }<a name="line.651"></a>
-<span class="sourceLineNo">652</span>  }<a name="line.652"></a>
-<span class="sourceLineNo">653</span><a name="line.653"></a>
-<span class="sourceLineNo">654</span>  private long getMillisToNextPeriodicRoll() {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    if (lastRollTs.get() &gt; 0 &amp;&amp; periodicRollMsec &gt; 0) {<a name="line.655"></a>
-<span class="sourceLineNo">656</span>      return periodicRollMsec - getMillisFromLastRoll();<a name="line.656"></a>
-<span class="sourceLineNo">657</span>    }<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    return Long.MAX_VALUE;<a name="line.658"></a>
+<span class="sourceLineNo">542</span>          long syncWaitMs = System.currentTimeMillis() - syncWaitSt;<a name="line.542"></a>
+<span class="sourceLineNo">543</span>          if (LOG.isTraceEnabled() &amp;&amp; (syncWaitMs &gt; 10 || slotIndex &lt; slots.length)) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>            float rollSec = getMillisFromLastRoll() / 1000.0f;<a name="line.544"></a>
+<span class="sourceLineNo">545</span>            LOG.trace(String.format("Sync wait %s, slotIndex=%s , totalSynced=%s (%s/sec)",<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                      StringUtils.humanTimeDiff(syncWaitMs), slotIndex,<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                      StringUtils.humanSize(totalSynced.get()),<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                      StringUtils.humanSize(totalSynced.get() / rollSec)));<a name="line.548"></a>
+<span class="sourceLineNo">549</span>          }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>          inSync.set(true);<a name="line.551"></a>
+<span class="sourceLineNo">552</span>          totalSynced.addAndGet(syncSlots());<a name="line.552"></a>
+<span class="sourceLineNo">553</span>          slotIndex = 0;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>          inSync.set(false);<a name="line.554"></a>
+<span class="sourceLineNo">555</span>        } catch (InterruptedException e) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>          Thread.currentThread().interrupt();<a name="line.556"></a>
+<span class="sourceLineNo">557</span>          sendAbortProcessSignal();<a name="line.557"></a>
+<span class="sourceLineNo">558</span>          syncException.compareAndSet(null, e);<a name="line.558"></a>
+<span class="sourceLineNo">559</span>          throw e;<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        } catch (Throwable t) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>          syncException.compareAndSet(null, t);<a name="line.561"></a>
+<span class="sourceLineNo">562</span>          throw t;<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        } finally {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>          syncCond.signalAll();<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>    } finally {<a name="line.567"></a>
+<span class="sourceLineNo">568</span>      lock.unlock();<a name="line.568"></a>
+<span class="sourceLineNo">569</span>    }<a name="line.569"></a>
+<span class="sourceLineNo">570</span>  }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>  private long syncSlots() throws Throwable {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>    int retry = 0;<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    int logRolled = 0;<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    long totalSynced = 0;<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    do {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>      try {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>        totalSynced = syncSlots(stream, slots, 0, slotIndex);<a name="line.578"></a>
+<span class="sourceLineNo">579</span>        break;<a name="line.579"></a>
+<span class="sourceLineNo">580</span>      } catch (Throwable e) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>        LOG.warn("unable to sync slots, retry=" + retry);<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        if (++retry &gt;= maxRetriesBeforeRoll) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>          if (logRolled &gt;= maxSyncFailureRoll) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>            LOG.error("Sync slots after log roll failed, abort.", e);<a name="line.584"></a>
+<span class="sourceLineNo">585</span>            sendAbortProcessSignal();<a name="line.585"></a>
+<span class="sourceLineNo">586</span>            throw e;<a name="line.586"></a>
+<span class="sourceLineNo">587</span>          }<a name="line.587"></a>
+<span class="sourceLineNo">588</span><a name="line.588"></a>
+<span class="sourceLineNo">589</span>          if (!rollWriterOrDie()) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>            throw e;<a name="line.590"></a>
+<span class="sourceLineNo">591</span>          }<a name="line.591"></a>
+<span class="sourceLineNo">592</span><a name="line.592"></a>
+<span class="sourceLineNo">593</span>          logRolled++;<a name="line.593"></a>
+<span class="sourceLineNo">594</span>          retry = 0;<a name="line.594"></a>
+<span class="sourceLineNo">595</span>        }<a name="line.595"></a>
+<span class="sourceLineNo">596</span>      }<a name="line.596"></a>
+<span class="sourceLineNo">597</span>    } while (isRunning());<a name="line.597"></a>
+<span class="sourceLineNo">598</span>    return totalSynced;<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>  protected long syncSlots(FSDataOutputStream stream, ByteSlot[] slots, int offset, int count)<a name="line.601"></a>
+<span class="sourceLineNo">602</span>      throws IOException {<a name="line.602"></a>
+<span class="sourceLineNo">603</span>    long totalSynced = 0;<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    for (int i = 0; i &lt; count; ++i) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      ByteSlot data = slots[offset + i];<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      data.writeTo(stream);<a name="line.606"></a>
+<span class="sourceLineNo">607</span>      totalSynced += data.size();<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>    if (useHsync) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>      stream.hsync();<a name="line.611"></a>
+<span class="sourceLineNo">612</span>    } else {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>      stream.hflush();<a name="line.613"></a>
+<span class="sourceLineNo">614</span>    }<a name="line.614"></a>
+<span class="sourceLineNo">615</span>    sendPostSyncSignal();<a name="line.615"></a>
+<span class="sourceLineNo">616</span><a name="line.616"></a>
+<span class="sourceLineNo">617</span>    if (LOG.isTraceEnabled()) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>      LOG.trace("Sync slots=" + count + '/' + slots.length +<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                ", flushed=" + StringUtils.humanSize(totalSynced));<a name="line.619"></a>
+<span class="sourceLineNo">620</span>    }<a name="line.620"></a>
+<span class="sourceLineNo">621</span>    return totalSynced;<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>  private boolean rollWriterOrDie() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>    for (int i = 0; i &lt; rollRetries; ++i) {<a name="line.625"></a>
+<span class="sourceLineNo">626</span>      if (i &gt; 0) Threads.sleepWithoutInterrupt(waitBeforeRoll * i);<a name="line.626"></a>
+<span class="sourceLineNo">627</span><a name="line.627"></a>
+<span class="sourceLineNo">628</span>      try {<a name="line.628"></a>
+<span class="sourceLineNo">629</span>        if (rollWriter()) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>          return true;<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        }<a name="line.631"></a>
+<span class="sourceLineNo">632</span>      } catch (IOException e) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>        LOG.warn("Unable to roll the log, attempt=" + (i + 1), e);<a name="line.633"></a>
+<span class="sourceLineNo">634</span>      }<a name="line.634"></a>
+<span class="sourceLineNo">635</span>    }<a name="line.635"></a>
+<span class="sourceLineNo">636</span>    LOG.fatal("Unable to roll the log");<a name="line.636"></a>
+<span class="sourceLineNo">637</span>    sendAbortProcessSignal();<a name="line.637"></a>
+<span class="sourceLineNo">638</span>    throw new RuntimeException("unable to roll the log");<a name="line.638"></a>
+<span class="sourceLineNo">639</span>  }<a name="line.639"></a>
+<span class="sourceLineNo">640</span><a name="line.640"></a>
+<span class="sourceLineNo">641</span>  private boolean tryRollWriter() {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    try {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>      return rollWriter();<a name="line.643"></a>
+<span class="sourceLineNo">644</span>    } catch (IOException e) {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      LOG.warn("Unable to roll the log", e);<a name="line.645"></a>
+<span class="sourceLineNo">646</span>      return false;<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>  private long getMillisToNextPeriodicRoll() {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>    if (lastRollTs.get() &gt; 0 &amp;&amp; periodicRollMsec &gt; 0) {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>      return periodicRollMsec - getMillisFromLastRoll();<a name="line.652"></a>
+<span class="sourceLineNo">653</span>    }<a name="line.653"></a>
+<span class="sourceLineNo">654</span>    return Long.MAX_VALUE;<a name="line.654"></a>
+<span class="sourceLineNo">655</span>  }<a name="line.655"></a>
+<span class="sourceLineNo">656</span><a name="line.656"></a>
+<span class="sourceLineNo">657</span>  private long getMillisFromLastRoll() {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>    return (System.currentTimeMillis() - lastRollTs.get());<a name="line.658"></a>
 <span class="sourceLineNo">659</span>  }<a name="line.659"></a>
 <span class="sourceLineNo">660</span><a name="line.660"></a>
-<span class="sourceLineNo">661</span>  private long getMillisFromLastRoll() {<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    return (System.currentTimeMillis() - lastRollTs.get());<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>  @VisibleForTesting<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  protected void periodicRollForTesting() throws IOException {<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    lock.lock();<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    try {<a name="line.668"></a>
-<span class="sourceLineNo">669</span>      periodicRoll();<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    } finally {<a name="line.670"></a>
-<span class="sourceLineNo">671</span>      lock.unlock();<a name="line.671"></a>
-<span class="sourceLineNo">672</span>    }<a name="line.672"></a>
-<span class="sourceLineNo">673</span>  }<a name="line.673"></a>
-<span class="sourceLineNo">674</span><a name="line.674"></a>
-<span class="sourceLineNo">675</span>  @VisibleForTesting<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  protected boolean rollWriterForTesting() throws IOException {<a name="line.676"></a>
-<span class="sourceLineNo">677</span>    lock.lock();<a name="line.677"></a>
-<span class="sourceLineNo">678</span>    try {<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      return rollWriter();<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    } finally {<a name="line.680"></a>
-<span class="sourceLineNo">681</span>      lock.unlock();<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    }<a name="line.682"></a>
-<span class="sourceLineNo">683</span>  }<a name="line.683"></a>
-<span class="sourceLineNo">684</span><a name="line.684"></a>
-<span class="sourceLineNo">685</span>  private void periodicRoll() throws IOException {<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    if (storeTracker.isEmpty()) {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>      if (LOG.isTraceEnabled()) {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>        LOG.trace("no active procedures");<a name="line.688"></a>
-<span class="sourceLineNo">689</span>      }<a name="line.689"></a>
-<span class="sourceLineNo">690</span>      tryRollWriter();<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      removeAllLogs(flushLogId - 1);<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    } else {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>      if (storeTracker.isUpdated()) {<a name="line.693"></a>
-<span class="sourceLineNo">694</span>        if (LOG.isTraceEnabled()) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>          LOG.trace("all the active procedures are in the latest log");<a name="line.695"></a>
-<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        removeAllLogs(flushLogId - 1);<a name="line.697"></a>
-<span class="sourceLineNo">698</span>      }<a name="line.698"></a>
-<span class="sourceLineNo">699</span><a name="line.699"></a>
-<span class="sourceLineNo">700</span>      // if the log size has exceeded the roll threshold<a name="line.700"></a>
-<span class="sourceLineNo">701</span>      // or the periodic roll timeout is expired, try to roll the wal.<a name="line.701"></a>
-<span class="sourceLineNo">702</span>      if (totalSynced.get() &gt; rollThreshold || getMillisToNextPeriodicRoll() &lt;= 0) {<a name="line.702"></a>
-<span class="sourceLineNo">703</span>        tryRollWriter();<a name="line.703"></a>
-<span class="sourceLineNo">704</span>      }<a name="line.704"></a>
+<span class="sourceLineNo">661</span>  @VisibleForTesting<a name="line.661"></a>
+<span class="sourceLineNo">662</span>  protected void periodicRollForTesting() throws IOException {<a name="line.662"></a>
+<span class="sourceLineNo">663</span>    lock.lock();<a name="line.663"></a>
+<span class="sourceLineNo">664</span>    try {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>      periodicRoll();<a name="line.665"></a>
+<span class="sourceLineNo">666</span>    } finally {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>      lock.unlock();<a name="line.667"></a>
+<span class="sourceLineNo">668</span>    }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>  }<a name="line.669"></a>
+<span class="sourceLineNo">670</span><a name="line.670"></a>
+<span class="sourceLineNo">671</span>  @VisibleForTesting<a name="line.671"></a>
+<span class="sourceLineNo">672</span>  protected boolean rollWriterForTesting() throws IOException {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>    lock.lock();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>    try {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>      return rollWriter();<a name="line.675"></a>
+<span class="sourceLineNo">676</span>    } finally {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>      lock.unlock();<a name="line.677"></a>
+<span class="sourceLineNo">678</span>    }<a name="line.678"></a>
+<span class="sourceLineNo">679</span>  }<a name="line.679"></a>
+<span class="sourceLineNo">680</span><a name="line.680"></a>
+<span class="sourceLineNo">681</span>  private void periodicRoll() throws IOException {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>    if (storeTracker.isEmpty()) {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>      if (LOG.isTraceEnabled()) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>        LOG.trace("no active procedures");<a name="line.684"></a>
+<span class="sourceLineNo">685</span>      }<a name="line.685"></a>
+<span class="sourceLineNo">686</span>      tryRollWriter();<a name="line.686"></a>
+<span class="sourceLineNo">687</span>      removeAllLogs(flushLogId - 1);<a name="line.687"></a>
+<span class="sourceLineNo">688</span>    } else {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>      if (storeTracker.isUpdated()) {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>        if (LOG.isTraceEnabled()) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>          LOG.trace("all the active procedures are in the latest log");<a name="line.691"></a>
+<span class="sourceLineNo">692</span>        }<a name="line.692"></a>
+<span class="sourceLineNo">693</span>        removeAllLogs(flushLogId - 1);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>      }<a name="line.694"></a>
+<span class="sourceLineNo">695</span><a name="line.695"></a>
+<span class="sourceLineNo">696</span>      // if the log size has exceeded the roll threshold<a name="line.696"></a>
+<span class="sourceLineNo">697</span>      // or the periodic roll timeout is expired, try to roll the wal.<a name="line.697"></a>
+<span class="sourceLineNo">698</span>      if (totalSynced.get() &gt; rollThreshold || getMillisToNextPeriodicRoll() &lt;= 0) {<a name="line.698"></a>
+<span class="sourceLineNo">699</span>        tryRollWriter();<a name="line.699"></a>
+<span class="sourceLineNo">700</span>      }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>      removeInactiveLogs();<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>      removeInactiveLogs();<a name="line.706"></a>
-<span class="sourceLineNo">707</span>    }<a name="line.707"></a>
-<span class="sourceLineNo">708</span>  }<a name="line.708"></a>
-<span class="sourceLineNo">709</span><a name="line.709"></a>
-<span class="sourceLineNo">710</span>  private boolean rollWriter() throws IOException {<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    // Create new state-log<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    if (!rollWriter(flushLogId + 1)) {<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      LOG.warn("someone else has already created log " + flushLogId);<a name="line.713"></a>
-<span class="sourceLineNo">714</span>      return false;<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    }<a name="line.715"></a>
-<span class="sourceLineNo">716</span><a name="line.716"></a>
-<span class="sourceLineNo">717</span>    // We have the lease on the log,<a name="line.717"></a>
-<span class="sourceLineNo">718</span>    // but we should check if someone else has created new files<a name="line.718"></a>
-<span class="sourceLineNo">719</span>    if (getMaxLogId(getLogFiles()) &gt; flushLogId) {<a name="line.719"></a>
-<span class="sourceLineNo">720</span>      LOG.warn("Someone else created new logs. Expected maxLogId &lt; " + flushLogId);<a name="line.720"></a>
-<span class="sourceLineNo">721</span>      logs.getLast().removeFile();<a name="line.721"></a>
-<span class="sourceLineNo">722</span>      return false;<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    }<a name="line.723"></a>
+<span class="sourceLineNo">706</span>  private boolean rollWriter() throws IOException {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>    // Create new state-log<a name="line.707"></a>
+<span class="sourceLineNo">708</span>    if (!rollWriter(flushLogId + 1)) {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>      LOG.warn("someone else has already created log " + flushLogId);<a name="line.709"></a>
+<span class="sourceLineNo">710</span>      return false;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>    }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>    // We have the lease on the log,<a name="line.713"></a>
+<span class="sourceLineNo">714</span>    // but we should check if someone else has created new files<a name="line.714"></a>
+<span class="sourceLineNo">715</span>    if (getMaxLogId(getLogFiles()) &gt; flushLogId) {<a name="line.715"></a>
+<span class="sourceLineNo">716</span>      LOG.warn("Someone else created new logs. Expected maxLogId &lt; " + flushLogId);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>      logs.getLast().removeFile();<a name="line.717"></a>
+<span class="sourceLineNo">718</span>      return false;<a name="line.718"></a>
+<span class="sourceLineNo">719</span>    }<a name="line.719"></a>
+<span class="sourceLineNo">720</span><a name="line.720"></a>
+<span class="sourceLineNo">721</span>    // We have the lease on the log<a name="line.721"></a>
+<span class="sourceLineNo">722</span>    return true;<a name="line.722"></a>
+<span class="sourceLineNo">723</span>  }<a name="line.723"></a>
 <span class="sourceLineNo">724</span><a name="line.724"></a>
-<span class="sourceLineNo">725</span>    // We have the lease on the log<a name="line.725"></a>
-<span class="sourceLineNo">726</span>    return true;<a name="line.726"></a>
-<span class="sourceLineNo">727</span>  }<a name="line.727"></a>
+<span class="sourceLineNo">725</span>  private boolean rollWriter(final long logId) throws IOException {<a name="line.725"></a>
+<span class="sourceLineNo">726</span>    assert logId &gt; flushLogId : "logId=" + logId + " flushLogId=" + flushLogId;<a name="line.726"></a>
+<span class="sourceLineNo">727</span>    assert lock.isHeldByCurrentThread() : "expected to be the lock owner. " + lock.isLocked();<a name="line.727"></a>
 <span class="sourceLineNo">728</span><a name="line.728"></a>
-<span class="sourceLineNo">729</span>  private boolean rollWriter(final long logId) throws IOException {<a name="line.729"></a>
-<span class="sourceLineNo">730</span>    assert logId &gt; flushLogId : "logId=" + logId + " flushLogId=" + flushLogId;<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    assert lock.isHeldByCurrentThread() : "expected to be the lock owner. " + lock.isLocked();<a name="line.731"></a>
-<span class="sourceLineNo">732</span><a name="line.732"></a>
-<span class="sourceLineNo">733</span>    ProcedureWALHeader header = ProcedureWALHeader.newBuilder()<a name="line.733"></a>
-<span class="sourceLineNo">734</span>      .setVersion(ProcedureWALFormat.HEADER_VERSION)<a name="line.734"></a>
-<span class="sourceLineNo">735</span>      .setType(ProcedureWALFormat.LOG_TYPE_STREAM)<a name="line.735"></a>
-<span class="sourceLineNo">736</span>      .setMinProcId(storeTracker.getMinProcId())<a name="line.736"></a>
-<span class="sourceLineNo">737</span>      .setLogId(logId)<a name="line.737"></a>
-<span class="sourceLineNo">738</span>      .build();<a name="line.738"></a>
-<span class="sourceLineNo">739</span><a name="line.739"></a>
-<span class="sourceLineNo">740</span>    FSDataOutpu

<TRUNCATED>

[29/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/util/class-use/NonceKey.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/class-use/NonceKey.html b/devapidocs/org/apache/hadoop/hbase/util/class-use/NonceKey.html
index 0fa528a..1aa0696 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/class-use/NonceKey.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/class-use/NonceKey.html
@@ -121,16 +121,23 @@
 </tr>
 </tbody>
 </table>
-<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/package-summary.html">org.apache.hadoop.hbase</a> with parameters of type <a href="../../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/hadoop/hbase/package-summary.html">org.apache.hadoop.hbase</a> with parameters of type <a href="../../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</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>
+<th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="strong">ProcedureInfo.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/ProcedureInfo.html#setNonceKey(org.apache.hadoop.hbase.util.NonceKey)">setNonceKey</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey)</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/ProcedureInfo.html#ProcedureInfo(long,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState,%20long,%20org.apache.hadoop.hbase.util.NonceKey,%20org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage,%20long,%20long,%20byte[])">ProcedureInfo</a></strong>(long&nbsp;procId,
+                          <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;procName,
+                          <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;procOwner,
+                          org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState&nbsp;procState,
+                          long&nbsp;parentId,
+                          <a href="../../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey,
+                          org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage&nbsp;exception,
+                          long&nbsp;lastUpdate,
+                          long&nbsp;startTime,
+                          byte[]&nbsp;result)</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
index 8260133..2cda76d 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -148,9 +148,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="strong">WALFactory.Providers</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="strong">RegionGroupingProvider.Strategies</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALKey.Version.html" title="enum in org.apache.hadoop.hbase.wal"><span class="strong">WALKey.Version</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="strong">WALFactory.Providers</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html b/devapidocs/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html
index 80faa7d..eb22faa 100644
--- a/devapidocs/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html
+++ b/devapidocs/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html
@@ -96,7 +96,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 class <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.77">MetaTableLocator</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.76">MetaTableLocator</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Utility class to perform operation (get/wait for/verify/set/delete) on znode in ZooKeeper
  which keeps hbase:meta region server location.
@@ -374,7 +374,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <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/MetaTableLocator.html#line.78">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.77">LOG</a></pre>
 </li>
 </ul>
 <a name="stopped">
@@ -383,7 +383,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>stopped</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.81">stopped</a></pre>
+<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.80">stopped</a></pre>
 </li>
 </ul>
 </li>
@@ -400,7 +400,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MetaTableLocator</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.77">MetaTableLocator</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.76">MetaTableLocator</a>()</pre>
 </li>
 </ul>
 </li>
@@ -417,7 +417,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>isLocationAvailable</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.87">isLocationAvailable</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.86">isLocationAvailable</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw)</pre>
 <div class="block">Checks if the meta region location is available.</div>
 <dl><dt><span class="strong">Returns:</span></dt><dd>true if meta region location is available, false if not</dd></dl>
 </li>
@@ -428,7 +428,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaRegionsAndLocations</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.95">getMetaRegionsAndLocations</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw)</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.94">getMetaRegionsAndLocations</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw)</pre>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>zkw</code> - ZooKeeper watcher to be used</dd>
 <dt><span class="strong">Returns:</span></dt><dd>meta table regions and their locations.</dd></dl>
 </li>
@@ -439,7 +439,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaRegionsAndLocations</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.105">getMetaRegionsAndLocations</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.104">getMetaRegionsAndLocations</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
                                                             int&nbsp;replicaId)</pre>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>zkw</code> - </dd><dd><code>replicaId</code> - </dd>
 <dt><span class="strong">Returns:</span></dt><dd>meta table regions and their locations.</dd></dl>
@@ -451,7 +451,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaRegions</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/zookeeper/MetaTableLocator.html#line.118">getMetaRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw)</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/zookeeper/MetaTableLocator.html#line.117">getMetaRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw)</pre>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>zkw</code> - ZooKeeper watcher to be used</dd>
 <dt><span class="strong">Returns:</span></dt><dd>List of meta regions</dd></dl>
 </li>
@@ -462,7 +462,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaRegions</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/zookeeper/MetaTableLocator.html#line.128">getMetaRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/zookeeper/MetaTableLocator.html#line.127">getMetaRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
                                int&nbsp;replicaId)</pre>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>zkw</code> - </dd><dd><code>replicaId</code> - </dd>
 <dt><span class="strong">Returns:</span></dt><dd>List of meta regions</dd></dl>
@@ -474,7 +474,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getListOfHRegionInfos</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/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/zookeeper/MetaTableLocator.html#line.134">getListOfHRegionInfos</a>(<a href="http://docs.oracle.com/javase/7/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/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&gt;&nbsp;pairs)</pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/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/zookeeper/MetaTableLocator.html#line.133">getListOfHRegionInfos</a>(<a href="http://docs.oracle.com/javase/7/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/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&gt;&nbsp;pairs)</pre>
 </li>
 </ul>
 <a name="getMetaRegionLocation(org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher)">
@@ -483,7 +483,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaRegionLocation</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.149">getMetaRegionLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.148">getMetaRegionLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw)</pre>
 <div class="block">Gets the meta region location, if available.  Does not block.</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>zkw</code> - zookeeper connection to use</dd>
 <dt><span class="strong">Returns:</span></dt><dd>server name or null if we failed to get the data.</dd></dl>
@@ -495,7 +495,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaRegionLocation</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.164">getMetaRegionLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.163">getMetaRegionLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
                                int&nbsp;replicaId)</pre>
 <div class="block">Gets the meta region location, if available.  Does not block.</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>zkw</code> - </dd><dd><code>replicaId</code> - </dd>
@@ -508,7 +508,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>waitMetaRegionLocation</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.185">waitMetaRegionLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.184">waitMetaRegionLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
                                 long&nbsp;timeout)
                                   throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a>,
                                          <a href="../../../../../org/apache/hadoop/hbase/NotAllMetaRegionsOnlineException.html" title="class in org.apache.hadoop.hbase">NotAllMetaRegionsOnlineException</a></pre>
@@ -530,7 +530,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>waitMetaRegionLocation</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.203">waitMetaRegionLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.202">waitMetaRegionLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
                                 int&nbsp;replicaId,
                                 long&nbsp;timeout)
                                   throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a>,
@@ -553,7 +553,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>waitMetaRegionLocation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.231">waitMetaRegionLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.230">waitMetaRegionLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw)
                             throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Waits indefinitely for availability of <code>hbase:meta</code>.  Used during
  cluster startup.  Does not verify meta, just that something has been
@@ -568,7 +568,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>verifyMetaRegionLocation</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.260">verifyMetaRegionLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/client/HConnection.html" title="interface in org.apache.hadoop.hbase.client">HConnection</a>&nbsp;hConnection,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.259">verifyMetaRegionLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/client/HConnection.html" title="interface in org.apache.hadoop.hbase.client">HConnection</a>&nbsp;hConnection,
                                <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
                                long&nbsp;timeout)
                                  throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a>,
@@ -588,7 +588,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>verifyMetaRegionLocation</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.276">verifyMetaRegionLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/client/HConnection.html" title="interface in org.apache.hadoop.hbase.client">HConnection</a>&nbsp;hConnection,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.275">verifyMetaRegionLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/client/HConnection.html" title="interface in org.apache.hadoop.hbase.client">HConnection</a>&nbsp;hConnection,
                                <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
                                long&nbsp;timeout,
                                int&nbsp;replicaId)
@@ -608,7 +608,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>verifyRegionLocation</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.311">verifyRegionLocation</a>(org.apache.hadoop.hbase.protobuf.generated.AdminProtos.AdminService.BlockingInterface&nbsp;hostingServer,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.310">verifyRegionLocation</a>(org.apache.hadoop.hbase.protobuf.generated.AdminProtos.AdminService.BlockingInterface&nbsp;hostingServer,
                            <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;address,
                            byte[]&nbsp;regionName)
                               throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -628,7 +628,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaServerConnection</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.protobuf.generated.AdminProtos.AdminService.BlockingInterface&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.358">getMetaServerConnection</a>(<a href="../../../../../org/apache/hadoop/hbase/client/HConnection.html" title="interface in org.apache.hadoop.hbase.client">HConnection</a>&nbsp;hConnection,
+<pre>private&nbsp;org.apache.hadoop.hbase.protobuf.generated.AdminProtos.AdminService.BlockingInterface&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.357">getMetaServerConnection</a>(<a href="../../../../../org/apache/hadoop/hbase/client/HConnection.html" title="interface in org.apache.hadoop.hbase.client">HConnection</a>&nbsp;hConnection,
                                                                                                             <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
                                                                                                             long&nbsp;timeout,
                                                                                                             int&nbsp;replicaId)
@@ -652,7 +652,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getCachedConnection</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.protobuf.generated.AdminProtos.AdminService.BlockingInterface&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.372">getCachedConnection</a>(<a href="../../../../../org/apache/hadoop/hbase/client/HConnection.html" title="interface in org.apache.hadoop.hbase.client">HConnection</a>&nbsp;hConnection,
+<pre>private static&nbsp;org.apache.hadoop.hbase.protobuf.generated.AdminProtos.AdminService.BlockingInterface&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.371">getCachedConnection</a>(<a href="../../../../../org/apache/hadoop/hbase/client/HConnection.html" title="interface in org.apache.hadoop.hbase.client">HConnection</a>&nbsp;hConnection,
                                                                                                         <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)
                                                                                                                   throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>sn</code> - ServerName to get a connection against.</dd>
@@ -669,7 +669,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setMetaLocation</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.424">setMetaLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zookeeper,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.423">setMetaLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zookeeper,
                    <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/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master">RegionState.State</a>&nbsp;state)
                             throws org.apache.zookeeper.KeeperException</pre>
@@ -686,7 +686,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setMetaLocation</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.438">setMetaLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zookeeper,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.437">setMetaLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zookeeper,
                    <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                    int&nbsp;replicaId,
                    <a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master">RegionState.State</a>&nbsp;state)
@@ -704,7 +704,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaRegionState</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html" title="class in org.apache.hadoop.hbase.master">RegionState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.464">getMetaRegionState</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw)
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html" title="class in org.apache.hadoop.hbase.master">RegionState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.463">getMetaRegionState</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw)
                                       throws org.apache.zookeeper.KeeperException</pre>
 <div class="block">Load the meta region state from the meta server ZNode.</div>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -717,7 +717,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaRegionState</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html" title="class in org.apache.hadoop.hbase.master">RegionState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.475">getMetaRegionState</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html" title="class in org.apache.hadoop.hbase.master">RegionState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.474">getMetaRegionState</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
                              int&nbsp;replicaId)
                                       throws org.apache.zookeeper.KeeperException</pre>
 <div class="block">Load the meta region state from the meta server ZNode.</div>
@@ -733,7 +733,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteMetaLocation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.518">deleteMetaLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zookeeper)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.517">deleteMetaLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zookeeper)
                         throws org.apache.zookeeper.KeeperException</pre>
 <div class="block">Deletes the location of <code>hbase:meta</code> in ZooKeeper.</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>zookeeper</code> - zookeeper reference</dd>
@@ -747,7 +747,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteMetaLocation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.523">deleteMetaLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zookeeper,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.522">deleteMetaLocation</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zookeeper,
                       int&nbsp;replicaId)
                         throws org.apache.zookeeper.KeeperException</pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -760,7 +760,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>blockUntilAvailable</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/zookeeper/MetaTableLocator.html#line.546">blockUntilAvailable</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/zookeeper/MetaTableLocator.html#line.545">blockUntilAvailable</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
                                    long&nbsp;timeout,
                                    org.apache.hadoop.conf.Configuration&nbsp;conf)
                                      throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
@@ -778,7 +778,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>blockUntilAvailable</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.575">blockUntilAvailable</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.574">blockUntilAvailable</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
                              long&nbsp;timeout)
                                throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Wait until the meta region is available and is not in transition.</div>
@@ -794,7 +794,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>blockUntilAvailable</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.589">blockUntilAvailable</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.588">blockUntilAvailable</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw,
                              int&nbsp;replicaId,
                              long&nbsp;timeout)
                                throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
@@ -811,7 +811,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.615">stop</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html#line.610">stop</a>()</pre>
 <div class="block">Stop working.
  Interrupts any ongoing waits.</div>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/ProcedureInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ProcedureInfo.html b/devapidocs/src-html/org/apache/hadoop/hbase/ProcedureInfo.html
index a3748d3..8178706 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ProcedureInfo.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ProcedureInfo.html
@@ -49,12 +49,12 @@
 <span class="sourceLineNo">041</span>  private final String procOwner;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>  private final ProcedureState procState;<a name="line.42"></a>
 <span class="sourceLineNo">043</span>  private final long parentId;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>  private final ForeignExceptionMessage exception;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  private final long lastUpdate;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  private final long startTime;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>  private final byte[] result;<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>  private NonceKey nonceKey = null;<a name="line.49"></a>
+<span class="sourceLineNo">044</span>  private final NonceKey nonceKey;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>  private final ForeignExceptionMessage exception;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  private final long lastUpdate;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  private final long startTime;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  private final byte[] result;<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
 <span class="sourceLineNo">050</span>  private long clientAckTime = -1;<a name="line.50"></a>
 <span class="sourceLineNo">051</span><a name="line.51"></a>
 <span class="sourceLineNo">052</span>  public ProcedureInfo(<a name="line.52"></a>
@@ -63,200 +63,204 @@
 <span class="sourceLineNo">055</span>      final String procOwner,<a name="line.55"></a>
 <span class="sourceLineNo">056</span>      final ProcedureState procState,<a name="line.56"></a>
 <span class="sourceLineNo">057</span>      final long parentId,<a name="line.57"></a>
-<span class="sourceLineNo">058</span>      final ForeignExceptionMessage exception,<a name="line.58"></a>
-<span class="sourceLineNo">059</span>      final long lastUpdate,<a name="line.59"></a>
-<span class="sourceLineNo">060</span>      final long startTime,<a name="line.60"></a>
-<span class="sourceLineNo">061</span>      final byte[] result) {<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    this.procId = procId;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    this.procName = procName;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    this.procOwner = procOwner;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    this.procState = procState;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    this.parentId = parentId;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    this.lastUpdate = lastUpdate;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    this.startTime = startTime;<a name="line.68"></a>
-<span class="sourceLineNo">069</span><a name="line.69"></a>
-<span class="sourceLineNo">070</span>    // If the procedure is completed, we should treat exception and result differently<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    this.exception = exception;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    this.result = result;<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>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="CN_IDIOM_NO_SUPER_CALL",<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      justification="Intentional; calling super class clone doesn't make sense here.")<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  public ProcedureInfo clone() {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    return new ProcedureInfo(<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      procId, procName, procOwner, procState, parentId, exception, lastUpdate, startTime, result);<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>  public long getProcId() {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    return procId;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  }<a name="line.84"></a>
-<span class="sourceLineNo">085</span><a name="line.85"></a>
-<span class="sourceLineNo">086</span>  public String getProcName() {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    return procName;<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>  public String getProcOwner() {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    return procOwner;<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>  public ProcedureState getProcState() {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    return procState;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  }<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>  public boolean hasParentId() {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    return (parentId != -1);<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 long getParentId() {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    return parentId;<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 NonceKey getNonceKey() {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    return nonceKey;<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 void setNonceKey(NonceKey nonceKey) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    this.nonceKey = nonceKey;<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>  public boolean isFailed() {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    return exception != null;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>  public IOException getException() {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    if (isFailed()) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      return ForeignExceptionUtil.toIOException(exception);<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    return null;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>  }<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span>  @InterfaceAudience.Private<a name="line.125"></a>
-<span class="sourceLineNo">126</span>  public ForeignExceptionMessage getForeignExceptionMessage() {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    return exception;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span>  public String getExceptionCause() {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    assert isFailed();<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    return exception.getGenericException().getClassName();<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>  public String getExceptionMessage() {<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    assert isFailed();<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    return exception.getGenericException().getMessage();<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>  public String getExceptionFullMessage() {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    assert isFailed();<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    return getExceptionCause() + " - " + getExceptionMessage();<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>  public boolean hasResultData() {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    return result != null;<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>  public byte[] getResult() {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    return result;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  }<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>  public long getStartTime() {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    return startTime;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  }<a name="line.155"></a>
-<span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>  public long getLastUpdate() {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    return lastUpdate;<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 long executionTime() {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    return lastUpdate - startTime;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  }<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>  @InterfaceAudience.Private<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public boolean hasClientAckTime() {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    return clientAckTime &gt; 0;<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>  @InterfaceAudience.Private<a name="line.170"></a>
-<span class="sourceLineNo">171</span>  public long getClientAckTime() {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    return clientAckTime;<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>  @InterfaceAudience.Private<a name="line.175"></a>
-<span class="sourceLineNo">176</span>  public void setClientAckTime(final long timestamp) {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    this.clientAckTime = timestamp;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>  /**<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   * @return Convert the current {@link ProcedureInfo} into a Protocol Buffers Procedure<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * instance.<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   */<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  @InterfaceAudience.Private<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  public static ProcedureProtos.Procedure convertToProcedureProto(<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      final ProcedureInfo procInfo) {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    ProcedureProtos.Procedure.Builder builder = ProcedureProtos.Procedure.newBuilder();<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>    builder.setClassName(procInfo.getProcName());<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    builder.setProcId(procInfo.getProcId());<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    builder.setStartTime(procInfo.getStartTime());<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    builder.setState(procInfo.getProcState());<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    builder.setLastUpdate(procInfo.getLastUpdate());<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>    if (procInfo.hasParentId()) {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      builder.setParentId(procInfo.getParentId());<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    }<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>    if (procInfo.getProcOwner() != null) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>       builder.setOwner(procInfo.getProcOwner());<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>    if (procInfo.isFailed()) {<a name="line.203"></a>
-<span class="sourceLineNo">204</span>        builder.setException(procInfo.getForeignExceptionMessage());<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    }<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>    if (procInfo.hasResultData()) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      builder.setResult(ByteStringer.wrap(procInfo.getResult()));<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    }<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>    return builder.build();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  }<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>  /**<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * Helper to convert the protobuf object.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   * @return Convert the current Protocol Buffers Procedure to {@link ProcedureInfo}<a name="line.216"></a>
-<span class="sourceLineNo">217</span>   * instance.<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   */<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  @InterfaceAudience.Private<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  public static ProcedureInfo convert(final ProcedureProtos.Procedure procProto) {<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    return new ProcedureInfo(<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      procProto.getProcId(),<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      procProto.getClassName(),<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      procProto.getOwner(),<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      procProto.getState(),<a name="line.225"></a>
-<span class="sourceLineNo">226</span>      procProto.hasParentId() ? procProto.getParentId() : -1,<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      procProto.hasException() ? procProto.getException() : null,<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      procProto.getLastUpdate(),<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      procProto.getStartTime(),<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      procProto.hasResult() ? procProto.getResult().toByteArray() : null);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  }<a name="line.231"></a>
-<span class="sourceLineNo">232</span><a name="line.232"></a>
-<span class="sourceLineNo">233</span>  /**<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   * Check if the user is this procedure's owner<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   * @param procInfo the procedure to check<a name="line.235"></a>
-<span class="sourceLineNo">236</span>   * @param user the user<a name="line.236"></a>
-<span class="sourceLineNo">237</span>   * @return true if the user is the owner of the procedure,<a name="line.237"></a>
-<span class="sourceLineNo">238</span>   *   false otherwise or the owner is unknown.<a name="line.238"></a>
-<span class="sourceLineNo">239</span>   */<a name="line.239"></a>
-<span class="sourceLineNo">240</span>  @InterfaceAudience.Private<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  public static boolean isProcedureOwner(final ProcedureInfo procInfo, final User user) {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    if (user == null) {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      return false;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    }<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    String procOwner = procInfo.getProcOwner();<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    if (procOwner == null) {<a name="line.246"></a>
+<span class="sourceLineNo">058</span>      final NonceKey nonceKey,<a name="line.58"></a>
+<span class="sourceLineNo">059</span>      final ForeignExceptionMessage exception,<a name="line.59"></a>
+<span class="sourceLineNo">060</span>      final long lastUpdate,<a name="line.60"></a>
+<span class="sourceLineNo">061</span>      final long startTime,<a name="line.61"></a>
+<span class="sourceLineNo">062</span>      final byte[] result) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    this.procId = procId;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    this.procName = procName;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    this.procOwner = procOwner;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    this.procState = procState;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    this.parentId = parentId;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    this.nonceKey = nonceKey;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    this.lastUpdate = lastUpdate;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    this.startTime = startTime;<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>    // If the procedure is completed, we should treat exception and result differently<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    this.exception = exception;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    this.result = result;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="CN_IDIOM_NO_SUPER_CALL",<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      justification="Intentional; calling super class clone doesn't make sense here.")<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  public ProcedureInfo clone() {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    return new ProcedureInfo(procId, procName, procOwner, procState, parentId, nonceKey,<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      exception, lastUpdate, startTime, result);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>  public long getProcId() {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    return procId;<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>  public String getProcName() {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    return procName;<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>  public String getProcOwner() {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    return procOwner;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public ProcedureState getProcState() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    return procState;<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 boolean hasParentId() {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    return (parentId != -1);<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>  public long getParentId() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    return parentId;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>  }<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>  public NonceKey getNonceKey() {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    return nonceKey;<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>  public boolean isFailed() {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    return exception != null;<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>  public IOException getException() {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    if (isFailed()) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      return ForeignExceptionUtil.toIOException(exception);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    return null;<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>  @InterfaceAudience.Private<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  public ForeignExceptionMessage getForeignExceptionMessage() {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    return exception;<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>  public String getExceptionCause() {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    assert isFailed();<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    return exception.getGenericException().getClassName();<a name="line.130"></a>
+<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>  public String getExceptionMessage() {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    assert isFailed();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    return exception.getGenericException().getMessage();<a name="line.135"></a>
+<span class="sourceLineNo">136</span>  }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>  public String getExceptionFullMessage() {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    assert isFailed();<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    return getExceptionCause() + " - " + getExceptionMessage();<a name="line.140"></a>
+<span class="sourceLineNo">141</span>  }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>  public boolean hasResultData() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    return result != null;<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>  public byte[] getResult() {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    return result;<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>  public long getStartTime() {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    return startTime;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  }<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  public long getLastUpdate() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    return lastUpdate;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>  }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  public long executionTime() {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    return lastUpdate - startTime;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>  }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>  @InterfaceAudience.Private<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  public boolean hasClientAckTime() {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    return clientAckTime &gt; 0;<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>  @InterfaceAudience.Private<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  public long getClientAckTime() {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    return clientAckTime;<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>  @InterfaceAudience.Private<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  public void setClientAckTime(final long timestamp) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    this.clientAckTime = timestamp;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  }<a name="line.176"></a>
+<span class="sourceLineNo">177</span><a name="line.177"></a>
+<span class="sourceLineNo">178</span>  /**<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   * @return Convert the current {@link ProcedureInfo} into a Protocol Buffers Procedure<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * instance.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  @InterfaceAudience.Private<a name="line.182"></a>
+<span class="sourceLineNo">183</span>  public static ProcedureProtos.Procedure convertToProcedureProto(<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      final ProcedureInfo procInfo) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    ProcedureProtos.Procedure.Builder builder = ProcedureProtos.Procedure.newBuilder();<a name="line.185"></a>
+<span class="sourceLineNo">186</span><a name="line.186"></a>
+<span class="sourceLineNo">187</span>    builder.setClassName(procInfo.getProcName());<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    builder.setProcId(procInfo.getProcId());<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    builder.setStartTime(procInfo.getStartTime());<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    builder.setState(procInfo.getProcState());<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    builder.setLastUpdate(procInfo.getLastUpdate());<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>    if (procInfo.hasParentId()) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      builder.setParentId(procInfo.getParentId());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>    if (procInfo.getProcOwner() != null) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>       builder.setOwner(procInfo.getProcOwner());<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>    if (procInfo.isFailed()) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        builder.setException(procInfo.getForeignExceptionMessage());<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>    if (procInfo.hasResultData()) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      builder.setResult(ByteStringer.wrap(procInfo.getResult()));<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    }<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>    return builder.build();<a name="line.209"></a>
+<span class="sourceLineNo">210</span>  }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>  /**<a name="line.212"></a>
+<span class="sourceLineNo">213</span>   * Helper to convert the protobuf object.<a name="line.213"></a>
+<span class="sourceLineNo">214</span>   * @return Convert the current Protocol Buffers Procedure to {@link ProcedureInfo}<a name="line.214"></a>
+<span class="sourceLineNo">215</span>   * instance.<a name="line.215"></a>
+<span class="sourceLineNo">216</span>   */<a name="line.216"></a>
+<span class="sourceLineNo">217</span>  @InterfaceAudience.Private<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  public static ProcedureInfo convert(final ProcedureProtos.Procedure procProto) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    NonceKey nonceKey = null;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    if (procProto.getNonce() != HConstants.NO_NONCE) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      nonceKey = new NonceKey(procProto.getNonceGroup(), procProto.getNonce());<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>    return new ProcedureInfo(<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      procProto.getProcId(),<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      procProto.getClassName(),<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      procProto.getOwner(),<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      procProto.getState(),<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      procProto.hasParentId() ? procProto.getParentId() : -1,<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      nonceKey,<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      procProto.hasException() ? procProto.getException() : null,<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      procProto.getLastUpdate(),<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      procProto.getStartTime(),<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      procProto.hasResult() ? procProto.getResult().toByteArray() : null);<a name="line.234"></a>
+<span class="sourceLineNo">235</span>  }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>  /**<a name="line.237"></a>
+<span class="sourceLineNo">238</span>   * Check if the user is this procedure's owner<a name="line.238"></a>
+<span class="sourceLineNo">239</span>   * @param procInfo the procedure to check<a name="line.239"></a>
+<span class="sourceLineNo">240</span>   * @param user the user<a name="line.240"></a>
+<span class="sourceLineNo">241</span>   * @return true if the user is the owner of the procedure,<a name="line.241"></a>
+<span class="sourceLineNo">242</span>   *   false otherwise or the owner is unknown.<a name="line.242"></a>
+<span class="sourceLineNo">243</span>   */<a name="line.243"></a>
+<span class="sourceLineNo">244</span>  @InterfaceAudience.Private<a name="line.244"></a>
+<span class="sourceLineNo">245</span>  public static boolean isProcedureOwner(final ProcedureInfo procInfo, final User user) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    if (user == null) {<a name="line.246"></a>
 <span class="sourceLineNo">247</span>      return false;<a name="line.247"></a>
 <span class="sourceLineNo">248</span>    }<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    return procOwner.equals(user.getShortName());<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">249</span>    String procOwner = procInfo.getProcOwner();<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    if (procOwner == null) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      return false;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    return procOwner.equals(user.getShortName());<a name="line.253"></a>
+<span class="sourceLineNo">254</span>  }<a name="line.254"></a>
+<span class="sourceLineNo">255</span>}<a name="line.255"></a>
 
 
 


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html
index 0311d6d..758241b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html
@@ -522,8 +522,8 @@
 <span class="sourceLineNo">514</span>        "Unable to merge regions not online " + regionStateA + ", " + regionStateB));<a name="line.514"></a>
 <span class="sourceLineNo">515</span>    }<a name="line.515"></a>
 <span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>    HRegionInfo regionInfoA = regionStateA.getRegion();<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    HRegionInfo regionInfoB = regionStateB.getRegion();<a name="line.518"></a>
+<span class="sourceLineNo">517</span>    final HRegionInfo regionInfoA = regionStateA.getRegion();<a name="line.517"></a>
+<span class="sourceLineNo">518</span>    final HRegionInfo regionInfoB = regionStateB.getRegion();<a name="line.518"></a>
 <span class="sourceLineNo">519</span>    if (regionInfoA.getReplicaId() != HRegionInfo.DEFAULT_REPLICA_ID ||<a name="line.519"></a>
 <span class="sourceLineNo">520</span>        regionInfoB.getReplicaId() != HRegionInfo.DEFAULT_REPLICA_ID) {<a name="line.520"></a>
 <span class="sourceLineNo">521</span>      throw new ServiceException(new MergeRegionException("Can't merge non-default replicas"));<a name="line.521"></a>
@@ -532,1050 +532,1056 @@
 <span class="sourceLineNo">524</span>      throw new ServiceException(new MergeRegionException(<a name="line.524"></a>
 <span class="sourceLineNo">525</span>        "Unable to merge a region to itself " + regionInfoA + ", " + regionInfoB));<a name="line.525"></a>
 <span class="sourceLineNo">526</span>    }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>    if (!forcible &amp;&amp; !HRegionInfo.areAdjacent(regionInfoA, regionInfoB)) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>      throw new ServiceException(new MergeRegionException(<a name="line.529"></a>
-<span class="sourceLineNo">530</span>        "Unable to merge not adjacent regions "<a name="line.530"></a>
-<span class="sourceLineNo">531</span>          + regionInfoA.getRegionNameAsString() + ", "<a name="line.531"></a>
-<span class="sourceLineNo">532</span>          + regionInfoB.getRegionNameAsString()<a name="line.532"></a>
-<span class="sourceLineNo">533</span>          + " where forcible = " + forcible));<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>    try {<a name="line.536"></a>
-<span class="sourceLineNo">537</span>      master.dispatchMergingRegions(regionInfoA, regionInfoB, forcible);<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    } catch (IOException ioe) {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>      throw new ServiceException(ioe);<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>    return DispatchMergingRegionsResponse.newBuilder().build();<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 EnableCatalogJanitorResponse enableCatalogJanitor(RpcController c,<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      EnableCatalogJanitorRequest req) throws ServiceException {<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    try {<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      master.checkInitialized();<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    } catch (IOException ioe) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      throw new ServiceException(ioe);<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    }<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    return EnableCatalogJanitorResponse.newBuilder().setPrevValue(<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      master.catalogJanitorChore.setEnabled(req.getEnable())).build();<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 EnableTableResponse enableTable(RpcController controller,<a name="line.558"></a>
-<span class="sourceLineNo">559</span>      EnableTableRequest request) throws ServiceException {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    try {<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      long procId = master.enableTable(<a name="line.561"></a>
-<span class="sourceLineNo">562</span>        ProtobufUtil.toTableName(request.getTableName()),<a name="line.562"></a>
-<span class="sourceLineNo">563</span>        request.getNonceGroup(),<a name="line.563"></a>
-<span class="sourceLineNo">564</span>        request.getNonce());<a name="line.564"></a>
-<span class="sourceLineNo">565</span>      return EnableTableResponse.newBuilder().setProcId(procId).build();<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    } catch (IOException ioe) {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>      throw new ServiceException(ioe);<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>
-<span class="sourceLineNo">570</span><a name="line.570"></a>
-<span class="sourceLineNo">571</span>  @Override<a name="line.571"></a>
-<span class="sourceLineNo">572</span>  public ClientProtos.CoprocessorServiceResponse execMasterService(final RpcController controller,<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      final ClientProtos.CoprocessorServiceRequest request) throws ServiceException {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    try {<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      master.checkInitialized();<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      ServerRpcController execController = new ServerRpcController();<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>      ClientProtos.CoprocessorServiceCall call = request.getCall();<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      String serviceName = call.getServiceName();<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      String methodName = call.getMethodName();<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      if (!master.coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>        throw new UnknownProtocolException(null,<a name="line.582"></a>
-<span class="sourceLineNo">583</span>          "No registered master coprocessor service found for name "+serviceName);<a name="line.583"></a>
-<span class="sourceLineNo">584</span>      }<a name="line.584"></a>
-<span class="sourceLineNo">585</span><a name="line.585"></a>
-<span class="sourceLineNo">586</span>      Service service = master.coprocessorServiceHandlers.get(serviceName);<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      Descriptors.MethodDescriptor methodDesc = serviceDesc.findMethodByName(methodName);<a name="line.588"></a>
-<span class="sourceLineNo">589</span>      if (methodDesc == null) {<a name="line.589"></a>
-<span class="sourceLineNo">590</span>        throw new UnknownProtocolException(service.getClass(),<a name="line.590"></a>
-<span class="sourceLineNo">591</span>          "Unknown method "+methodName+" called on master service "+serviceName);<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      }<a name="line.592"></a>
-<span class="sourceLineNo">593</span><a name="line.593"></a>
-<span class="sourceLineNo">594</span>      //invoke the method<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      Message.Builder builderForType = service.getRequestPrototype(methodDesc).newBuilderForType();<a name="line.595"></a>
-<span class="sourceLineNo">596</span>      ProtobufUtil.mergeFrom(builderForType, call.getRequest());<a name="line.596"></a>
-<span class="sourceLineNo">597</span>      Message execRequest = builderForType.build();<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      final Message.Builder responseBuilder =<a name="line.598"></a>
-<span class="sourceLineNo">599</span>          service.getResponsePrototype(methodDesc).newBuilderForType();<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      service.callMethod(methodDesc, execController, execRequest, new RpcCallback&lt;Message&gt;() {<a name="line.600"></a>
-<span class="sourceLineNo">601</span>        @Override<a name="line.601"></a>
-<span class="sourceLineNo">602</span>        public void run(Message message) {<a name="line.602"></a>
-<span class="sourceLineNo">603</span>          if (message != null) {<a name="line.603"></a>
-<span class="sourceLineNo">604</span>            responseBuilder.mergeFrom(message);<a name="line.604"></a>
-<span class="sourceLineNo">605</span>          }<a name="line.605"></a>
-<span class="sourceLineNo">606</span>        }<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      });<a name="line.607"></a>
-<span class="sourceLineNo">608</span>      Message execResult = responseBuilder.build();<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>      if (execController.getFailedOn() != null) {<a name="line.610"></a>
-<span class="sourceLineNo">611</span>        throw execController.getFailedOn();<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      }<a name="line.612"></a>
-<span class="sourceLineNo">613</span>      ClientProtos.CoprocessorServiceResponse.Builder builder =<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        ClientProtos.CoprocessorServiceResponse.newBuilder();<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      builder.setRegion(RequestConverter.buildRegionSpecifier(<a name="line.615"></a>
-<span class="sourceLineNo">616</span>        RegionSpecifierType.REGION_NAME, HConstants.EMPTY_BYTE_ARRAY));<a name="line.616"></a>
-<span class="sourceLineNo">617</span>      builder.setValue(<a name="line.617"></a>
-<span class="sourceLineNo">618</span>        builder.getValueBuilder().setName(execResult.getClass().getName())<a name="line.618"></a>
-<span class="sourceLineNo">619</span>          .setValue(execResult.toByteString()));<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      return builder.build();<a name="line.620"></a>
-<span class="sourceLineNo">621</span>    } catch (IOException ie) {<a name="line.621"></a>
-<span class="sourceLineNo">622</span>      throw new ServiceException(ie);<a name="line.622"></a>
-<span class="sourceLineNo">623</span>    }<a name="line.623"></a>
-<span class="sourceLineNo">624</span>  }<a name="line.624"></a>
-<span class="sourceLineNo">625</span><a name="line.625"></a>
-<span class="sourceLineNo">626</span>  /**<a name="line.626"></a>
-<span class="sourceLineNo">627</span>   * Triggers an asynchronous attempt to run a distributed procedure.<a name="line.627"></a>
-<span class="sourceLineNo">628</span>   * {@inheritDoc}<a name="line.628"></a>
-<span class="sourceLineNo">629</span>   */<a name="line.629"></a>
-<span class="sourceLineNo">630</span>  @Override<a name="line.630"></a>
-<span class="sourceLineNo">631</span>  public ExecProcedureResponse execProcedure(RpcController controller,<a name="line.631"></a>
-<span class="sourceLineNo">632</span>      ExecProcedureRequest request) throws ServiceException {<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    try {<a name="line.633"></a>
-<span class="sourceLineNo">634</span>      master.checkInitialized();<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      ProcedureDescription desc = request.getProcedure();<a name="line.635"></a>
-<span class="sourceLineNo">636</span>      MasterProcedureManager mpm = master.mpmHost.getProcedureManager(<a name="line.636"></a>
-<span class="sourceLineNo">637</span>        desc.getSignature());<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      if (mpm == null) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>        throw new ServiceException("The procedure is not registered: "<a name="line.639"></a>
-<span class="sourceLineNo">640</span>          + desc.getSignature());<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>      LOG.info(master.getClientIdAuditPrefix() + " procedure request for: "<a name="line.643"></a>
-<span class="sourceLineNo">644</span>        + desc.getSignature());<a name="line.644"></a>
-<span class="sourceLineNo">645</span><a name="line.645"></a>
-<span class="sourceLineNo">646</span>      mpm.execProcedure(desc);<a name="line.646"></a>
-<span class="sourceLineNo">647</span><a name="line.647"></a>
-<span class="sourceLineNo">648</span>      // send back the max amount of time the client should wait for the procedure<a name="line.648"></a>
-<span class="sourceLineNo">649</span>      // to complete<a name="line.649"></a>
-<span class="sourceLineNo">650</span>      long waitTime = SnapshotDescriptionUtils.DEFAULT_MAX_WAIT_TIME;<a name="line.650"></a>
-<span class="sourceLineNo">651</span>      return ExecProcedureResponse.newBuilder().setExpectedTimeout(<a name="line.651"></a>
-<span class="sourceLineNo">652</span>        waitTime).build();<a name="line.652"></a>
-<span class="sourceLineNo">653</span>    } catch (ForeignException e) {<a name="line.653"></a>
-<span class="sourceLineNo">654</span>      throw new ServiceException(e.getCause());<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    } catch (IOException e) {<a name="line.655"></a>
-<span class="sourceLineNo">656</span>      throw new ServiceException(e);<a name="line.656"></a>
-<span class="sourceLineNo">657</span>    }<a name="line.657"></a>
-<span class="sourceLineNo">658</span>  }<a name="line.658"></a>
-<span class="sourceLineNo">659</span><a name="line.659"></a>
-<span class="sourceLineNo">660</span>  /**<a name="line.660"></a>
-<span class="sourceLineNo">661</span>   * Triggers a synchronous attempt to run a distributed procedure and sets<a name="line.661"></a>
-<span class="sourceLineNo">662</span>   * return data in response.<a name="line.662"></a>
-<span class="sourceLineNo">663</span>   * {@inheritDoc}<a name="line.663"></a>
-<span class="sourceLineNo">664</span>   */<a name="line.664"></a>
-<span class="sourceLineNo">665</span>  @Override<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  public ExecProcedureResponse execProcedureWithRet(RpcController controller,<a name="line.666"></a>
-<span class="sourceLineNo">667</span>      ExecProcedureRequest request) throws ServiceException {<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    try {<a name="line.668"></a>
-<span class="sourceLineNo">669</span>      master.checkInitialized();<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      ProcedureDescription desc = request.getProcedure();<a name="line.670"></a>
-<span class="sourceLineNo">671</span>      MasterProcedureManager mpm = master.mpmHost.getProcedureManager(<a name="line.671"></a>
-<span class="sourceLineNo">672</span>        desc.getSignature());<a name="line.672"></a>
-<span class="sourceLineNo">673</span>      if (mpm == null) {<a name="line.673"></a>
-<span class="sourceLineNo">674</span>        throw new ServiceException("The procedure is not registered: "<a name="line.674"></a>
-<span class="sourceLineNo">675</span>          + desc.getSignature());<a name="line.675"></a>
-<span class="sourceLineNo">676</span>      }<a name="line.676"></a>
-<span class="sourceLineNo">677</span><a name="line.677"></a>
-<span class="sourceLineNo">678</span>      LOG.info(master.getClientIdAuditPrefix() + " procedure request for: "<a name="line.678"></a>
-<span class="sourceLineNo">679</span>        + desc.getSignature());<a name="line.679"></a>
-<span class="sourceLineNo">680</span><a name="line.680"></a>
-<span class="sourceLineNo">681</span>      byte[] data = mpm.execProcedureWithRet(desc);<a name="line.681"></a>
-<span class="sourceLineNo">682</span><a name="line.682"></a>
-<span class="sourceLineNo">683</span>      ExecProcedureResponse.Builder builder = ExecProcedureResponse.newBuilder();<a name="line.683"></a>
-<span class="sourceLineNo">684</span>      // set return data if available<a name="line.684"></a>
-<span class="sourceLineNo">685</span>      if (data != null) {<a name="line.685"></a>
-<span class="sourceLineNo">686</span>        builder.setReturnData(ByteString.copyFrom(data));<a name="line.686"></a>
-<span class="sourceLineNo">687</span>      }<a name="line.687"></a>
-<span class="sourceLineNo">688</span>      return builder.build();<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    } catch (IOException e) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>      throw new ServiceException(e);<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><a name="line.693"></a>
-<span class="sourceLineNo">694</span>  @Override<a name="line.694"></a>
-<span class="sourceLineNo">695</span>  public GetClusterStatusResponse getClusterStatus(RpcController controller,<a name="line.695"></a>
-<span class="sourceLineNo">696</span>      GetClusterStatusRequest req) throws ServiceException {<a name="line.696"></a>
-<span class="sourceLineNo">697</span>    GetClusterStatusResponse.Builder response = GetClusterStatusResponse.newBuilder();<a name="line.697"></a>
-<span class="sourceLineNo">698</span>    try {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>      master.checkInitialized();<a name="line.699"></a>
-<span class="sourceLineNo">700</span>      response.setClusterStatus(master.getClusterStatus().convert());<a name="line.700"></a>
-<span class="sourceLineNo">701</span>    } catch (IOException e) {<a name="line.701"></a>
-<span class="sourceLineNo">702</span>      throw new ServiceException(e);<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    }<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    return response.build();<a name="line.704"></a>
-<span class="sourceLineNo">705</span>  }<a name="line.705"></a>
-<span class="sourceLineNo">706</span><a name="line.706"></a>
-<span class="sourceLineNo">707</span>  /**<a name="line.707"></a>
-<span class="sourceLineNo">708</span>   * List the currently available/stored snapshots. Any in-progress snapshots are ignored<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 GetCompletedSnapshotsResponse getCompletedSnapshots(RpcController controller,<a name="line.711"></a>
-<span class="sourceLineNo">712</span>      GetCompletedSnapshotsRequest request) throws ServiceException {<a name="line.712"></a>
-<span class="sourceLineNo">713</span>    try {<a name="line.713"></a>
-<span class="sourceLineNo">714</span>      master.checkInitialized();<a name="line.714"></a>
-<span class="sourceLineNo">715</span>      GetCompletedSnapshotsResponse.Builder builder = GetCompletedSnapshotsResponse.newBuilder();<a name="line.715"></a>
-<span class="sourceLineNo">716</span>      List&lt;SnapshotDescription&gt; snapshots = master.snapshotManager.getCompletedSnapshots();<a name="line.716"></a>
-<span class="sourceLineNo">717</span><a name="line.717"></a>
-<span class="sourceLineNo">718</span>      // convert to protobuf<a name="line.718"></a>
-<span class="sourceLineNo">719</span>      for (SnapshotDescription snapshot : snapshots) {<a name="line.719"></a>
-<span class="sourceLineNo">720</span>        builder.addSnapshots(snapshot);<a name="line.720"></a>
-<span class="sourceLineNo">721</span>      }<a name="line.721"></a>
-<span class="sourceLineNo">722</span>      return builder.build();<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    } catch (IOException e) {<a name="line.723"></a>
-<span class="sourceLineNo">724</span>      throw new ServiceException(e);<a name="line.724"></a>
-<span class="sourceLineNo">725</span>    }<a name="line.725"></a>
-<span class="sourceLineNo">726</span>  }<a name="line.726"></a>
-<span class="sourceLineNo">727</span><a name="line.727"></a>
-<span class="sourceLineNo">728</span>  @Override<a name="line.728"></a>
-<span class="sourceLineNo">729</span>  public GetNamespaceDescriptorResponse getNamespaceDescriptor(<a name="line.729"></a>
-<span class="sourceLineNo">730</span>      RpcController controller, GetNamespaceDescriptorRequest request)<a name="line.730"></a>
-<span class="sourceLineNo">731</span>      throws ServiceException {<a name="line.731"></a>
-<span class="sourceLineNo">732</span>    try {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>      return GetNamespaceDescriptorResponse.newBuilder()<a name="line.733"></a>
-<span class="sourceLineNo">734</span>        .setNamespaceDescriptor(ProtobufUtil.toProtoNamespaceDescriptor(<a name="line.734"></a>
-<span class="sourceLineNo">735</span>            master.getNamespace(request.getNamespaceName())))<a name="line.735"></a>
-<span class="sourceLineNo">736</span>        .build();<a name="line.736"></a>
-<span class="sourceLineNo">737</span>    } catch (IOException e) {<a name="line.737"></a>
-<span class="sourceLineNo">738</span>      throw new ServiceException(e);<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    }<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  }<a name="line.740"></a>
-<span class="sourceLineNo">741</span><a name="line.741"></a>
-<span class="sourceLineNo">742</span>  /**<a name="line.742"></a>
-<span class="sourceLineNo">743</span>   * Get the number of regions of the table that have been updated by the alter.<a name="line.743"></a>
-<span class="sourceLineNo">744</span>   *<a name="line.744"></a>
-<span class="sourceLineNo">745</span>   * @return Pair indicating the number of regions updated Pair.getFirst is the<a name="line.745"></a>
-<span class="sourceLineNo">746</span>   *         regions that are yet to be updated Pair.getSecond is the total number<a name="line.746"></a>
-<span class="sourceLineNo">747</span>   *         of regions of the table<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   * @throws ServiceException<a name="line.748"></a>
-<span class="sourceLineNo">749</span>   */<a name="line.749"></a>
-<span class="sourceLineNo">750</span>  @Override<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  public GetSchemaAlterStatusResponse getSchemaAlterStatus(<a name="line.751"></a>
-<span class="sourceLineNo">752</span>      RpcController controller, GetSchemaAlterStatusRequest req) throws ServiceException {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    // TODO: currently, we query using the table name on the client side. this<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    // may overlap with other table operations or the table operation may<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    // have completed before querying this API. We need to refactor to a<a name="line.755"></a>
-<span class="sourceLineNo">756</span>    // transaction system in the future to avoid these ambiguities.<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    TableName tableName = ProtobufUtil.toTableName(req.getTableName());<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>    try {<a name="line.759"></a>
-<span class="sourceLineNo">760</span>      master.checkInitialized();<a name="line.760"></a>
-<span class="sourceLineNo">761</span>      Pair&lt;Integer,Integer&gt; pair = master.assignmentManager.getReopenStatus(tableName);<a name="line.761"></a>
-<span class="sourceLineNo">762</span>      GetSchemaAlterStatusResponse.Builder ret = GetSchemaAlterStatusResponse.newBuilder();<a name="line.762"></a>
-<span class="sourceLineNo">763</span>      ret.setYetToUpdateRegions(pair.getFirst());<a name="line.763"></a>
-<span class="sourceLineNo">764</span>      ret.setTotalRegions(pair.getSecond());<a name="line.764"></a>
-<span class="sourceLineNo">765</span>      return ret.build();<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    } catch (IOException ioe) {<a name="line.766"></a>
-<span class="sourceLineNo">767</span>      throw new ServiceException(ioe);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    }<a name="line.768"></a>
-<span class="sourceLineNo">769</span>  }<a name="line.769"></a>
-<span class="sourceLineNo">770</span><a name="line.770"></a>
-<span class="sourceLineNo">771</span>  /**<a name="line.771"></a>
-<span class="sourceLineNo">772</span>   * Get list of TableDescriptors for requested tables.<a name="line.772"></a>
-<span class="sourceLineNo">773</span>   * @param c Unused (set to null).<a name="line.773"></a>
-<span class="sourceLineNo">774</span>   * @param req GetTableDescriptorsRequest that contains:<a name="line.774"></a>
-<span class="sourceLineNo">775</span>   * - tableNames: requested tables, or if empty, all are requested<a name="line.775"></a>
-<span class="sourceLineNo">776</span>   * @return GetTableDescriptorsResponse<a name="line.776"></a>
-<span class="sourceLineNo">777</span>   * @throws ServiceException<a name="line.777"></a>
-<span class="sourceLineNo">778</span>   */<a name="line.778"></a>
-<span class="sourceLineNo">779</span>  @Override<a name="line.779"></a>
-<span class="sourceLineNo">780</span>  public GetTableDescriptorsResponse getTableDescriptors(RpcController c,<a name="line.780"></a>
-<span class="sourceLineNo">781</span>      GetTableDescriptorsRequest req) throws ServiceException {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>    try {<a name="line.782"></a>
-<span class="sourceLineNo">783</span>      master.checkInitialized();<a name="line.783"></a>
-<span class="sourceLineNo">784</span><a name="line.784"></a>
-<span class="sourceLineNo">785</span>      final String regex = req.hasRegex() ? req.getRegex() : null;<a name="line.785"></a>
-<span class="sourceLineNo">786</span>      final String namespace = req.hasNamespace() ? req.getNamespace() : null;<a name="line.786"></a>
-<span class="sourceLineNo">787</span>      List&lt;TableName&gt; tableNameList = null;<a name="line.787"></a>
-<span class="sourceLineNo">788</span>      if (req.getTableNamesCount() &gt; 0) {<a name="line.788"></a>
-<span class="sourceLineNo">789</span>        tableNameList = new ArrayList&lt;TableName&gt;(req.getTableNamesCount());<a name="line.789"></a>
-<span class="sourceLineNo">790</span>        for (HBaseProtos.TableName tableNamePB: req.getTableNamesList()) {<a name="line.790"></a>
-<span class="sourceLineNo">791</span>          tableNameList.add(ProtobufUtil.toTableName(tableNamePB));<a name="line.791"></a>
-<span class="sourceLineNo">792</span>        }<a name="line.792"></a>
-<span class="sourceLineNo">793</span>      }<a name="line.793"></a>
-<span class="sourceLineNo">794</span><a name="line.794"></a>
-<span class="sourceLineNo">795</span>      List&lt;HTableDescriptor&gt; descriptors = master.listTableDescriptors(namespace, regex,<a name="line.795"></a>
-<span class="sourceLineNo">796</span>          tableNameList, req.getIncludeSysTables());<a name="line.796"></a>
-<span class="sourceLineNo">797</span><a name="line.797"></a>
-<span class="sourceLineNo">798</span>      GetTableDescriptorsResponse.Builder builder = GetTableDescriptorsResponse.newBuilder();<a name="line.798"></a>
-<span class="sourceLineNo">799</span>      if (descriptors != null &amp;&amp; descriptors.size() &gt; 0) {<a name="line.799"></a>
-<span class="sourceLineNo">800</span>        // Add the table descriptors to the response<a name="line.800"></a>
-<span class="sourceLineNo">801</span>        for (HTableDescriptor htd: descriptors) {<a name="line.801"></a>
-<span class="sourceLineNo">802</span>          builder.addTableSchema(htd.convert());<a name="line.802"></a>
-<span class="sourceLineNo">803</span>        }<a name="line.803"></a>
-<span class="sourceLineNo">804</span>      }<a name="line.804"></a>
-<span class="sourceLineNo">805</span>      return builder.build();<a name="line.805"></a>
-<span class="sourceLineNo">806</span>    } catch (IOException ioe) {<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      throw new ServiceException(ioe);<a name="line.807"></a>
-<span class="sourceLineNo">808</span>    }<a name="line.808"></a>
-<span class="sourceLineNo">809</span>  }<a name="line.809"></a>
-<span class="sourceLineNo">810</span><a name="line.810"></a>
-<span class="sourceLineNo">811</span>  /**<a name="line.811"></a>
-<span class="sourceLineNo">812</span>   * Get list of userspace table names<a name="line.812"></a>
-<span class="sourceLineNo">813</span>   * @param controller Unused (set to null).<a name="line.813"></a>
-<span class="sourceLineNo">814</span>   * @param req GetTableNamesRequest<a name="line.814"></a>
-<span class="sourceLineNo">815</span>   * @return GetTableNamesResponse<a name="line.815"></a>
-<span class="sourceLineNo">816</span>   * @throws ServiceException<a name="line.816"></a>
-<span class="sourceLineNo">817</span>   */<a name="line.817"></a>
-<span class="sourceLineNo">818</span>  @Override<a name="line.818"></a>
-<span class="sourceLineNo">819</span>  public GetTableNamesResponse getTableNames(RpcController controller,<a name="line.819"></a>
-<span class="sourceLineNo">820</span>      GetTableNamesRequest req) throws ServiceException {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>    try {<a name="line.821"></a>
-<span class="sourceLineNo">822</span>      master.checkServiceStarted();<a name="line.822"></a>
-<span class="sourceLineNo">823</span><a name="line.823"></a>
-<span class="sourceLineNo">824</span>      final String regex = req.hasRegex() ? req.getRegex() : null;<a name="line.824"></a>
-<span class="sourceLineNo">825</span>      final String namespace = req.hasNamespace() ? req.getNamespace() : null;<a name="line.825"></a>
-<span class="sourceLineNo">826</span>      List&lt;TableName&gt; tableNames = master.listTableNames(namespace, regex,<a name="line.826"></a>
-<span class="sourceLineNo">827</span>          req.getIncludeSysTables());<a name="line.827"></a>
-<span class="sourceLineNo">828</span><a name="line.828"></a>
-<span class="sourceLineNo">829</span>      GetTableNamesResponse.Builder builder = GetTableNamesResponse.newBuilder();<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      if (tableNames != null &amp;&amp; tableNames.size() &gt; 0) {<a name="line.830"></a>
-<span class="sourceLineNo">831</span>        // Add the table names to the response<a name="line.831"></a>
-<span class="sourceLineNo">832</span>        for (TableName table: tableNames) {<a name="line.832"></a>
-<span class="sourceLineNo">833</span>          builder.addTableNames(ProtobufUtil.toProtoTableName(table));<a name="line.833"></a>
-<span class="sourceLineNo">834</span>        }<a name="line.834"></a>
-<span class="sourceLineNo">835</span>      }<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      return builder.build();<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    } catch (IOException e) {<a name="line.837"></a>
-<span class="sourceLineNo">838</span>      throw new ServiceException(e);<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    }<a name="line.839"></a>
-<span class="sourceLineNo">840</span>  }<a name="line.840"></a>
-<span class="sourceLineNo">841</span><a name="line.841"></a>
-<span class="sourceLineNo">842</span>  @Override<a name="line.842"></a>
-<span class="sourceLineNo">843</span>  public MasterProtos.GetTableStateResponse getTableState(RpcController controller,<a name="line.843"></a>
-<span class="sourceLineNo">844</span>      MasterProtos.GetTableStateRequest request) throws ServiceException {<a name="line.844"></a>
-<span class="sourceLineNo">845</span>    try {<a name="line.845"></a>
-<span class="sourceLineNo">846</span>      master.checkServiceStarted();<a name="line.846"></a>
-<span class="sourceLineNo">847</span>      TableName tableName = ProtobufUtil.toTableName(request.getTableName());<a name="line.847"></a>
-<span class="sourceLineNo">848</span>      TableState.State state = master.getTableStateManager()<a name="line.848"></a>
-<span class="sourceLineNo">849</span>              .getTableState(tableName);<a name="line.849"></a>
-<span class="sourceLineNo">850</span>      MasterProtos.GetTableStateResponse.Builder builder =<a name="line.850"></a>
-<span class="sourceLineNo">851</span>              MasterProtos.GetTableStateResponse.newBuilder();<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      builder.setTableState(new TableState(tableName, state).convert());<a name="line.852"></a>
-<span class="sourceLineNo">853</span>      return builder.build();<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    } catch (IOException e) {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      throw new ServiceException(e);<a name="line.855"></a>
-<span class="sourceLineNo">856</span>    }<a name="line.856"></a>
-<span class="sourceLineNo">857</span>  }<a name="line.857"></a>
-<span class="sourceLineNo">858</span><a name="line.858"></a>
-<span class="sourceLineNo">859</span>  @Override<a name="line.859"></a>
-<span class="sourceLineNo">860</span>  public IsCatalogJanitorEnabledResponse isCatalogJanitorEnabled(RpcController c,<a name="line.860"></a>
-<span class="sourceLineNo">861</span>      IsCatalogJanitorEnabledRequest req) throws ServiceException {<a name="line.861"></a>
-<span class="sourceLineNo">862</span>    return IsCatalogJanitorEnabledResponse.newBuilder().setValue(<a name="line.862"></a>
-<span class="sourceLineNo">863</span>      master.isCatalogJanitorEnabled()).build();<a name="line.863"></a>
-<span class="sourceLineNo">864</span>  }<a name="line.864"></a>
-<span class="sourceLineNo">865</span><a name="line.865"></a>
-<span class="sourceLineNo">866</span>  @Override<a name="line.866"></a>
-<span class="sourceLineNo">867</span>  public IsMasterRunningResponse isMasterRunning(RpcController c,<a name="line.867"></a>
-<span class="sourceLineNo">868</span>      IsMasterRunningRequest req) throws ServiceException {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>    try {<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      master.checkServiceStarted();<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      return IsMasterRunningResponse.newBuilder().setIsMasterRunning(<a name="line.871"></a>
-<span class="sourceLineNo">872</span>        !master.isStopped()).build();<a name="line.872"></a>
-<span class="sourceLineNo">873</span>    } catch (IOException e) {<a name="line.873"></a>
-<span class="sourceLineNo">874</span>      throw new ServiceException(e);<a name="line.874"></a>
-<span class="sourceLineNo">875</span>    }<a name="line.875"></a>
-<span class="sourceLineNo">876</span>  }<a name="line.876"></a>
-<span class="sourceLineNo">877</span><a name="line.877"></a>
-<span class="sourceLineNo">878</span>  /**<a name="line.878"></a>
-<span class="sourceLineNo">879</span>   * Checks if the specified procedure is done.<a name="line.879"></a>
-<span class="sourceLineNo">880</span>   * @return true if the procedure is done, false if the procedure is in the process of completing<a name="line.880"></a>
-<span class="sourceLineNo">881</span>   * @throws ServiceException if invalid procedure or failed procedure with progress failure reason.<a name="line.881"></a>
-<span class="sourceLineNo">882</span>   */<a name="line.882"></a>
-<span class="sourceLineNo">883</span>  @Override<a name="line.883"></a>
-<span class="sourceLineNo">884</span>  public IsProcedureDoneResponse isProcedureDone(RpcController controller,<a name="line.884"></a>
-<span class="sourceLineNo">885</span>      IsProcedureDoneRequest request) throws ServiceException {<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    try {<a name="line.886"></a>
-<span class="sourceLineNo">887</span>      master.checkInitialized();<a name="line.887"></a>
-<span class="sourceLineNo">888</span>      ProcedureDescription desc = request.getProcedure();<a name="line.888"></a>
-<span class="sourceLineNo">889</span>      MasterProcedureManager mpm = master.mpmHost.getProcedureManager(<a name="line.889"></a>
-<span class="sourceLineNo">890</span>        desc.getSignature());<a name="line.890"></a>
-<span class="sourceLineNo">891</span>      if (mpm == null) {<a name="line.891"></a>
-<span class="sourceLineNo">892</span>        throw new ServiceException("The procedure is not registered: "<a name="line.892"></a>
-<span class="sourceLineNo">893</span>          + desc.getSignature());<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      }<a name="line.894"></a>
-<span class="sourceLineNo">895</span>      LOG.debug("Checking to see if procedure from request:"<a name="line.895"></a>
-<span class="sourceLineNo">896</span>        + desc.getSignature() + " is done");<a name="line.896"></a>
-<span class="sourceLineNo">897</span><a name="line.897"></a>
-<span class="sourceLineNo">898</span>      IsProcedureDoneResponse.Builder builder =<a name="line.898"></a>
-<span class="sourceLineNo">899</span>        IsProcedureDoneResponse.newBuilder();<a name="line.899"></a>
-<span class="sourceLineNo">900</span>      boolean done = mpm.isProcedureDone(desc);<a name="line.900"></a>
-<span class="sourceLineNo">901</span>      builder.setDone(done);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>      return builder.build();<a name="line.902"></a>
-<span class="sourceLineNo">903</span>    } catch (ForeignException e) {<a name="line.903"></a>
-<span class="sourceLineNo">904</span>      throw new ServiceException(e.getCause());<a name="line.904"></a>
-<span class="sourceLineNo">905</span>    } catch (IOException e) {<a name="line.905"></a>
-<span class="sourceLineNo">906</span>      throw new ServiceException(e);<a name="line.906"></a>
-<span class="sourceLineNo">907</span>    }<a name="line.907"></a>
-<span class="sourceLineNo">908</span>  }<a name="line.908"></a>
-<span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>  /**<a name="line.910"></a>
-<span class="sourceLineNo">911</span>   * Returns the status of the requested snapshot restore/clone operation.<a name="line.911"></a>
-<span class="sourceLineNo">912</span>   * This method is not exposed to the user, it is just used internally by HBaseAdmin<a name="line.912"></a>
-<span class="sourceLineNo">913</span>   * to verify if the restore is completed.<a name="line.913"></a>
-<span class="sourceLineNo">914</span>   *<a name="line.914"></a>
-<span class="sourceLineNo">915</span>   * No exceptions are thrown if the restore is not running, the result will be "done".<a name="line.915"></a>
-<span class="sourceLineNo">916</span>   *<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   * @return done &lt;tt&gt;true&lt;/tt&gt; if the restore/clone operation is completed.<a name="line.917"></a>
-<span class="sourceLineNo">918</span>   * @throws ServiceException if the operation failed.<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   */<a name="line.919"></a>
-<span class="sourceLineNo">920</span>  @Override<a name="line.920"></a>
-<span class="sourceLineNo">921</span>  public IsRestoreSnapshotDoneResponse isRestoreSnapshotDone(RpcController controller,<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      IsRestoreSnapshotDoneRequest request) throws ServiceException {<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    try {<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      master.checkInitialized();<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      SnapshotDescription snapshot = request.getSnapshot();<a name="line.925"></a>
-<span class="sourceLineNo">926</span>      IsRestoreSnapshotDoneResponse.Builder builder = IsRestoreSnapshotDoneResponse.newBuilder();<a name="line.926"></a>
-<span class="sourceLineNo">927</span>      boolean done = master.snapshotManager.isRestoreDone(snapshot);<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      builder.setDone(done);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      return builder.build();<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    } catch (ForeignException e) {<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      throw new ServiceException(e.getCause());<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    } catch (IOException e) {<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      throw new ServiceException(e);<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    }<a name="line.934"></a>
-<span class="sourceLineNo">935</span>  }<a name="line.935"></a>
-<span class="sourceLineNo">936</span><a name="line.936"></a>
-<span class="sourceLineNo">937</span>  /**<a name="line.937"></a>
-<span class="sourceLineNo">938</span>   * Checks if the specified snapshot is done.<a name="line.938"></a>
-<span class="sourceLineNo">939</span>   * @return true if the snapshot is in file system ready to use,<a name="line.939"></a>
-<span class="sourceLineNo">940</span>   *   false if the snapshot is in the process of completing<a name="line.940"></a>
-<span class="sourceLineNo">941</span>   * @throws ServiceException wrapping UnknownSnapshotException if invalid snapshot, or<a name="line.941"></a>
-<span class="sourceLineNo">942</span>   *  a wrapped HBaseSnapshotException with progress failure reason.<a name="line.942"></a>
-<span class="sourceLineNo">943</span>   */<a name="line.943"></a>
-<span class="sourceLineNo">944</span>  @Override<a name="line.944"></a>
-<span class="sourceLineNo">945</span>  public IsSnapshotDoneResponse isSnapshotDone(RpcController controller,<a name="line.945"></a>
-<span class="sourceLineNo">946</span>      IsSnapshotDoneRequest request) throws ServiceException {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>    LOG.debug("Checking to see if snapshot from request:" +<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      ClientSnapshotDescriptionUtils.toString(request.getSnapshot()) + " is done");<a name="line.948"></a>
-<span class="sourceLineNo">949</span>    try {<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      master.checkInitialized();<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      IsSnapshotDoneResponse.Builder builder = IsSnapshotDoneResponse.newBuilder();<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      boolean done = master.snapshotManager.isSnapshotDone(request.getSnapshot());<a name="line.952"></a>
-<span class="sourceLineNo">953</span>      builder.setDone(done);<a name="line.953"></a>
-<span class="sourceLineNo">954</span>      return builder.build();<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    } catch (ForeignException e) {<a name="line.955"></a>
-<span class="sourceLineNo">956</span>      throw new ServiceException(e.getCause());<a name="line.956"></a>
-<span class="sourceLineNo">957</span>    } catch (IOException e) {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>      throw new ServiceException(e);<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    }<a name="line.959"></a>
-<span class="sourceLineNo">960</span>  }<a name="line.960"></a>
-<span class="sourceLineNo">961</span><a name="line.961"></a>
-<span class="sourceLineNo">962</span>  @Override<a name="line.962"></a>
-<span class="sourceLineNo">963</span>  public GetProcedureResultResponse getProcedureResult(RpcController controller,<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      GetProcedureResultRequest request) throws ServiceException {<a name="line.964"></a>
-<span class="sourceLineNo">965</span>    LOG.debug("Checking to see if procedure is done procId=" + request.getProcId());<a name="line.965"></a>
-<span class="sourceLineNo">966</span>    try {<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      master.checkInitialized();<a name="line.967"></a>
-<span class="sourceLineNo">968</span>      GetProcedureResultResponse.Builder builder = GetProcedureResultResponse.newBuilder();<a name="line.968"></a>
-<span class="sourceLineNo">969</span><a name="line.969"></a>
-<span class="sourceLineNo">970</span>      Pair&lt;ProcedureInfo, Procedure&gt; v = master.getMasterProcedureExecutor()<a name="line.970"></a>
-<span class="sourceLineNo">971</span>          .getResultOrProcedure(request.getProcId());<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      if (v.getFirst() != null) {<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        ProcedureInfo result = v.getFirst();<a name="line.973"></a>
-<span class="sourceLineNo">974</span>        builder.setState(GetProcedureResultResponse.State.FINISHED);<a name="line.974"></a>
-<span class="sourceLineNo">975</span>        builder.setStartTime(result.getStartTime());<a name="line.975"></a>
-<span class="sourceLineNo">976</span>        builder.setLastUpdate(result.getLastUpdate());<a name="line.976"></a>
-<span class="sourceLineNo">977</span>        if (result.isFailed()) {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>          builder.setException(result.getForeignExceptionMessage());<a name="line.978"></a>
-<span class="sourceLineNo">979</span>        }<a name="line.979"></a>
-<span class="sourceLineNo">980</span>        if (result.hasResultData()) {<a name="line.980"></a>
-<span class="sourceLineNo">981</span>          builder.setResult(ByteStringer.wrap(result.getResult()));<a name="line.981"></a>
-<span class="sourceLineNo">982</span>        }<a name="line.982"></a>
-<span class="sourceLineNo">983</span>        master.getMasterProcedureExecutor().removeResult(request.getProcId());<a name="line.983"></a>
-<span class="sourceLineNo">984</span>      } else {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>        Procedure proc = v.getSecond();<a name="line.985"></a>
-<span class="sourceLineNo">986</span>        if (proc == null) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>          builder.setState(GetProcedureResultResponse.State.NOT_FOUND);<a name="line.987"></a>
-<span class="sourceLineNo">988</span>        } else {<a name="line.988"></a>
-<span class="sourceLineNo">989</span>          builder.setState(GetProcedureResultResponse.State.RUNNING);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>          builder.setStartTime(proc.getStartTime());<a name="line.990"></a>
-<span class="sourceLineNo">991</span>          builder.setLastUpdate(proc.getLastUpdate());<a name="line.991"></a>
-<span class="sourceLineNo">992</span>        }<a name="line.992"></a>
-<span class="sourceLineNo">993</span>      }<a name="line.993"></a>
-<span class="sourceLineNo">994</span>      return builder.build();<a name="line.994"></a>
-<span class="sourceLineNo">995</span>    } catch (IOException e) {<a name="line.995"></a>
-<span class="sourceLineNo">996</span>      throw new ServiceException(e);<a name="line.996"></a>
-<span class="sourceLineNo">997</span>    }<a name="line.997"></a>
-<span class="sourceLineNo">998</span>  }<a name="line.998"></a>
-<span class="sourceLineNo">999</span><a name="line.999"></a>
-<span class="sourceLineNo">1000</span>  @Override<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>  public AbortProcedureResponse abortProcedure(<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>      RpcController rpcController,<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>      AbortProcedureRequest request) throws ServiceException {<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      AbortProcedureResponse.Builder response = AbortProcedureResponse.newBuilder();<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      boolean abortResult =<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>          master.abortProcedure(request.getProcId(), request.getMayInterruptIfRunning());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      response.setIsProcedureAborted(abortResult);<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>      return response.build();<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    } catch (IOException e) {<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      throw new ServiceException(e);<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>    }<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>  }<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span><a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>  @Override<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>  public ListNamespaceDescriptorsResponse listNamespaceDescriptors(RpcController c,<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>      ListNamespaceDescriptorsRequest request) throws ServiceException {<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>    try {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>      ListNamespaceDescriptorsResponse.Builder response =<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        ListNamespaceDescriptorsResponse.newBuilder();<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      for(NamespaceDescriptor ns: master.getNamespaces()) {<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>        response.addNamespaceDescriptor(ProtobufUtil.toProtoNamespaceDescriptor(ns));<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      }<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>      return response.build();<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    } catch (IOException e) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>      throw new ServiceException(e);<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>    }<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>  }<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span><a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>  @Override<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>  public ListProceduresResponse listProcedures(<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>      RpcController rpcController,<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>      ListProceduresRequest request) throws ServiceException {<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>    try {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>      ListProceduresResponse.Builder response =<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>          ListProceduresResponse.newBuilder();<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>      for(ProcedureInfo p: master.listProcedures()) {<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>        response.addProcedure(ProcedureInfo.convertToProcedureProto(p));<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>      }<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>      return response.build();<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    } catch (IOException e) {<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>      throw new ServiceException(e);<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    }<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>  }<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span><a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>  @Override<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>  public ListTableDescriptorsByNamespaceResponse listTableDescriptorsByNamespace(RpcController c,<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>      ListTableDescriptorsByNamespaceRequest request) throws ServiceException {<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>    try {<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>      ListTableDescriptorsByNamespaceResponse.Builder b =<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>          ListTableDescriptorsByNamespaceResponse.newBuilder();<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>      for (HTableDescriptor htd : master<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>          .listTableDescriptorsByNamespace(request.getNamespaceName())) {<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>        b.addTableSchema(htd.convert());<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>      }<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>      return b.build();<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>    } catch (IOException e) {<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>      throw new ServiceException(e);<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>    }<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>  }<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span><a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>  @Override<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>  public ListTableNamesByNamespaceResponse listTableNamesByNamespace(RpcController c,<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>      ListTableNamesByNamespaceRequest request) throws ServiceException {<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>    try {<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      ListTableNamesByNamespaceResponse.Builder b =<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>        ListTableNamesByNamespaceResponse.newBuilder();<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>      for (TableName tableName: master.listTableNamesByNamespace(request.getNamespaceName())) {<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>        b.addTableName(ProtobufUtil.toProtoTableName(tableName));<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      }<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>      return b.build();<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    } catch (IOException e) {<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>      throw new ServiceException(e);<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    }<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span><a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>  @Override<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>  public ModifyColumnResponse modifyColumn(RpcController controller,<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>      ModifyColumnRequest req) throws ServiceException {<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>    try {<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>      long procId = master.modifyColumn(<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>        ProtobufUtil.toTableName(req.getTableName()),<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>        HColumnDescriptor.convert(req.getColumnFamilies()),<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        req.getNonceGroup(),<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        req.getNonce());<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>      if (procId == -1) {<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        // This mean operation was not performed in server, so do not set any procId<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>        return ModifyColumnResponse.newBuilder().build();<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>      } else {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        return ModifyColumnResponse.newBuilder().setProcId(procId).build();<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>    } catch (IOException ioe) {<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>      throw new ServiceException(ioe);<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    }<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>  }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span><a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>  @Override<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>  public ModifyNamespaceResponse modifyNamespace(RpcController controller,<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>      ModifyNamespaceRequest request) throws ServiceException {<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>    try {<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>      long procId = master.modifyNamespace(<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>        ProtobufUtil.toNamespaceDescriptor(request.getNamespaceDescriptor()),<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>        request.getNonceGroup(),<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>        request.getNonce());<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>      return ModifyNamespaceResponse.newBuilder().setProcId(procId).build();<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>    } catch (IOException e) {<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>      throw new ServiceException(e);<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>    }<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>  }<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span><a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>  @Override<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>  public ModifyTableResponse modifyTable(RpcController controller,<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      ModifyTableRequest req) throws ServiceException {<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>    try {<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>      long procId = master.modifyTable(<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>        ProtobufUtil.toTableName(req.getTableName()),<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>        HTableDescriptor.convert(req.getTableSchema()),<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>        req.getNonceGroup(),<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>        req.getNonce());<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>      return ModifyTableResponse.newBuilder().setProcId(procId).build();<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    } catch (IOException ioe) {<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>      throw new ServiceException(ioe);<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>    }<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>  }<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span><a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  @Override<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>  public MoveRegionResponse moveRegion(RpcController controller,<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>      MoveRegionRequest req) throws ServiceException {<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>    final byte [] encodedRegionName = req.getRegion().getValue().toByteArray();<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>    RegionSpecifierType type = req.getRegion().getType();<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>    final byte [] destServerName = (req.hasDestServerName())?<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>      Bytes.toBytes(ProtobufUtil.toServerName(req.getDestServerName()).getServerName()):null;<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>    MoveRegionResponse mrr = MoveRegionResponse.newBuilder().build();<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span><a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>    if (type != RegionSpecifierType.ENCODED_REGION_NAME) {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>      LOG.warn("moveRegion specifier type: expected: " + RegionSpecifierType.ENCODED_REGION_NAME<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>        + " actual: " + type);<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>    }<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span><a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    try {<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      master.checkInitialized();<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>      master.move(encodedRegionName, destServerName);<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>    } catch (IOException ioe) {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>      throw new ServiceException(ioe);<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    }<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>    return mrr;<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>  }<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span><a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>  /**<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>   * Offline specified region from master's in-memory state. It will not attempt to<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>   * reassign the region as in unassign.<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>   *<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>   * This is a special method that should be used by experts or hbck.<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>   *<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>   */<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>  @Override<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>  public OfflineRegionResponse offlineRegion(RpcController controller,<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      OfflineRegionRequest request) throws ServiceException {<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    final byte [] regionName = request.getRegion().getValue().toByteArray();<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>    RegionSpecifierType type = request.getRegion().getType();<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    if (type != RegionSpecifierType.REGION_NAME) {<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>      LOG.warn("moveRegion specifier type: expected: " + RegionSpecifierType.REGION_NAME<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>        + " actual: " + type);<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>    }<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span><a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>    try {<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>      master.checkInitialized();<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>      Pair&lt;HRegionInfo, ServerName&gt; pair =<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>        MetaTableAccessor.getRegion(master.getConnection(), regionName);<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>      if (pair == null) throw new UnknownRegionException(Bytes.toStringBinary(regionName));<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>      HRegionInfo hri = pair.getFirst();<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>      if (master.cpHost != null) {<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>        master.cpHost.preRegionOffline(hri);<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>      }<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      LOG.info(master.getClientIdAuditPrefix() + " offline " + hri.getRegionNameAsString());<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>      master.assignmentManager.regionOffline(hri);<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>      if (master.cpHost != null) {<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>        master.cpHost.postRegionOffline(hri);<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>      }<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    } catch (IOException ioe) {<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      throw new ServiceException(ioe);<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>    }<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>    return OfflineRegionResponse.newBuilder().build();<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>  }<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span><a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>  /**<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>   * Execute Restore/Clone snapshot operation.<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>   *<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>   * &lt;p&gt;If the specified table exists a "Restore" is executed, replacing the table<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>   * schema and directory data with the content of the snapshot.<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>   * The table must be disabled, or a UnsupportedOperationException will be thrown.<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>   *<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>   * &lt;p&gt;If the table doesn't exist a "Clone" is executed, a new table is created<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>   * using the schema at the time of the snapshot, and the content of the snapshot.<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>   *<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>   * &lt;p&gt;The restore/clone operation does not require copying HFiles. Since HFiles<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>   * are immutable the table can point to and use the same files as the original one.<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>   */<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>  @Override<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>  public RestoreSnapshotResponse restoreSnapshot(RpcController controller,<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>      RestoreSnapshotRequest request) throws ServiceException {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>    try {<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>      master.checkInitialized();<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      master.snapshotManager.checkSnapshotSupport();<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span><a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>      // Ensure namespace exists. Will throw exception if non-known NS.<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>      TableName dstTable = TableName.valueOf(request.getSnapshot().getTable());<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>      master.getNamespace(dstTable.getNamespaceAsString());<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      SnapshotDescription reqSnapshot = request.getSnapshot();<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>      master.snapshotManager.restoreSnapshot(reqSnapshot);<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>      return RestoreSnapshotResponse.newBuilder().build();<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>    } catch (ForeignException e) {<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      throw new ServiceException(e.getCause());<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    } catch (IOException e) {<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      throw new ServiceException(e);<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>    }<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>  }<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span><a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>  @Override<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>  public RunCatalogScanResponse runCatalogScan(RpcController c,<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>      RunCatalogScanRequest req) throws ServiceException {<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>    try {<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      master.checkInitialized();<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      return ResponseConverter.buildRunCatalogScanResponse(master.catalogJanitorChore.scan());<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>    } catch (IOException ioe) {<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>      throw new ServiceException(ioe);<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    }<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span><a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>  @Override<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>  public SetBalancerRunningResponse setBalancerRunning(RpcController c,<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      SetBalancerRunningRequest req) throws ServiceException {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    try {<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>      master.checkInitialized();<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>      boolean prevValue = (req.getSynchronous())?<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>        synchronousBalanceSwitch(req.getOn()) : master.balanceSwitch(req.getOn());<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>      return SetBalancerRunningResponse.newBuilder().setPrevBalanceValue(prevValue).build();<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>    } catch (IOException ioe) {<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>      throw new ServiceException(ioe);<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    }<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>  }<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span><a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>  @Override<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>  public ShutdownResponse shutdown(RpcController controller,<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>      ShutdownRequest request) throws ServiceException {<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>    LOG.info(master.getClientIdAuditPrefix() + " shutdown");<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>    master.shutdown();<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>    return ShutdownResponse.newBuilder().build();<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>  }<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span><a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>  /**<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>   * Triggers an asynchronous attempt to take a snapshot.<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>   * {@inheritDoc}<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>   */<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>  @Override<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>  public SnapshotResponse snapshot(RpcController controller,<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      SnapshotRequest request) throws ServiceException {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>    try {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>      master.checkInitialized();<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>      master.snapshotManager.checkSnapshotSupport();<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span><a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>      LOG.info(master.getClientIdAuditPrefix() + " snapshot request for:" +<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>        ClientSnapshotDescriptionUtils.toString(request.getSnapshot()));<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>      // get the snapshot information<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      SnapshotDescription snapshot = SnapshotDescriptionUtils.validate(<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>        request.getSnapshot(), master.getConfiguration());<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>      master.snapshotManager.takeSnapshot(snapshot);<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span><a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>      // send back the max amount of time the client should wait for the snapshot to complete<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>      long waitTime = SnapshotDescriptionUtils.getMaxMasterTimeout(master.getConfiguration(),<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>        snapshot.getType(), SnapshotDescriptionUtils.DEFAULT_MAX_WAIT_TIME);<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>      return SnapshotResponse.newBuilder().setExpectedTimeout(waitTime).build();<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>    } catch (ForeignException e) {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>      throw new ServiceException(e.getCause());<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>    } catch (IOException e) {<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>      throw new ServiceException(e);<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>    }<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  }<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span><a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  @Override<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>  public StopMasterResponse stopMaster(RpcController controller,<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>      StopMasterRequest request) throws ServiceException {<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>    LOG.info(master.getClientIdAuditPrefix() + " stop");<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>    master.stopMaster();<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>    return StopMasterResponse.newBuilder().build();<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>  }<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span><a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>  @Override<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>  public UnassignRegionResponse unassignRegion(RpcController controller,<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>      UnassignRegionRequest req) throws ServiceException {<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>    try {<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>      final byte [] regionName = req.getRegion().getValue().toByteArray();<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>      RegionSpecifierType type = req.getRegion().getType();<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>      final boolean force = req.getForce();<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>      UnassignRegionResponse urr = UnassignRegionResponse.newBuilder().build();<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>      master.checkInitialized();<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>      if (type != RegionSpecifierType.REGION_NAME) {<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>        LOG.warn("unassignRegion specifier type: expected: " + RegionSpecifierType.REGION_NAME<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>          + " actual: " + type);<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>      }<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>      Pair&lt;HRegionInfo, ServerName&gt; pair =<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>        MetaTableAccessor.getRegion(master.getConnection(), regionName);<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>      if (pair == null) throw new UnknownRegionException(Bytes.toString(regionName));<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>      HRegionInfo hri = pair.getFirst();<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>      if (master.cpHost != null) {<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>        if (master.cpHost.preUnassign(hri, force)) {<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>          return urr;<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>        }<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>      }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>      LOG.debug(master.getClientIdAuditPrefix() + " unassign " + hri.getRegionNameAsString()<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>          + " in current location if it is online and reassign.force=" + force);<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>      master.assignmentManager.unassign(hri);<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>      if (master.cpHost != null) {<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>        master.cpHost.postUnassign(hri, force);<a name="line.1315"></a>
+<span class="sourceLineNo">527</span>    try {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>      master.cpHost.preDispatchMerge(regionInfoA, regionInfoB);<a name="line.528"></a>
+<span class="sourceLineNo">529</span>    } catch (IOException ioe) {<a name="line.529"></a>
+<span class="sourceLineNo">530</span>      throw new ServiceException(ioe);<a name="line.530"></a>
+<span class="sourceLineNo">531</span>    }<a name="line.531"></a>
+<span class="sourceLineNo">532</span><a name="line.532"></a>
+<span class="sourceLineNo">533</span>    if (!forcible &amp;&amp; !HRegionInfo.areAdjacent(regionInfoA, regionInfoB)) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>      throw new ServiceException(new MergeRegionException(<a name="line.534"></a>
+<span class="sourceLineNo">535</span>        "Unable to merge not adjacent regions "<a name="line.535"></a>
+<span class="sourceLineNo">536</span>          + regionInfoA.getRegionNameAsString() + ", "<a name="line.536"></a>
+<span class="sourceLineNo">537</span>          + regionInfoB.getRegionNameAsString()<a name="line.537"></a>
+<span class="sourceLineNo">538</span>          + " where forcible = " + forcible));<a name="line.538"></a>
+<span class="sourceLineNo">539</span>    }<a name="line.539"></a>
+<span class="sourceLineNo">540</span><a name="line.540"></a>
+<span class="sourceLineNo">541</span>    try {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>      master.dispatchMergingRegions(regionInfoA, regionInfoB, forcible);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>      master.cpHost.postDispatchMerge(regionInfoA, regionInfoB);<a name="line.543"></a>
+<span class="sourceLineNo">544</span>    } catch (IOException ioe) {<a name="line.544"></a>
+<span class="sourceLineNo">545</span>      throw new ServiceException(ioe);<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    }<a name="line.546"></a>
+<span class="sourceLineNo">547</span><a name="line.547"></a>
+<span class="sourceLineNo">548</span>    return DispatchMergingRegionsResponse.newBuilder().build();<a name="line.548"></a>
+<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>  @Override<a name="line.551"></a>
+<span class="sourceLineNo">552</span>  public EnableCatalogJanitorResponse enableCatalogJanitor(RpcController c,<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      EnableCatalogJanitorRequest req) throws ServiceException {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    try {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      master.checkInitialized();<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    } catch (IOException ioe) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>      throw new ServiceException(ioe);<a name="line.557"></a>
+<span class="sourceLineNo">558</span>    }<a name="line.558"></a>
+<span class="sourceLineNo">559</span>    return EnableCatalogJanitorResponse.newBuilder().setPrevValue(<a name="line.559"></a>
+<span class="sourceLineNo">560</span>      master.catalogJanitorChore.setEnabled(req.getEnable())).build();<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>  @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>  public EnableTableResponse enableTable(RpcController controller,<a name="line.564"></a>
+<span class="sourceLineNo">565</span>      EnableTableRequest request) throws ServiceException {<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    try {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>      long procId = master.enableTable(<a name="line.567"></a>
+<span class="sourceLineNo">568</span>        ProtobufUtil.toTableName(request.getTableName()),<a name="line.568"></a>
+<span class="sourceLineNo">569</span>        request.getNonceGroup(),<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        request.getNonce());<a name="line.570"></a>
+<span class="sourceLineNo">571</span>      return EnableTableResponse.newBuilder().setProcId(procId).build();<a name="line.571"></a>
+<span class="sourceLineNo">572</span>    } catch (IOException ioe) {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>      throw new ServiceException(ioe);<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    }<a name="line.574"></a>
+<span class="sourceLineNo">575</span>  }<a name="line.575"></a>
+<span class="sourceLineNo">576</span><a name="line.576"></a>
+<span class="sourceLineNo">577</span>  @Override<a name="line.577"></a>
+<span class="sourceLineNo">578</span>  public ClientProtos.CoprocessorServiceResponse execMasterService(final RpcController controller,<a name="line.578"></a>
+<span class="sourceLineNo">579</span>      final ClientProtos.CoprocessorServiceRequest request) throws ServiceException {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>    try {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>      master.checkInitialized();<a name="line.581"></a>
+<span class="sourceLineNo">582</span>      ServerRpcController execController = new ServerRpcController();<a name="line.582"></a>
+<span class="sourceLineNo">583</span><a name="line.583"></a>
+<span class="sourceLineNo">584</span>      ClientProtos.CoprocessorServiceCall call = request.getCall();<a name="line.584"></a>
+<span class="sourceLineNo">585</span>      String serviceName = call.getServiceName();<a name="line.585"></a>
+<span class="sourceLineNo">586</span>      String methodName = call.getMethodName();<a name="line.586"></a>
+<span class="sourceLineNo">587</span>      if (!master.coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>        throw new UnknownProtocolException(null,<a name="line.588"></a>
+<span class="sourceLineNo">589</span>          "No registered master coprocessor service found for name "+serviceName);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>      }<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>      Service service = master.coprocessorServiceHandlers.get(serviceName);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>      Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();<a name="line.593"></a>
+<span class="sourceLineNo">594</span>      Descriptors.MethodDescriptor methodDesc = serviceDesc.findMethodByName(methodName);<a name="line.594"></a>
+<span class="sourceLineNo">595</span>      if (methodDesc == null) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>        throw new UnknownProtocolException(service.getClass(),<a name="line.596"></a>
+<span class="sourceLineNo">597</span>          "Unknown method "+methodName+" called on master service "+serviceName);<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>      //invoke the method<a name="line.600"></a>
+<span class="sourceLineNo">601</span>      Message.Builder builderForType = service.getRequestPrototype(methodDesc).newBuilderForType();<a name="line.601"></a>
+<span class="sourceLineNo">602</span>      ProtobufUtil.mergeFrom(builderForType, call.getRequest());<a name="line.602"></a>
+<span class="sourceLineNo">603</span>      Message execRequest = builderForType.build();<a name="line.603"></a>
+<span class="sourceLineNo">604</span>      final Message.Builder responseBuilder =<a name="line.604"></a>
+<span class="sourceLineNo">605</span>          service.getResponsePrototype(methodDesc).newBuilderForType();<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      service.callMethod(methodDesc, execController, execRequest, new RpcCallback&lt;Message&gt;() {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>        @Override<a name="line.607"></a>
+<span class="sourceLineNo">608</span>        public void run(Message message) {<a name="line.608"></a>
+<span class="sourceLineNo"

<TRUNCATED>

[11/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.InvalidWALDataException.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.InvalidWALDataException.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.InvalidWALDataException.html
index 7e13ac4..a2d35fb 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.InvalidWALDataException.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.InvalidWALDataException.html
@@ -73,173 +73,172 @@
 <span class="sourceLineNo">065</span>  }<a name="line.65"></a>
 <span class="sourceLineNo">066</span><a name="line.66"></a>
 <span class="sourceLineNo">067</span>  interface Loader extends ProcedureLoader {<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    void removeLog(ProcedureWALFile log);<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    void markCorruptedWAL(ProcedureWALFile log, IOException e);<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  }<a name="line.70"></a>
-<span class="sourceLineNo">071</span><a name="line.71"></a>
-<span class="sourceLineNo">072</span>  private ProcedureWALFormat() {}<a name="line.72"></a>
-<span class="sourceLineNo">073</span><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  public static void load(final Iterator&lt;ProcedureWALFile&gt; logs,<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      final ProcedureStoreTracker tracker, final Loader loader) throws IOException {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    ProcedureWALFormatReader reader = new ProcedureWALFormatReader(tracker);<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    tracker.setKeepDeletes(true);<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    try {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      while (logs.hasNext()) {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>        ProcedureWALFile log = logs.next();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>        log.open();<a name="line.81"></a>
-<span class="sourceLineNo">082</span>        try {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>          reader.read(log, loader);<a name="line.83"></a>
-<span class="sourceLineNo">084</span>        } finally {<a name="line.84"></a>
-<span class="sourceLineNo">085</span>          log.close();<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>      reader.finalize(loader);<a name="line.88"></a>
-<span class="sourceLineNo">089</span>      // The tracker is now updated with all the procedures read from the logs<a name="line.89"></a>
-<span class="sourceLineNo">090</span>      tracker.setPartialFlag(false);<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      tracker.resetUpdates();<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    } finally {<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      tracker.setKeepDeletes(false);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    }<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  }<a name="line.95"></a>
-<span class="sourceLineNo">096</span><a name="line.96"></a>
-<span class="sourceLineNo">097</span>  public static void writeHeader(OutputStream stream, ProcedureWALHeader header)<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      throws IOException {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    header.writeDelimitedTo(stream);<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>  /*<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * +-----------------+<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * | END OF WAL DATA | &lt;---+<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>   * |     Tracker     |     |<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>   * |     version     |     |<a name="line.110"></a>
-<span class="sourceLineNo">111</span>   * +-----------------+     |<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   * |  TRAILER_MAGIC  |     |<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   * +-----------------+     |<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   * |      offset     |-----+<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 static void writeTrailer(FSDataOutputStream stream, ProcedureStoreTracker tracker)<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      throws IOException {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    long offset = stream.getPos();<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>    // Write EOF Entry<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    ProcedureWALEntry.newBuilder()<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      .setType(ProcedureWALEntry.Type.PROCEDURE_WAL_EOF)<a name="line.123"></a>
-<span class="sourceLineNo">124</span>      .build().writeDelimitedTo(stream);<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>    // Write Tracker<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    tracker.writeTo(stream);<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>    stream.write(TRAILER_VERSION);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    StreamUtils.writeLong(stream, TRAILER_MAGIC);<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    StreamUtils.writeLong(stream, offset);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>  }<a name="line.132"></a>
-<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>  public static ProcedureWALHeader readHeader(InputStream stream)<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      throws IOException {<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    ProcedureWALHeader header;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    try {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      header = ProcedureWALHeader.parseDelimitedFrom(stream);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    } catch (InvalidProtocolBufferException e) {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      throw new InvalidWALDataException(e);<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    }<a name="line.141"></a>
-<span class="sourceLineNo">142</span><a name="line.142"></a>
-<span class="sourceLineNo">143</span>    if (header == null) {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      throw new InvalidWALDataException("No data available to read the Header");<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>    if (header.getVersion() &lt; 0 || header.getVersion() != HEADER_VERSION) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      throw new InvalidWALDataException("Invalid Header version. got " + header.getVersion() +<a name="line.148"></a>
-<span class="sourceLineNo">149</span>          " expected " + HEADER_VERSION);<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>    if (header.getType() &lt; 0 || header.getType() &gt; LOG_TYPE_MAX_VALID) {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      throw new InvalidWALDataException("Invalid header type. got " + header.getType());<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>    return header;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>  }<a name="line.157"></a>
-<span class="sourceLineNo">158</span><a name="line.158"></a>
-<span class="sourceLineNo">159</span>  public static ProcedureWALTrailer readTrailer(FSDataInputStream stream, long startPos, long size)<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      throws IOException {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    long trailerPos = size - 17; // Beginning of the Trailer Jump<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>    if (trailerPos &lt; startPos) {<a name="line.163"></a>
-<span class="sourceLineNo">164</span>      throw new InvalidWALDataException("Missing trailer: size=" + size + " startPos=" + startPos);<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    }<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>    stream.seek(trailerPos);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    int version = stream.read();<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    if (version != TRAILER_VERSION) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>      throw new InvalidWALDataException("Invalid Trailer version. got " + version +<a name="line.170"></a>
-<span class="sourceLineNo">171</span>          " expected " + TRAILER_VERSION);<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>    long magic = StreamUtils.readLong(stream);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    if (magic != TRAILER_MAGIC) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      throw new InvalidWALDataException("Invalid Trailer magic. got " + magic +<a name="line.176"></a>
-<span class="sourceLineNo">177</span>          " expected " + TRAILER_MAGIC);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>    long trailerOffset = StreamUtils.readLong(stream);<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    stream.seek(trailerOffset);<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>    ProcedureWALEntry entry = readEntry(stream);<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    if (entry.getType() != ProcedureWALEntry.Type.PROCEDURE_WAL_EOF) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      throw new InvalidWALDataException("Invalid Trailer begin");<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>    ProcedureWALTrailer trailer = ProcedureWALTrailer.newBuilder()<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      .setVersion(version)<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      .setTrackerPos(stream.getPos())<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      .build();<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    return trailer;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  }<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  public static ProcedureWALEntry readEntry(InputStream stream) throws IOException {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    return ProcedureWALEntry.parseDelimitedFrom(stream);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>  }<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  public static void writeEntry(ByteSlot slot, ProcedureWALEntry.Type type,<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      Procedure proc, Procedure[] subprocs) throws IOException {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    ProcedureWALEntry.Builder builder = ProcedureWALEntry.newBuilder();<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    builder.setType(type);<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    builder.addProcedure(Procedure.convert(proc));<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    if (subprocs != null) {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>      for (int i = 0; i &lt; subprocs.length; ++i) {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        builder.addProcedure(Procedure.convert(subprocs[i]));<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      }<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    builder.build().writeDelimitedTo(slot);<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 static void writeInsert(ByteSlot slot, Procedure proc)<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      throws IOException {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    writeEntry(slot, ProcedureWALEntry.Type.PROCEDURE_WAL_INIT, proc, null);<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>  public static void writeInsert(ByteSlot slot, Procedure proc, Procedure[] subprocs)<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      throws IOException {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    writeEntry(slot, ProcedureWALEntry.Type.PROCEDURE_WAL_INSERT, proc, subprocs);<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>  public static void writeUpdate(ByteSlot slot, Procedure proc)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      throws IOException {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    writeEntry(slot, ProcedureWALEntry.Type.PROCEDURE_WAL_UPDATE, proc, null);<a name="line.224"></a>
-<span class="sourceLineNo">225</span>  }<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>  public static void writeDelete(ByteSlot slot, long procId)<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      throws IOException {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    ProcedureWALEntry.Builder builder = ProcedureWALEntry.newBuilder();<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    builder.setType(ProcedureWALEntry.Type.PROCEDURE_WAL_DELETE);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    builder.setProcId(procId);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    builder.build().writeDelimitedTo(slot);<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">068</span>    void markCorruptedWAL(ProcedureWALFile log, IOException e);<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  private ProcedureWALFormat() {}<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>  public static void load(final Iterator&lt;ProcedureWALFile&gt; logs,<a name="line.73"></a>
+<span class="sourceLineNo">074</span>      final ProcedureStoreTracker tracker, final Loader loader) throws IOException {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    ProcedureWALFormatReader reader = new ProcedureWALFormatReader(tracker);<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    tracker.setKeepDeletes(true);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    try {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      while (logs.hasNext()) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>        ProcedureWALFile log = logs.next();<a name="line.79"></a>
+<span class="sourceLineNo">080</span>        log.open();<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        try {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>          reader.read(log, loader);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        } finally {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>          log.close();<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>      }<a name="line.86"></a>
+<span class="sourceLineNo">087</span>      reader.finalize(loader);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>      // The tracker is now updated with all the procedures read from the logs<a name="line.88"></a>
+<span class="sourceLineNo">089</span>      tracker.setPartialFlag(false);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      tracker.resetUpdates();<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    } finally {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      tracker.setKeepDeletes(false);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public static void writeHeader(OutputStream stream, ProcedureWALHeader header)<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      throws IOException {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    header.writeDelimitedTo(stream);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>  /*<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   * +-----------------+<a name="line.102"></a>
+<span class="sourceLineNo">103</span>   * | END OF WAL DATA | &lt;---+<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>   * |     Tracker     |     |<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   * |                 |     |<a name="line.107"></a>
+<span class="sourceLineNo">108</span>   * +-----------------+     |<a name="line.108"></a>
+<span class="sourceLineNo">109</span>   * |     version     |     |<a name="line.109"></a>
+<span class="sourceLineNo">110</span>   * +-----------------+     |<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   * |  TRAILER_MAGIC  |     |<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   * +-----------------+     |<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   * |      offset     |-----+<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>  public static void writeTrailer(FSDataOutputStream stream, ProcedureStoreTracker tracker)<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      throws IOException {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    long offset = stream.getPos();<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>    // Write EOF Entry<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    ProcedureWALEntry.newBuilder()<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      .setType(ProcedureWALEntry.Type.PROCEDURE_WAL_EOF)<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      .build().writeDelimitedTo(stream);<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>    // Write Tracker<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    tracker.writeTo(stream);<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>    stream.write(TRAILER_VERSION);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    StreamUtils.writeLong(stream, TRAILER_MAGIC);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    StreamUtils.writeLong(stream, offset);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>  public static ProcedureWALHeader readHeader(InputStream stream)<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      throws IOException {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    ProcedureWALHeader header;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    try {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      header = ProcedureWALHeader.parseDelimitedFrom(stream);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    } catch (InvalidProtocolBufferException e) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      throw new InvalidWALDataException(e);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>    if (header == null) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      throw new InvalidWALDataException("No data available to read the Header");<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>    if (header.getVersion() &lt; 0 || header.getVersion() != HEADER_VERSION) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      throw new InvalidWALDataException("Invalid Header version. got " + header.getVersion() +<a name="line.147"></a>
+<span class="sourceLineNo">148</span>          " expected " + HEADER_VERSION);<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>    if (header.getType() &lt; 0 || header.getType() &gt; LOG_TYPE_MAX_VALID) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      throw new InvalidWALDataException("Invalid header type. got " + header.getType());<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    }<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>    return header;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>  }<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span>  public static ProcedureWALTrailer readTrailer(FSDataInputStream stream, long startPos, long size)<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      throws IOException {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    long trailerPos = size - 17; // Beginning of the Trailer Jump<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>    if (trailerPos &lt; startPos) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      throw new InvalidWALDataException("Missing trailer: size=" + size + " startPos=" + startPos);<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>    stream.seek(trailerPos);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    int version = stream.read();<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    if (version != TRAILER_VERSION) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      throw new InvalidWALDataException("Invalid Trailer version. got " + version +<a name="line.169"></a>
+<span class="sourceLineNo">170</span>          " expected " + TRAILER_VERSION);<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>    long magic = StreamUtils.readLong(stream);<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    if (magic != TRAILER_MAGIC) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      throw new InvalidWALDataException("Invalid Trailer magic. got " + magic +<a name="line.175"></a>
+<span class="sourceLineNo">176</span>          " expected " + TRAILER_MAGIC);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    }<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>    long trailerOffset = StreamUtils.readLong(stream);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    stream.seek(trailerOffset);<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>    ProcedureWALEntry entry = readEntry(stream);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    if (entry.getType() != ProcedureWALEntry.Type.PROCEDURE_WAL_EOF) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      throw new InvalidWALDataException("Invalid Trailer begin");<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>    ProcedureWALTrailer trailer = ProcedureWALTrailer.newBuilder()<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      .setVersion(version)<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      .setTrackerPos(stream.getPos())<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      .build();<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    return trailer;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  }<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>  public static ProcedureWALEntry readEntry(InputStream stream) throws IOException {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    return ProcedureWALEntry.parseDelimitedFrom(stream);<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>  public static void writeEntry(ByteSlot slot, ProcedureWALEntry.Type type,<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      Procedure proc, Procedure[] subprocs) throws IOException {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    ProcedureWALEntry.Builder builder = ProcedureWALEntry.newBuilder();<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    builder.setType(type);<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    builder.addProcedure(Procedure.convert(proc));<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    if (subprocs != null) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      for (int i = 0; i &lt; subprocs.length; ++i) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        builder.addProcedure(Procedure.convert(subprocs[i]));<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      }<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    }<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    builder.build().writeDelimitedTo(slot);<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 static void writeInsert(ByteSlot slot, Procedure proc)<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      throws IOException {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    writeEntry(slot, ProcedureWALEntry.Type.PROCEDURE_WAL_INIT, proc, null);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  }<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>  public static void writeInsert(ByteSlot slot, Procedure proc, Procedure[] subprocs)<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      throws IOException {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    writeEntry(slot, ProcedureWALEntry.Type.PROCEDURE_WAL_INSERT, proc, subprocs);<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>  public static void writeUpdate(ByteSlot slot, Procedure proc)<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      throws IOException {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    writeEntry(slot, ProcedureWALEntry.Type.PROCEDURE_WAL_UPDATE, proc, null);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>  }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>  public static void writeDelete(ByteSlot slot, long procId)<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      throws IOException {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    ProcedureWALEntry.Builder builder = ProcedureWALEntry.newBuilder();<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    builder.setType(ProcedureWALEntry.Type.PROCEDURE_WAL_DELETE);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    builder.setProcId(procId);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    builder.build().writeDelimitedTo(slot);<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>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html
index 7e13ac4..a2d35fb 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html
@@ -73,173 +73,172 @@
 <span class="sourceLineNo">065</span>  }<a name="line.65"></a>
 <span class="sourceLineNo">066</span><a name="line.66"></a>
 <span class="sourceLineNo">067</span>  interface Loader extends ProcedureLoader {<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    void removeLog(ProcedureWALFile log);<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    void markCorruptedWAL(ProcedureWALFile log, IOException e);<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  }<a name="line.70"></a>
-<span class="sourceLineNo">071</span><a name="line.71"></a>
-<span class="sourceLineNo">072</span>  private ProcedureWALFormat() {}<a name="line.72"></a>
-<span class="sourceLineNo">073</span><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  public static void load(final Iterator&lt;ProcedureWALFile&gt; logs,<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      final ProcedureStoreTracker tracker, final Loader loader) throws IOException {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    ProcedureWALFormatReader reader = new ProcedureWALFormatReader(tracker);<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    tracker.setKeepDeletes(true);<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    try {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      while (logs.hasNext()) {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>        ProcedureWALFile log = logs.next();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>        log.open();<a name="line.81"></a>
-<span class="sourceLineNo">082</span>        try {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>          reader.read(log, loader);<a name="line.83"></a>
-<span class="sourceLineNo">084</span>        } finally {<a name="line.84"></a>
-<span class="sourceLineNo">085</span>          log.close();<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>      reader.finalize(loader);<a name="line.88"></a>
-<span class="sourceLineNo">089</span>      // The tracker is now updated with all the procedures read from the logs<a name="line.89"></a>
-<span class="sourceLineNo">090</span>      tracker.setPartialFlag(false);<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      tracker.resetUpdates();<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    } finally {<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      tracker.setKeepDeletes(false);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    }<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  }<a name="line.95"></a>
-<span class="sourceLineNo">096</span><a name="line.96"></a>
-<span class="sourceLineNo">097</span>  public static void writeHeader(OutputStream stream, ProcedureWALHeader header)<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      throws IOException {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    header.writeDelimitedTo(stream);<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>  /*<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * +-----------------+<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * | END OF WAL DATA | &lt;---+<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>   * |     Tracker     |     |<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>   * |     version     |     |<a name="line.110"></a>
-<span class="sourceLineNo">111</span>   * +-----------------+     |<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   * |  TRAILER_MAGIC  |     |<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   * +-----------------+     |<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   * |      offset     |-----+<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 static void writeTrailer(FSDataOutputStream stream, ProcedureStoreTracker tracker)<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      throws IOException {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    long offset = stream.getPos();<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>    // Write EOF Entry<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    ProcedureWALEntry.newBuilder()<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      .setType(ProcedureWALEntry.Type.PROCEDURE_WAL_EOF)<a name="line.123"></a>
-<span class="sourceLineNo">124</span>      .build().writeDelimitedTo(stream);<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>    // Write Tracker<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    tracker.writeTo(stream);<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>    stream.write(TRAILER_VERSION);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    StreamUtils.writeLong(stream, TRAILER_MAGIC);<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    StreamUtils.writeLong(stream, offset);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>  }<a name="line.132"></a>
-<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>  public static ProcedureWALHeader readHeader(InputStream stream)<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      throws IOException {<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    ProcedureWALHeader header;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    try {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      header = ProcedureWALHeader.parseDelimitedFrom(stream);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    } catch (InvalidProtocolBufferException e) {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      throw new InvalidWALDataException(e);<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    }<a name="line.141"></a>
-<span class="sourceLineNo">142</span><a name="line.142"></a>
-<span class="sourceLineNo">143</span>    if (header == null) {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      throw new InvalidWALDataException("No data available to read the Header");<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>    if (header.getVersion() &lt; 0 || header.getVersion() != HEADER_VERSION) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      throw new InvalidWALDataException("Invalid Header version. got " + header.getVersion() +<a name="line.148"></a>
-<span class="sourceLineNo">149</span>          " expected " + HEADER_VERSION);<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>    if (header.getType() &lt; 0 || header.getType() &gt; LOG_TYPE_MAX_VALID) {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      throw new InvalidWALDataException("Invalid header type. got " + header.getType());<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>    return header;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>  }<a name="line.157"></a>
-<span class="sourceLineNo">158</span><a name="line.158"></a>
-<span class="sourceLineNo">159</span>  public static ProcedureWALTrailer readTrailer(FSDataInputStream stream, long startPos, long size)<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      throws IOException {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    long trailerPos = size - 17; // Beginning of the Trailer Jump<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>    if (trailerPos &lt; startPos) {<a name="line.163"></a>
-<span class="sourceLineNo">164</span>      throw new InvalidWALDataException("Missing trailer: size=" + size + " startPos=" + startPos);<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    }<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>    stream.seek(trailerPos);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    int version = stream.read();<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    if (version != TRAILER_VERSION) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>      throw new InvalidWALDataException("Invalid Trailer version. got " + version +<a name="line.170"></a>
-<span class="sourceLineNo">171</span>          " expected " + TRAILER_VERSION);<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>    long magic = StreamUtils.readLong(stream);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    if (magic != TRAILER_MAGIC) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      throw new InvalidWALDataException("Invalid Trailer magic. got " + magic +<a name="line.176"></a>
-<span class="sourceLineNo">177</span>          " expected " + TRAILER_MAGIC);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>    long trailerOffset = StreamUtils.readLong(stream);<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    stream.seek(trailerOffset);<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>    ProcedureWALEntry entry = readEntry(stream);<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    if (entry.getType() != ProcedureWALEntry.Type.PROCEDURE_WAL_EOF) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      throw new InvalidWALDataException("Invalid Trailer begin");<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>    ProcedureWALTrailer trailer = ProcedureWALTrailer.newBuilder()<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      .setVersion(version)<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      .setTrackerPos(stream.getPos())<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      .build();<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    return trailer;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  }<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  public static ProcedureWALEntry readEntry(InputStream stream) throws IOException {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    return ProcedureWALEntry.parseDelimitedFrom(stream);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>  }<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  public static void writeEntry(ByteSlot slot, ProcedureWALEntry.Type type,<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      Procedure proc, Procedure[] subprocs) throws IOException {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    ProcedureWALEntry.Builder builder = ProcedureWALEntry.newBuilder();<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    builder.setType(type);<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    builder.addProcedure(Procedure.convert(proc));<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    if (subprocs != null) {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>      for (int i = 0; i &lt; subprocs.length; ++i) {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        builder.addProcedure(Procedure.convert(subprocs[i]));<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      }<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    builder.build().writeDelimitedTo(slot);<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 static void writeInsert(ByteSlot slot, Procedure proc)<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      throws IOException {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    writeEntry(slot, ProcedureWALEntry.Type.PROCEDURE_WAL_INIT, proc, null);<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>  public static void writeInsert(ByteSlot slot, Procedure proc, Procedure[] subprocs)<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      throws IOException {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    writeEntry(slot, ProcedureWALEntry.Type.PROCEDURE_WAL_INSERT, proc, subprocs);<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>  public static void writeUpdate(ByteSlot slot, Procedure proc)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      throws IOException {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    writeEntry(slot, ProcedureWALEntry.Type.PROCEDURE_WAL_UPDATE, proc, null);<a name="line.224"></a>
-<span class="sourceLineNo">225</span>  }<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>  public static void writeDelete(ByteSlot slot, long procId)<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      throws IOException {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    ProcedureWALEntry.Builder builder = ProcedureWALEntry.newBuilder();<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    builder.setType(ProcedureWALEntry.Type.PROCEDURE_WAL_DELETE);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    builder.setProcId(procId);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    builder.build().writeDelimitedTo(slot);<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">068</span>    void markCorruptedWAL(ProcedureWALFile log, IOException e);<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  private ProcedureWALFormat() {}<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>  public static void load(final Iterator&lt;ProcedureWALFile&gt; logs,<a name="line.73"></a>
+<span class="sourceLineNo">074</span>      final ProcedureStoreTracker tracker, final Loader loader) throws IOException {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    ProcedureWALFormatReader reader = new ProcedureWALFormatReader(tracker);<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    tracker.setKeepDeletes(true);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    try {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      while (logs.hasNext()) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>        ProcedureWALFile log = logs.next();<a name="line.79"></a>
+<span class="sourceLineNo">080</span>        log.open();<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        try {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>          reader.read(log, loader);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        } finally {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>          log.close();<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>      }<a name="line.86"></a>
+<span class="sourceLineNo">087</span>      reader.finalize(loader);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>      // The tracker is now updated with all the procedures read from the logs<a name="line.88"></a>
+<span class="sourceLineNo">089</span>      tracker.setPartialFlag(false);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      tracker.resetUpdates();<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    } finally {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      tracker.setKeepDeletes(false);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public static void writeHeader(OutputStream stream, ProcedureWALHeader header)<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      throws IOException {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    header.writeDelimitedTo(stream);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>  /*<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   * +-----------------+<a name="line.102"></a>
+<span class="sourceLineNo">103</span>   * | END OF WAL DATA | &lt;---+<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>   * |     Tracker     |     |<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   * |                 |     |<a name="line.107"></a>
+<span class="sourceLineNo">108</span>   * +-----------------+     |<a name="line.108"></a>
+<span class="sourceLineNo">109</span>   * |     version     |     |<a name="line.109"></a>
+<span class="sourceLineNo">110</span>   * +-----------------+     |<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   * |  TRAILER_MAGIC  |     |<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   * +-----------------+     |<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   * |      offset     |-----+<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>  public static void writeTrailer(FSDataOutputStream stream, ProcedureStoreTracker tracker)<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      throws IOException {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    long offset = stream.getPos();<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>    // Write EOF Entry<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    ProcedureWALEntry.newBuilder()<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      .setType(ProcedureWALEntry.Type.PROCEDURE_WAL_EOF)<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      .build().writeDelimitedTo(stream);<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>    // Write Tracker<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    tracker.writeTo(stream);<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>    stream.write(TRAILER_VERSION);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    StreamUtils.writeLong(stream, TRAILER_MAGIC);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    StreamUtils.writeLong(stream, offset);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>  public static ProcedureWALHeader readHeader(InputStream stream)<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      throws IOException {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    ProcedureWALHeader header;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    try {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      header = ProcedureWALHeader.parseDelimitedFrom(stream);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    } catch (InvalidProtocolBufferException e) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      throw new InvalidWALDataException(e);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>    if (header == null) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      throw new InvalidWALDataException("No data available to read the Header");<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>    if (header.getVersion() &lt; 0 || header.getVersion() != HEADER_VERSION) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      throw new InvalidWALDataException("Invalid Header version. got " + header.getVersion() +<a name="line.147"></a>
+<span class="sourceLineNo">148</span>          " expected " + HEADER_VERSION);<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>    if (header.getType() &lt; 0 || header.getType() &gt; LOG_TYPE_MAX_VALID) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      throw new InvalidWALDataException("Invalid header type. got " + header.getType());<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    }<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>    return header;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>  }<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span>  public static ProcedureWALTrailer readTrailer(FSDataInputStream stream, long startPos, long size)<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      throws IOException {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    long trailerPos = size - 17; // Beginning of the Trailer Jump<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>    if (trailerPos &lt; startPos) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      throw new InvalidWALDataException("Missing trailer: size=" + size + " startPos=" + startPos);<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>    stream.seek(trailerPos);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    int version = stream.read();<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    if (version != TRAILER_VERSION) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      throw new InvalidWALDataException("Invalid Trailer version. got " + version +<a name="line.169"></a>
+<span class="sourceLineNo">170</span>          " expected " + TRAILER_VERSION);<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>    long magic = StreamUtils.readLong(stream);<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    if (magic != TRAILER_MAGIC) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      throw new InvalidWALDataException("Invalid Trailer magic. got " + magic +<a name="line.175"></a>
+<span class="sourceLineNo">176</span>          " expected " + TRAILER_MAGIC);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    }<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>    long trailerOffset = StreamUtils.readLong(stream);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    stream.seek(trailerOffset);<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>    ProcedureWALEntry entry = readEntry(stream);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    if (entry.getType() != ProcedureWALEntry.Type.PROCEDURE_WAL_EOF) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      throw new InvalidWALDataException("Invalid Trailer begin");<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>    ProcedureWALTrailer trailer = ProcedureWALTrailer.newBuilder()<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      .setVersion(version)<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      .setTrackerPos(stream.getPos())<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      .build();<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    return trailer;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  }<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>  public static ProcedureWALEntry readEntry(InputStream stream) throws IOException {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    return ProcedureWALEntry.parseDelimitedFrom(stream);<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>  public static void writeEntry(ByteSlot slot, ProcedureWALEntry.Type type,<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      Procedure proc, Procedure[] subprocs) throws IOException {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    ProcedureWALEntry.Builder builder = ProcedureWALEntry.newBuilder();<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    builder.setType(type);<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    builder.addProcedure(Procedure.convert(proc));<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    if (subprocs != null) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      for (int i = 0; i &lt; subprocs.length; ++i) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        builder.addProcedure(Procedure.convert(subprocs[i]));<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      }<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    }<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    builder.build().writeDelimitedTo(slot);<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 static void writeInsert(ByteSlot slot, Procedure proc)<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      throws IOException {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    writeEntry(slot, ProcedureWALEntry.Type.PROCEDURE_WAL_INIT, proc, null);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  }<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>  public static void writeInsert(ByteSlot slot, Procedure proc, Procedure[] subprocs)<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      throws IOException {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    writeEntry(slot, ProcedureWALEntry.Type.PROCEDURE_WAL_INSERT, proc, subprocs);<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>  public static void writeUpdate(ByteSlot slot, Procedure proc)<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      throws IOException {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    writeEntry(slot, ProcedureWALEntry.Type.PROCEDURE_WAL_UPDATE, proc, null);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>  }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>  public static void writeDelete(ByteSlot slot, long procId)<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      throws IOException {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    ProcedureWALEntry.Builder builder = ProcedureWALEntry.newBuilder();<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    builder.setType(ProcedureWALEntry.Type.PROCEDURE_WAL_DELETE);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    builder.setProcId(procId);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    builder.build().writeDelimitedTo(slot);<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>
 
 
 


[09/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html
index 0ba2dff..3541594 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html
@@ -30,683 +30,719 @@
 <span class="sourceLineNo">022</span><a name="line.22"></a>
 <span class="sourceLineNo">023</span>import org.apache.commons.logging.Log;<a name="line.23"></a>
 <span class="sourceLineNo">024</span>import org.apache.commons.logging.LogFactory;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.fs.FSDataInputStream;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStoreTracker;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore.ProcedureIterator;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry;<a name="line.32"></a>
-<span class="sourceLineNo">033</span><a name="line.33"></a>
-<span class="sourceLineNo">034</span>/**<a name="line.34"></a>
-<span class="sourceLineNo">035</span> * Helper class that loads the procedures stored in a WAL<a name="line.35"></a>
-<span class="sourceLineNo">036</span> */<a name="line.36"></a>
-<span class="sourceLineNo">037</span>@InterfaceAudience.Private<a name="line.37"></a>
-<span class="sourceLineNo">038</span>@InterfaceStability.Evolving<a name="line.38"></a>
-<span class="sourceLineNo">039</span>public class ProcedureWALFormatReader {<a name="line.39"></a>
-<span class="sourceLineNo">040</span>  private static final Log LOG = LogFactory.getLog(ProcedureWALFormatReader.class);<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>  // ==============================================================================================<a name="line.42"></a>
-<span class="sourceLineNo">043</span>  //  We read the WALs in reverse order. from the newest to the oldest.<a name="line.43"></a>
-<span class="sourceLineNo">044</span>  //  We have different entry types:<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  //   - INIT: Procedure submitted by the user (also known as 'root procedure')<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  //   - INSERT: Children added to the procedure &lt;parentId&gt;:[&lt;childId&gt;, ...]<a name="line.46"></a>
-<span class="sourceLineNo">047</span>  //   - UPDATE: The specified procedure was updated<a name="line.47"></a>
-<span class="sourceLineNo">048</span>  //   - DELETE: The procedure was removed (completed/rolledback and result TTL expired)<a name="line.48"></a>
-<span class="sourceLineNo">049</span>  //<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  // In the WAL we can find multiple times the same procedure as UPDATE or INSERT.<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  // We read the WAL from top to bottom, so every time we find an entry of the<a name="line.51"></a>
-<span class="sourceLineNo">052</span>  // same procedure, that will be the "latest" update.<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  //<a name="line.53"></a>
-<span class="sourceLineNo">054</span>  // We keep two in-memory maps:<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  //  - localProcedureMap: is the map containing the entries in the WAL we are processing<a name="line.55"></a>
-<span class="sourceLineNo">056</span>  //  - procedureMap: is the map containing all the procedures we found up to the WAL in process.<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  // localProcedureMap is merged with the procedureMap once we reach the WAL EOF.<a name="line.57"></a>
-<span class="sourceLineNo">058</span>  //<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  // Since we are reading the WALs in reverse order (newest to oldest),<a name="line.59"></a>
-<span class="sourceLineNo">060</span>  // if we find an entry related to a procedure we already have in 'procedureMap' we can discard it.<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  //<a name="line.61"></a>
-<span class="sourceLineNo">062</span>  // The WAL is append-only so the last procedure in the WAL is the one that<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  // was in execution at the time we crashed/closed the server.<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  // given that, the procedure replay order can be inferred by the WAL order.<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  //<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  // Example:<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  //    WAL-2: [A, B, A, C, D]<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  //    WAL-1: [F, G, A, F, B]<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  //    Replay-Order: [D, C, A, B, F, G]<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  //<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  // The "localProcedureMap" keeps a "replayOrder" list. Every time we add the<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  // record to the map that record is moved to the head of the "replayOrder" list.<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  // Using the example above:<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  //    WAL-2 localProcedureMap.replayOrder is [D, C, A, B]<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  //    WAL-1 localProcedureMap.replayOrder is [F, G]<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  //<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  // each time we reach the WAL-EOF, the "replayOrder" list is merged/appended in 'procedureMap'<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  // so using the example above we end up with: [D, C, A, B] + [F, G] as replay order.<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  //<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  //  Fast Start: INIT/INSERT record and StackIDs<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  // ---------------------------------------------<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  // We have to special record, INIT and INSERT that tracks the first time<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  // the procedure was added to the WAL. We can use that information to be able<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  // to start procedures before reaching the end of the WAL, or before reading all the WALs.<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  // but in some cases the WAL with that record can be already gone.<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  // In alternative we can use the stackIds on each procedure,<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  // to identify when a procedure is ready to start.<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  // If there are gaps in the sum of the stackIds we need to read more WALs.<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  //<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  // Example (all procs child of A):<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  //   WAL-2: [A, B]                   A stackIds = [0, 4], B stackIds = [1, 5]<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  //   WAL-1: [A, B, C, D]<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  //<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  // In the case above we need to read one more WAL to be able to consider<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  // the root procedure A and all children as ready.<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  // ==============================================================================================<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  private final WalProcedureMap localProcedureMap = new WalProcedureMap(1024);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  private final WalProcedureMap procedureMap = new WalProcedureMap(1024);<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>  //private long compactionLogId;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  private long maxProcId = 0;<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>  private final ProcedureStoreTracker tracker;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>  private final boolean hasFastStartSupport;<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public ProcedureWALFormatReader(final ProcedureStoreTracker tracker) {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    this.tracker = tracker;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    // we support fast-start only if we have a clean shutdown.<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    this.hasFastStartSupport = !tracker.isEmpty();<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>  public void read(ProcedureWALFile log, ProcedureWALFormat.Loader loader) throws IOException {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    FSDataInputStream stream = log.getStream();<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    try {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      boolean hasMore = true;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      while (hasMore) {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>        ProcedureWALEntry entry = ProcedureWALFormat.readEntry(stream);<a name="line.117"></a>
-<span class="sourceLineNo">118</span>        if (entry == null) {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>          LOG.warn("nothing left to decode. exiting with missing EOF");<a name="line.119"></a>
-<span class="sourceLineNo">120</span>          hasMore = false;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>          break;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>        switch (entry.getType()) {<a name="line.123"></a>
-<span class="sourceLineNo">124</span>          case PROCEDURE_WAL_INIT:<a name="line.124"></a>
-<span class="sourceLineNo">125</span>            readInitEntry(entry);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>            break;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>          case PROCEDURE_WAL_INSERT:<a name="line.127"></a>
-<span class="sourceLineNo">128</span>            readInsertEntry(entry);<a name="line.128"></a>
-<span class="sourceLineNo">129</span>            break;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>          case PROCEDURE_WAL_UPDATE:<a name="line.130"></a>
-<span class="sourceLineNo">131</span>          case PROCEDURE_WAL_COMPACT:<a name="line.131"></a>
-<span class="sourceLineNo">132</span>            readUpdateEntry(entry);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>            break;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>          case PROCEDURE_WAL_DELETE:<a name="line.134"></a>
-<span class="sourceLineNo">135</span>            readDeleteEntry(entry);<a name="line.135"></a>
-<span class="sourceLineNo">136</span>            break;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>          case PROCEDURE_WAL_EOF:<a name="line.137"></a>
-<span class="sourceLineNo">138</span>            hasMore = false;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>            break;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>          default:<a name="line.140"></a>
-<span class="sourceLineNo">141</span>            throw new CorruptedWALProcedureStoreException("Invalid entry: " + entry);<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>    } catch (IOException e) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      LOG.error("got an exception while reading the procedure WAL: " + log, e);<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      loader.markCorruptedWAL(log, e);<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>    if (localProcedureMap.isEmpty()) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      LOG.info("No active entry found in state log " + log + ". removing it");<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      loader.removeLog(log);<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    } else {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      log.setProcIds(localProcedureMap.getMinProcId(), localProcedureMap.getMaxProcId());<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      procedureMap.mergeTail(localProcedureMap);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      //if (hasFastStartSupport) {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>        // TODO: Some procedure may be already runnables (see readInitEntry())<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        //       (we can also check the "update map" in the log trackers)<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        // --------------------------------------------------<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        //EntryIterator iter = procedureMap.fetchReady();<a name="line.159"></a>
-<span class="sourceLineNo">160</span>        //if (iter != null) loader.load(iter);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        // --------------------------------------------------<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      //}<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    }<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  }<a name="line.164"></a>
-<span class="sourceLineNo">165</span><a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public void finalize(ProcedureWALFormat.Loader loader) throws IOException {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    // notify the loader about the max proc ID<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    loader.setMaxProcId(maxProcId);<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>    // fetch the procedure ready to run.<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    ProcedureIterator procIter = procedureMap.fetchReady();<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    if (procIter != null) loader.load(procIter);<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span>    // remaining procedures have missing link or dependencies<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    // consider them as corrupted, manual fix is probably required.<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    procIter = procedureMap.fetchAll();<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    if (procIter != null) loader.handleCorrupted(procIter);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>  private void loadProcedure(final ProcedureWALEntry entry, final ProcedureProtos.Procedure proc) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    maxProcId = Math.max(maxProcId, proc.getProcId());<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    if (isRequired(proc.getProcId())) {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      if (LOG.isTraceEnabled()) {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>        LOG.trace("read " + entry.getType() + " entry " + proc.getProcId());<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      }<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      localProcedureMap.add(proc);<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      tracker.setDeleted(proc.getProcId(), false);<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    }<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  }<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private void readInitEntry(final ProcedureWALEntry entry)<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      throws IOException {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    assert entry.getProcedureCount() == 1 : "Expected only one procedure";<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  }<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private void readInsertEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    assert entry.getProcedureCount() &gt;= 1 : "Expected one or more procedures";<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    for (int i = 1; i &lt; entry.getProcedureCount(); ++i) {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      loadProcedure(entry, entry.getProcedure(i));<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>  private void readUpdateEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    assert entry.getProcedureCount() == 1 : "Expected only one procedure";<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  }<a name="line.208"></a>
-<span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span>  private void readDeleteEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    assert entry.getProcedureCount() == 0 : "Expected no procedures";<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    assert entry.hasProcId() : "expected ProcID";<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    if (LOG.isTraceEnabled()) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      LOG.trace("read delete entry " + entry.getProcId());<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    }<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    maxProcId = Math.max(maxProcId, entry.getProcId());<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    localProcedureMap.remove(entry.getProcId());<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    tracker.setDeleted(entry.getProcId(), true);<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 boolean isDeleted(final long procId) {<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    return tracker.isDeleted(procId) == ProcedureStoreTracker.DeleteState.YES;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  }<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  private boolean isRequired(final long procId) {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    return !isDeleted(procId) &amp;&amp; !procedureMap.contains(procId);<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>  // ==========================================================================<a name="line.229"></a>
-<span class="sourceLineNo">230</span>  //  We keep an in-memory map of the procedures sorted by replay order.<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  //  (see the details in the beginning of the file)<a name="line.231"></a>
-<span class="sourceLineNo">232</span>  //                      _______________________________________________<a name="line.232"></a>
-<span class="sourceLineNo">233</span>  //      procedureMap = | A |   | E |   | C |   |   |   |   | G |   |   |<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  //                       D               B<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  //      replayOrderHead = C &lt;-&gt; B &lt;-&gt; E &lt;-&gt; D &lt;-&gt; A &lt;-&gt; G<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  //<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  //  We also have a lazy grouping by "root procedure", and a list of<a name="line.237"></a>
-<span class="sourceLineNo">238</span>  //  unlinked procedure. If after reading all the WALs we have unlinked<a name="line.238"></a>
-<span class="sourceLineNo">239</span>  //  procedures it means that we had a missing WAL or a corruption.<a name="line.239"></a>
-<span class="sourceLineNo">240</span>  //      rootHead = A &lt;-&gt; D &lt;-&gt; G<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  //                 B     E<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  //                 C<a name="line.242"></a>
-<span class="sourceLineNo">243</span>  //      unlinkFromLinkList = None<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  // ==========================================================================<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  private static class Entry {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    // hash-table next<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    protected Entry hashNext;<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    // child head<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    protected Entry childHead;<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    // double-link for rootHead or childHead<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    protected Entry linkNext;<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    protected Entry linkPrev;<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    // replay double-linked-list<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    protected Entry replayNext;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    protected Entry replayPrev;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    // procedure-infos<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    protected Procedure procedure;<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    protected ProcedureProtos.Procedure proto;<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    protected boolean ready = false;<a name="line.259"></a>
-<span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>    public Entry(Entry hashNext) { this.hashNext = hashNext; }<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>    public long getProcId() { return proto.getProcId(); }<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    public long getParentId() { return proto.getParentId(); }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    public boolean hasParent() { return proto.hasParentId(); }<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    public boolean isReady() { return ready; }<a name="line.266"></a>
-<span class="sourceLineNo">267</span><a name="line.267"></a>
-<span class="sourceLineNo">268</span>    public Procedure convert() throws IOException {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      if (procedure == null) {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>        procedure = Procedure.convert(proto);<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      }<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      return procedure;<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>    @Override<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    public String toString() {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      return "Entry(" + getProcId() + ", parentId=" + getParentId() + ")";<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">025</span>import org.apache.hadoop.fs.FSDataInputStream;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStoreTracker;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore.ProcedureIterator;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry;<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>/**<a name="line.35"></a>
+<span class="sourceLineNo">036</span> * Helper class that loads the procedures stored in a WAL<a name="line.36"></a>
+<span class="sourceLineNo">037</span> */<a name="line.37"></a>
+<span class="sourceLineNo">038</span>@InterfaceAudience.Private<a name="line.38"></a>
+<span class="sourceLineNo">039</span>@InterfaceStability.Evolving<a name="line.39"></a>
+<span class="sourceLineNo">040</span>public class ProcedureWALFormatReader {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  private static final Log LOG = LogFactory.getLog(ProcedureWALFormatReader.class);<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>  // ==============================================================================================<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  //  We read the WALs in reverse order. from the newest to the oldest.<a name="line.44"></a>
+<span class="sourceLineNo">045</span>  //  We have different entry types:<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  //   - INIT: Procedure submitted by the user (also known as 'root procedure')<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  //   - INSERT: Children added to the procedure &lt;parentId&gt;:[&lt;childId&gt;, ...]<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  //   - UPDATE: The specified procedure was updated<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  //   - DELETE: The procedure was removed (completed/rolledback and result TTL expired)<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  //<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  // In the WAL we can find multiple times the same procedure as UPDATE or INSERT.<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  // We read the WAL from top to bottom, so every time we find an entry of the<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  // same procedure, that will be the "latest" update.<a name="line.53"></a>
+<span class="sourceLineNo">054</span>  //<a name="line.54"></a>
+<span class="sourceLineNo">055</span>  // We keep two in-memory maps:<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  //  - localProcedureMap: is the map containing the entries in the WAL we are processing<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  //  - procedureMap: is the map containing all the procedures we found up to the WAL in process.<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  // localProcedureMap is merged with the procedureMap once we reach the WAL EOF.<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  //<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  // Since we are reading the WALs in reverse order (newest to oldest),<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  // if we find an entry related to a procedure we already have in 'procedureMap' we can discard it.<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  //<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  // The WAL is append-only so the last procedure in the WAL is the one that<a name="line.63"></a>
+<span class="sourceLineNo">064</span>  // was in execution at the time we crashed/closed the server.<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  // given that, the procedure replay order can be inferred by the WAL order.<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  //<a name="line.66"></a>
+<span class="sourceLineNo">067</span>  // Example:<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  //    WAL-2: [A, B, A, C, D]<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  //    WAL-1: [F, G, A, F, B]<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  //    Replay-Order: [D, C, A, B, F, G]<a name="line.70"></a>
+<span class="sourceLineNo">071</span>  //<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  // The "localProcedureMap" keeps a "replayOrder" list. Every time we add the<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  // record to the map that record is moved to the head of the "replayOrder" list.<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  // Using the example above:<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  //    WAL-2 localProcedureMap.replayOrder is [D, C, A, B]<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  //    WAL-1 localProcedureMap.replayOrder is [F, G]<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  //<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  // each time we reach the WAL-EOF, the "replayOrder" list is merged/appended in 'procedureMap'<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  // so using the example above we end up with: [D, C, A, B] + [F, G] as replay order.<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  //<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  //  Fast Start: INIT/INSERT record and StackIDs<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  // ---------------------------------------------<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  // We have two special record, INIT and INSERT that tracks the first time<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  // the procedure was added to the WAL. We can use that information to be able<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  // to start procedures before reaching the end of the WAL, or before reading all the WALs.<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  // but in some cases the WAL with that record can be already gone.<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  // In alternative we can use the stackIds on each procedure,<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  // to identify when a procedure is ready to start.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  // If there are gaps in the sum of the stackIds we need to read more WALs.<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  //<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  // Example (all procs child of A):<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  //   WAL-2: [A, B]                   A stackIds = [0, 4], B stackIds = [1, 5]<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  //   WAL-1: [A, B, C, D]<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  //<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  // In the case above we need to read one more WAL to be able to consider<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  // the root procedure A and all children as ready.<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  // ==============================================================================================<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  private final WalProcedureMap localProcedureMap = new WalProcedureMap(1024);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  private final WalProcedureMap procedureMap = new WalProcedureMap(1024);<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>  //private long compactionLogId;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  private long maxProcId = 0;<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  private final ProcedureStoreTracker tracker;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  private final boolean hasFastStartSupport;<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>  public ProcedureWALFormatReader(final ProcedureStoreTracker tracker) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    this.tracker = tracker;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    // we support fast-start only if we have a clean shutdown.<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    this.hasFastStartSupport = !tracker.isEmpty();<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>  public void read(ProcedureWALFile log, ProcedureWALFormat.Loader loader) throws IOException {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    FSDataInputStream stream = log.getStream();<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    try {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      boolean hasMore = true;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      while (hasMore) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        ProcedureWALEntry entry = ProcedureWALFormat.readEntry(stream);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        if (entry == null) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>          LOG.warn("nothing left to decode. exiting with missing EOF");<a name="line.120"></a>
+<span class="sourceLineNo">121</span>          hasMore = false;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>          break;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        switch (entry.getType()) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>          case PROCEDURE_WAL_INIT:<a name="line.125"></a>
+<span class="sourceLineNo">126</span>            readInitEntry(entry);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>            break;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>          case PROCEDURE_WAL_INSERT:<a name="line.128"></a>
+<span class="sourceLineNo">129</span>            readInsertEntry(entry);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>            break;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>          case PROCEDURE_WAL_UPDATE:<a name="line.131"></a>
+<span class="sourceLineNo">132</span>          case PROCEDURE_WAL_COMPACT:<a name="line.132"></a>
+<span class="sourceLineNo">133</span>            readUpdateEntry(entry);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>            break;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>          case PROCEDURE_WAL_DELETE:<a name="line.135"></a>
+<span class="sourceLineNo">136</span>            readDeleteEntry(entry);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>            break;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>          case PROCEDURE_WAL_EOF:<a name="line.138"></a>
+<span class="sourceLineNo">139</span>            hasMore = false;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>            break;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>          default:<a name="line.141"></a>
+<span class="sourceLineNo">142</span>            throw new CorruptedWALProcedureStoreException("Invalid entry: " + entry);<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 (IOException e) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      LOG.error("got an exception while reading the procedure WAL: " + log, e);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      loader.markCorruptedWAL(log, e);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    }<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    if (!localProcedureMap.isEmpty()) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      log.setProcIds(localProcedureMap.getMinProcId(), localProcedureMap.getMaxProcId());<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      procedureMap.mergeTail(localProcedureMap);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      //if (hasFastStartSupport) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        // TODO: Some procedure may be already runnables (see readInitEntry())<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        //       (we can also check the "update map" in the log trackers)<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        // --------------------------------------------------<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        //EntryIterator iter = procedureMap.fetchReady();<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        //if (iter != null) loader.load(iter);<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">162</span>  }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>  public void finalize(ProcedureWALFormat.Loader loader) throws IOException {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    // notify the loader about the max proc ID<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    loader.setMaxProcId(maxProcId);<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>    // fetch the procedure ready to run.<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    ProcedureIterator procIter = procedureMap.fetchReady();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    if (procIter != null) loader.load(procIter);<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>    // remaining procedures have missing link or dependencies<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    // consider them as corrupted, manual fix is probably required.<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    procIter = procedureMap.fetchAll();<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    if (procIter != null) loader.handleCorrupted(procIter);<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 loadProcedure(final ProcedureWALEntry entry, final ProcedureProtos.Procedure proc) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    maxProcId = Math.max(maxProcId, proc.getProcId());<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    if (isRequired(proc.getProcId())) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      if (LOG.isTraceEnabled()) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        LOG.trace("read " + entry.getType() + " entry " + proc.getProcId());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      localProcedureMap.add(proc);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      tracker.setDeleted(proc.getProcId(), false);<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><a name="line.188"></a>
+<span class="sourceLineNo">189</span>  private void readInitEntry(final ProcedureWALEntry entry)<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      throws IOException {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    assert entry.getProcedureCount() == 1 : "Expected only one procedure";<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  }<a name="line.193"></a>
+<span class="sourceLineNo">194</span><a name="line.194"></a>
+<span class="sourceLineNo">195</span>  private void readInsertEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    assert entry.getProcedureCount() &gt;= 1 : "Expected one or more procedures";<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    for (int i = 1; i &lt; entry.getProcedureCount(); ++i) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      loadProcedure(entry, entry.getProcedure(i));<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 void readUpdateEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    assert entry.getProcedureCount() == 1 : "Expected only one procedure";<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>  private void readDeleteEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    assert entry.getProcedureCount() == 0 : "Expected no procedures";<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    assert entry.hasProcId() : "expected ProcID";<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    if (LOG.isTraceEnabled()) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      LOG.trace("read delete entry " + entry.getProcId());<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    }<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    maxProcId = Math.max(maxProcId, entry.getProcId());<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    localProcedureMap.remove(entry.getProcId());<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    assert !procedureMap.contains(entry.getProcId());<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    tracker.setDeleted(entry.getProcId(), true);<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>  private boolean isDeleted(final long procId) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    return tracker.isDeleted(procId) == ProcedureStoreTracker.DeleteState.YES;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>  }<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  private boolean isRequired(final long procId) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    return !isDeleted(procId) &amp;&amp; !procedureMap.contains(procId);<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>  // ==========================================================================<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  //  We keep an in-memory map of the procedures sorted by replay order.<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  //  (see the details in the beginning of the file)<a name="line.230"></a>
+<span class="sourceLineNo">231</span>  //                      _______________________________________________<a name="line.231"></a>
+<span class="sourceLineNo">232</span>  //      procedureMap = | A |   | E |   | C |   |   |   |   | G |   |   |<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  //                       D               B<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  //      replayOrderHead = C &lt;-&gt; B &lt;-&gt; E &lt;-&gt; D &lt;-&gt; A &lt;-&gt; G<a name="line.234"></a>
+<span class="sourceLineNo">235</span>  //<a name="line.235"></a>
+<span class="sourceLineNo">236</span>  //  We also have a lazy grouping by "root procedure", and a list of<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  //  unlinked procedure. If after reading all the WALs we have unlinked<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  //  procedures it means that we had a missing WAL or a corruption.<a name="line.238"></a>
+<span class="sourceLineNo">239</span>  //      rootHead = A &lt;-&gt; D &lt;-&gt; G<a name="line.239"></a>
+<span class="sourceLineNo">240</span>  //                 B     E<a name="line.240"></a>
+<span class="sourceLineNo">241</span>  //                 C<a name="line.241"></a>
+<span class="sourceLineNo">242</span>  //      unlinkFromLinkList = None<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  // ==========================================================================<a name="line.243"></a>
+<span class="sourceLineNo">244</span>  private static class Entry {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    // hash-table next<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    protected Entry hashNext;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    // child head<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    protected Entry childHead;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    // double-link for rootHead or childHead<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    protected Entry linkNext;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    protected Entry linkPrev;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    // replay double-linked-list<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    protected Entry replayNext;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    protected Entry replayPrev;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    // procedure-infos<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    protected Procedure procedure;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    protected ProcedureProtos.Procedure proto;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    protected boolean ready = false;<a name="line.258"></a>
+<span class="sourceLineNo">259</span><a name="line.259"></a>
+<span class="sourceLineNo">260</span>    public Entry(Entry hashNext) { this.hashNext = hashNext; }<a name="line.260"></a>
+<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">262</span>    public long getProcId() { return proto.getProcId(); }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    public long getParentId() { return proto.getParentId(); }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    public boolean hasParent() { return proto.hasParentId(); }<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    public boolean isReady() { return ready; }<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>    public boolean isCompleted() {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      if (!hasParent()) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        switch (proto.getState()) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          case ROLLEDBACK:<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            return true;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          case FINISHED:<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            return !proto.hasException();<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          default:<a name="line.274"></a>
+<span class="sourceLineNo">275</span>            break;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      }<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      return false;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>  private static class EntryIterator implements ProcedureIterator {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    private final Entry replayHead;<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    private Entry current;<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>    public EntryIterator(Entry replayHead) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      this.replayHead = replayHead;<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      this.current = replayHead;<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>    @Override<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    public void reset() {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      this.current = replayHead;<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>    @Override<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    public boolean hasNext() {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      return current != null;<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>    @Override<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    public Procedure next() throws IOException {<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      try {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        return current.convert();<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      } finally {<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        current = current.replayNext;<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>  }<a name="line.308"></a>
-<span class="sourceLineNo">309</span><a name="line.309"></a>
-<span class="sourceLineNo">310</span>  private static class WalProcedureMap {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    // procedure hash table<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    private Entry[] procedureMap;<a name="line.312"></a>
-<span class="sourceLineNo">313</span><a name="line.313"></a>
-<span class="sourceLineNo">314</span>    // replay-order double-linked-list<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    private Entry replayOrderHead;<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    private Entry replayOrderTail;<a name="line.316"></a>
-<span class="sourceLineNo">317</span><a name="line.317"></a>
-<span class="sourceLineNo">318</span>    // root linked-list<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    private Entry rootHead;<a name="line.319"></a>
-<span class="sourceLineNo">320</span><a name="line.320"></a>
-<span class="sourceLineNo">321</span>    // pending unlinked children (root not present yet)<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    private Entry childUnlinkedHead;<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span>    // Track ProcId range<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    private long minProcId = Long.MAX_VALUE;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    private long maxProcId = Long.MIN_VALUE;<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>    public WalProcedureMap(int size) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      procedureMap = new Entry[size];<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      replayOrderHead = null;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      replayOrderTail = null;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      rootHead = null;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      childUnlinkedHead = null;<a name="line.333"></a>
+<span class="sourceLineNo">281</span>    public Procedure convert() throws IOException {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      if (procedure == null) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        procedure = Procedure.convert(proto);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      return procedure;<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>    public ProcedureInfo convertToInfo() {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      return ProcedureInfo.convert(proto);<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>    @Override<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    public String toString() {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      return "Entry(" + getProcId() + ", parentId=" + getParentId() + ")";<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><a name="line.297"></a>
+<span class="sourceLineNo">298</span>  private static class EntryIterator implements ProcedureIterator {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    private final Entry replayHead;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    private Entry current;<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>    public EntryIterator(Entry replayHead) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      this.replayHead = replayHead;<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      this.current = replayHead;<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>    @Override<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    public void reset() {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      this.current = replayHead;<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>    @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    public boolean hasNext() {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      return current != null;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>    @Override<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    public boolean isNextCompleted() {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      return current != null &amp;&amp; current.isCompleted();<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>    @Override<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    public void skipNext() {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      current = current.replayNext;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    }<a name="line.325"></a>
+<span class="sourceLineNo">326</span><a name="line.326"></a>
+<span class="sourceLineNo">327</span>    @Override<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    public Procedure nextAsProcedure() throws IOException {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      try {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        return current.convert();<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      } finally {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        current = current.replayNext;<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><a name="line.335"></a>
-<span class="sourceLineNo">336</span>    public void add(ProcedureProtos.Procedure procProto) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      trackProcIds(procProto.getProcId());<a name="line.337"></a>
-<span class="sourceLineNo">338</span>      Entry entry = addToMap(procProto.getProcId(), procProto.hasParentId());<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      boolean isNew = entry.proto == null;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      entry.proto = procProto;<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      addToReplayList(entry);<a name="line.341"></a>
-<span class="sourceLineNo">342</span><a name="line.342"></a>
-<span class="sourceLineNo">343</span>      if (isNew) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>        if (procProto.hasParentId()) {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>          childUnlinkedHead = addToLinkList(entry, childUnlinkedHead);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>        } else {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>          rootHead = addToLinkList(entry, rootHead);<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><a name="line.351"></a>
-<span class="sourceLineNo">352</span>    public boolean remove(long procId) {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      trackProcIds(procId);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      Entry entry = removeFromMap(procId);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      if (entry != null) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>        unlinkFromReplayList(entry);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>        unlinkFromLinkList(entry);<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        return true;<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      }<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      return false;<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>    private void trackProcIds(long procId) {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      minProcId = Math.min(minProcId, procId);<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      maxProcId = Math.max(maxProcId, procId);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    }<a name="line.366"></a>
-<span class="sourceLineNo">367</span><a name="line.367"></a>
-<span class="sourceLineNo">368</span>    public long getMinProcId() {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      return minProcId;<a name="line.369"></a>
+<span class="sourceLineNo">336</span>    @Override<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    public ProcedureInfo nextAsProcedureInfo() {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      try {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>        return current.convertToInfo();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      } finally {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        current = current.replayNext;<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 class WalProcedureMap {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    // procedure hash table<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    private Entry[] procedureMap;<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>    // replay-order double-linked-list<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    private Entry replayOrderHead;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    private Entry replayOrderTail;<a name="line.352"></a>
+<span class="sourceLineNo">353</span><a name="line.353"></a>
+<span class="sourceLineNo">354</span>    // root linked-list<a name="line.354"></a>
+<span class="sourceLineNo">355</span>    private Entry rootHead;<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>    // pending unlinked children (root not present yet)<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    private Entry childUnlinkedHead;<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span>    // Track ProcId range<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    private long minProcId = Long.MAX_VALUE;<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    private long maxProcId = Long.MIN_VALUE;<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span>    public WalProcedureMap(int size) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      procedureMap = new Entry[size];<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      replayOrderHead = null;<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      replayOrderTail = null;<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      rootHead = null;<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      childUnlinkedHead = null;<a name="line.369"></a>
 <span class="sourceLineNo">370</span>    }<a name="line.370"></a>
 <span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>    public long getMaxProcId() {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      return maxProcId;<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>    public boolean contains(long procId) {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      return getProcedure(procId) != null;<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>    public boolean isEmpty() {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      return replayOrderHead == null;<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>    public void clear() {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      for (int i = 0; i &lt; procedureMap.length; ++i) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>        procedureMap[i] = null;<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      }<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      replayOrderHead = null;<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      replayOrderTail = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      rootHead = null;<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      childUnlinkedHead = null;<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      minProcId = Long.MAX_VALUE;<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      maxProcId = Long.MIN_VALUE;<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>     * Merges two WalProcedureMap,<a name="line.397"></a>
-<span class="sourceLineNo">398</span>     * the target is the "global" map, the source is the "local" map.<a name="line.398"></a>
-<span class="sourceLineNo">399</span>     *  - The entries in the hashtables are guaranteed to be unique.<a name="line.399"></a>
-<span class="sourceLineNo">400</span>     *    On replay we don't load procedures that already exist in the "global"<a name="line.400"></a>
-<span class="sourceLineNo">401</span>     *    map (the one we are merging the "local" in to).<a name="line.401"></a>
-<span class="sourceLineNo">402</span>     *  - The replayOrderList of the "local" nao will be appended to the "global"<a name="line.402"></a>
-<span class="sourceLineNo">403</span>     *    map replay list.<a name="line.403"></a>
-<span class="sourceLineNo">404</span>     *  - The "local" map will be cleared at the end of the operation.<a name="line.404"></a>
-<span class="sourceLineNo">405</span>     */<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    public void mergeTail(WalProcedureMap other) {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      for (Entry p = other.replayOrderHead; p != null; p = p.replayNext) {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>        int slotIndex = getMapSlot(p.getProcId());<a name="line.408"></a>
-<span class="sourceLineNo">409</span>        p.hashNext = procedureMap[slotIndex];<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        procedureMap[slotIndex] = p;<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      }<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>      if (replayOrderHead == null) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>        replayOrderHead = other.replayOrderHead;<a name="line.414"></a>
-<span class="sourceLineNo">415</span>        replayOrderTail = other.replayOrderTail;<a name="line.415"></a>
-<span class="sourceLineNo">416</span>        rootHead = other.rootHead;<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        childUnlinkedHead = other.childUnlinkedHead;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      } else {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>        // append replay list<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        assert replayOrderTail.replayNext == null;<a name="line.420"></a>
-<span class="sourceLineNo">421</span>        assert other.replayOrderHead.replayPrev == null;<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        replayOrderTail.replayNext = other.replayOrderHead;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>        other.replayOrderHead.replayPrev = replayOrderTail;<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        replayOrderTail = other.replayOrderTail;<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>        // merge rootHead<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        if (rootHead == null) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>          rootHead = other.rootHead;<a name="line.428"></a>
-<span class="sourceLineNo">429</span>        } else if (other.rootHead != null) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span>          Entry otherTail = findLinkListTail(other.rootHead);<a name="line.430"></a>
-<span class="sourceLineNo">431</span>          otherTail.linkNext = rootHead;<a name="line.431"></a>
-<span class="sourceLineNo">432</span>          rootHead.linkPrev = otherTail;<a name="line.432"></a>
-<span class="sourceLineNo">433</span>          rootHead = other.rootHead;<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>        // merge childUnlinkedHead<a name="line.436"></a>
-<span class="sourceLineNo">437</span>        if (childUnlinkedHead == null) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>          childUnlinkedHead = other.childUnlinkedHead;<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        } else if (other.childUnlinkedHead != null) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          Entry otherTail = findLinkListTail(other.childUnlinkedHead);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          otherTail.linkNext = childUnlinkedHead;<a name="line.441"></a>
-<span class="sourceLineNo">442</span>          childUnlinkedHead.linkPrev = otherTail;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>          childUnlinkedHead = other.childUnlinkedHead;<a name="line.443"></a>
-<span class="sourceLineNo">444</span>        }<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      }<a name="line.445"></a>
-<span class="sourceLineNo">446</span><a name="line.446"></a>
-<span class="sourceLineNo">447</span>      other.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>     * Returns an EntryIterator with the list of procedures ready<a name="line.451"></a>
-<span class="sourceLineNo">452</span>     * to be added to the executor.<a name="line.452"></a>
-<span class="sourceLineNo">453</span>     * A Procedure is ready if its children and parent are ready.<a name="line.453"></a>
-<span class="sourceLineNo">454</span>     */<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    public EntryIterator fetchReady() {<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      buildGraph();<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>      Entry readyHead = null;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      Entry readyTail = null;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      Entry p = replayOrderHead;<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      while (p != null) {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>        Entry next = p.replayNext;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>        if (p.isReady()) {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>          unlinkFromReplayList(p);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>          if (readyTail != null) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>            readyTail.replayNext = p;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>            p.replayPrev = readyTail;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>          } else {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>            p.replayPrev = null;<a name="line.469"></a>
-<span class="sourceLineNo">470</span>            readyHead = p;<a name="line.470"></a>
-<span class="sourceLineNo">471</span>          }<a name="line.471"></a>
-<span class="sourceLineNo">472</span>          readyTail = p;<a name="line.472"></a>
-<span class="sourceLineNo">473</span>          p.replayNext = null;<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        }<a name="line.474"></a>
-<span class="sourceLineNo">475</span>        p = next;<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      }<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      // we need the hash-table lookups for parents, so this must be done<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      // out of the loop where we check isReadyToRun()<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      for (p = readyHead; p != null; p = p.replayNext) {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        removeFromMap(p.getProcId());<a name="line.480"></a>
-<span class="sourceLineNo">481</span>        unlinkFromLinkList(p);<a name="line.481"></a>
-<span class="sourceLineNo">482</span>      }<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      return readyHead != null ? new EntryIterator(readyHead) : null;<a name="line.483"></a>
+<span class="sourceLineNo">372</span>    public void add(ProcedureProtos.Procedure procProto) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      trackProcIds(procProto.getProcId());<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      Entry entry = addToMap(procProto.getProcId(), procProto.hasParentId());<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      boolean isNew = entry.proto == null;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      entry.proto = procProto;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      addToReplayList(entry);<a name="line.377"></a>
+<span class="sourceLineNo">378</span><a name="line.378"></a>
+<span class="sourceLineNo">379</span>      if (isNew) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        if (procProto.hasParentId()) {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>          childUnlinkedHead = addToLinkList(entry, childUnlinkedHead);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        } else {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>          rootHead = addToLinkList(entry, rootHead);<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><a name="line.387"></a>
+<span class="sourceLineNo">388</span>    public boolean remove(long procId) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      trackProcIds(procId);<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      Entry entry = removeFromMap(procId);<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      if (entry != null) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        unlinkFromReplayList(entry);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        unlinkFromLinkList(entry);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        return true;<a name="line.394"></a>
+<span class="sourceLineNo">395</span>      }<a name="line.395"></a>
+<span class="sourceLineNo">396</span>      return false;<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>    private void trackProcIds(long procId) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>      minProcId = Math.min(minProcId, procId);<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      maxProcId = Math.max(maxProcId, procId);<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    }<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>    public long getMinProcId() {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      return minProcId;<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>    public long getMaxProcId() {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>      return maxProcId;<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>    public boolean contains(long procId) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      return getProcedure(procId) != null;<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 isEmpty() {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>      return replayOrderHead == null;<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>    public void clear() {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      for (int i = 0; i &lt; procedureMap.length; ++i) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        procedureMap[i] = null;<a name="line.422"></a>
+<span class="sourceLineNo">423</span>      }<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      replayOrderHead = null;<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      replayOrderTail = null;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      rootHead = null;<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      childUnlinkedHead = null;<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      minProcId = Long.MAX_VALUE;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      maxProcId = Long.MIN_VALUE;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    }<a name="line.430"></a>
+<span class="sourceLineNo">431</span><a name="line.431"></a>
+<span class="sourceLineNo">432</span>    /*<a name="line.432"></a>
+<span class="sourceLineNo">433</span>     * Merges two WalProcedureMap,<a name="line.433"></a>
+<span class="sourceLineNo">434</span>     * the target is the "global" map, the source is the "local" map.<a name="line.434"></a>
+<span class="sourceLineNo">435</span>     *  - The entries in the hashtables are guaranteed to be unique.<a name="line.435"></a>
+<span class="sourceLineNo">436</span>     *    On replay we don't load procedures that already exist in the "global"<a name="line.436"></a>
+<span class="sourceLineNo">437</span>     *    map (the one we are merging the "local" in to).<a name="line.437"></a>
+<span class="sourceLineNo">438</span>     *  - The replayOrderList of the "local" nao will be appended to the "global"<a name="line.438"></a>
+<span class="sourceLineNo">439</span>     *    map replay list.<a name="line.439"></a>
+<span class="sourceLineNo">440</span>     *  - The "local" map will be cleared at the end of the operation.<a name="line.440"></a>
+<span class="sourceLineNo">441</span>     */<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    public void mergeTail(WalProcedureMap other) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      for (Entry p = other.replayOrderHead; p != null; p = p.replayNext) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        int slotIndex = getMapSlot(p.getProcId());<a name="line.444"></a>
+<span class="sourceLineNo">445</span>        p.hashNext = procedureMap[slotIndex];<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        procedureMap[slotIndex] = p;<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>      if (replayOrderHead == null) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        replayOrderHead = other.replayOrderHead;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>        replayOrderTail = other.replayOrderTail;<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        rootHead = other.rootHead;<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        childUnlinkedHead = other.childUnlinkedHead;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        // append replay list<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        assert replayOrderTail.replayNext == null;<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        assert other.replayOrderHead.replayPrev == null;<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        replayOrderTail.replayNext = other.replayOrderHead;<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        other.replayOrderHead.replayPrev = replayOrderTail;<a name="line.459"></a>
+<span class="sourceLineNo">460</span>        replayOrderTail = other.replayOrderTail;<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>        // merge rootHead<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        if (rootHead == null) {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>          rootHead = other.rootHead;<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        } else if (other.rootHead != null) {<a name="line.465"></a>
+<span class="sourceLineNo">466</span>          Entry otherTail = findLinkListTail(other.rootHead);<a name="line.466"></a>
+<span class="sourceLineNo">467</span>          otherTail.linkNext = rootHead;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>          rootHead.linkPrev = otherTail;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>          rootHead = other.rootHead;<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>        // merge childUnlinkedHead<a name="line.472"></a>
+<span class="sourceLineNo">473</span>        if (childUnlinkedHead == null) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>          childUnlinkedHead = other.childUnlinkedHead;<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        } else if (other.childUnlinkedHead != null) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>          Entry otherTail = findLinkListTail(other.childUnlinkedHead);<a name="line.476"></a>
+<span class="sourceLineNo">477</span>          otherTail.linkNext = childUnlinkedHead;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>          childUnlinkedHead.linkPrev = otherTail;<a name="line.478"></a>
+<span class="sourceLineNo">479</span>          childUnlinkedHead = other.childUnlin

<TRUNCATED>

[28/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html b/devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html
index b2c7ad3..bbb16ea 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html
@@ -62,574 +62,584 @@
 <span class="sourceLineNo">054</span>  }<a name="line.54"></a>
 <span class="sourceLineNo">055</span><a name="line.55"></a>
 <span class="sourceLineNo">056</span>  @Override<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  public void preCreateTableHandler(<a name="line.57"></a>
-<span class="sourceLineNo">058</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.58"></a>
-<span class="sourceLineNo">059</span>      HTableDescriptor desc, HRegionInfo[] regions) throws IOException {<a name="line.59"></a>
-<span class="sourceLineNo">060</span>  }<a name="line.60"></a>
-<span class="sourceLineNo">061</span><a name="line.61"></a>
-<span class="sourceLineNo">062</span>  @Override<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  public void postCreateTableHandler(<a name="line.63"></a>
-<span class="sourceLineNo">064</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.64"></a>
-<span class="sourceLineNo">065</span>      HTableDescriptor desc, HRegionInfo[] regions) throws IOException {<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>  @Override<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  public void preDeleteTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.69"></a>
-<span class="sourceLineNo">070</span>      TableName tableName) throws IOException {<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  }<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  @Override<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  public void postDeleteTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      TableName tableName) throws IOException {<a name="line.75"></a>
+<span class="sourceLineNo">057</span>  public void preDispatchMerge(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.57"></a>
+<span class="sourceLineNo">058</span>      HRegionInfo regionA, HRegionInfo regionB) throws IOException {<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>
+<span class="sourceLineNo">061</span>  @Override<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  public void postDispatchMerge(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.62"></a>
+<span class="sourceLineNo">063</span>      HRegionInfo regionA, HRegionInfo regionB) throws IOException {<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>  public void preCreateTableHandler(<a name="line.67"></a>
+<span class="sourceLineNo">068</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      HTableDescriptor desc, HRegionInfo[] regions) throws IOException {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  }<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  @Override<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  public void postCreateTableHandler(<a name="line.73"></a>
+<span class="sourceLineNo">074</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.74"></a>
+<span class="sourceLineNo">075</span>      HTableDescriptor desc, HRegionInfo[] regions) throws IOException {<a name="line.75"></a>
 <span class="sourceLineNo">076</span>  }<a name="line.76"></a>
 <span class="sourceLineNo">077</span><a name="line.77"></a>
 <span class="sourceLineNo">078</span>  @Override<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  public void preDeleteTableHandler(<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      throws IOException{<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>  @Override<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  public void postDeleteTableHandler(<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.86"></a>
-<span class="sourceLineNo">087</span>      throws IOException {<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>  @Override<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  public void preTruncateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      TableName tableName) throws IOException {<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>  @Override<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  public void postTruncateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      TableName tableName) throws IOException {<a name="line.97"></a>
+<span class="sourceLineNo">079</span>  public void preDeleteTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.79"></a>
+<span class="sourceLineNo">080</span>      TableName tableName) throws IOException {<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 void postDeleteTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.84"></a>
+<span class="sourceLineNo">085</span>      TableName tableName) throws IOException {<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>  @Override<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  public void preDeleteTableHandler(<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      throws IOException{<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>  @Override<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  public void postDeleteTableHandler(<a name="line.95"></a>
+<span class="sourceLineNo">096</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      throws IOException {<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>  @Override<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  public void preTruncateTableHandler(<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      throws IOException {<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>  @Override<a name="line.106"></a>
-<span class="sourceLineNo">107</span>  public void postTruncateTableHandler(<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      throws IOException {<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>  @Override<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  public void preModifyTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      TableName tableName, HTableDescriptor htd) throws IOException {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  }<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span>  @Override<a name="line.117"></a>
-<span class="sourceLineNo">118</span>  public void postModifyTableHandler(<a name="line.118"></a>
-<span class="sourceLineNo">119</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      HTableDescriptor htd) throws IOException {<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>  @Override<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  public void preModifyTableHandler(<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      HTableDescriptor htd) throws IOException {<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>  @Override<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  public void postModifyTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      TableName tableName, HTableDescriptor htd) throws IOException {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>  }<a name="line.132"></a>
-<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>  @Override<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  public void preCreateNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.135"></a>
-<span class="sourceLineNo">136</span>      NamespaceDescriptor ns) throws IOException {<a name="line.136"></a>
+<span class="sourceLineNo">101</span>  public void preTruncateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.101"></a>
+<span class="sourceLineNo">102</span>      TableName tableName) throws IOException {<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>  @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span>  public void postTruncateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      TableName tableName) throws IOException {<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>  @Override<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  public void preTruncateTableHandler(<a name="line.111"></a>
+<span class="sourceLineNo">112</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      throws IOException {<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>  @Override<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  public void postTruncateTableHandler(<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      throws IOException {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>  }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>  @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>  public void preModifyTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      TableName tableName, HTableDescriptor htd) throws IOException {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>  @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>  public void postModifyTableHandler(<a name="line.128"></a>
+<span class="sourceLineNo">129</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      HTableDescriptor htd) throws IOException {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>  @Override<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  public void preModifyTableHandler(<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      HTableDescriptor htd) throws IOException {<a name="line.136"></a>
 <span class="sourceLineNo">137</span>  }<a name="line.137"></a>
 <span class="sourceLineNo">138</span><a name="line.138"></a>
 <span class="sourceLineNo">139</span>  @Override<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  public void postCreateNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      NamespaceDescriptor ns) throws IOException {<a name="line.141"></a>
+<span class="sourceLineNo">140</span>  public void postModifyTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      TableName tableName, HTableDescriptor htd) throws IOException {<a name="line.141"></a>
 <span class="sourceLineNo">142</span>  }<a name="line.142"></a>
 <span class="sourceLineNo">143</span><a name="line.143"></a>
 <span class="sourceLineNo">144</span>  @Override<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  public void preDeleteNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      String namespace) throws IOException {<a name="line.146"></a>
+<span class="sourceLineNo">145</span>  public void preCreateNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      NamespaceDescriptor ns) throws IOException {<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>  @Override<a name="line.149"></a>
-<span class="sourceLineNo">150</span>  public void postDeleteNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      String namespace) throws IOException {<a name="line.151"></a>
+<span class="sourceLineNo">150</span>  public void postCreateNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      NamespaceDescriptor ns) throws IOException {<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>  @Override<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  public void preModifyNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      NamespaceDescriptor ns) throws IOException {<a name="line.156"></a>
+<span class="sourceLineNo">155</span>  public void preDeleteNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      String namespace) throws IOException {<a name="line.156"></a>
 <span class="sourceLineNo">157</span>  }<a name="line.157"></a>
 <span class="sourceLineNo">158</span><a name="line.158"></a>
 <span class="sourceLineNo">159</span>  @Override<a name="line.159"></a>
-<span class="sourceLineNo">160</span>  public void postModifyNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      NamespaceDescriptor ns) throws IOException {<a name="line.161"></a>
+<span class="sourceLineNo">160</span>  public void postDeleteNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      String namespace) throws IOException {<a name="line.161"></a>
 <span class="sourceLineNo">162</span>  }<a name="line.162"></a>
 <span class="sourceLineNo">163</span><a name="line.163"></a>
 <span class="sourceLineNo">164</span>  @Override<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  public void preGetNamespaceDescriptor(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.165"></a>
-<span class="sourceLineNo">166</span>      String namespace) throws IOException {<a name="line.166"></a>
+<span class="sourceLineNo">165</span>  public void preModifyNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      NamespaceDescriptor ns) throws IOException {<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>  @Override<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  public void postGetNamespaceDescriptor(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.170"></a>
+<span class="sourceLineNo">170</span>  public void postModifyNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.170"></a>
 <span class="sourceLineNo">171</span>      NamespaceDescriptor ns) throws IOException {<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>  @Override<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public void preListNamespaceDescriptors(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      List&lt;NamespaceDescriptor&gt; descriptors) throws IOException {<a name="line.176"></a>
+<span class="sourceLineNo">175</span>  public void preGetNamespaceDescriptor(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      String namespace) throws IOException {<a name="line.176"></a>
 <span class="sourceLineNo">177</span>  }<a name="line.177"></a>
 <span class="sourceLineNo">178</span><a name="line.178"></a>
 <span class="sourceLineNo">179</span>  @Override<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  public void postListNamespaceDescriptors(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      List&lt;NamespaceDescriptor&gt; descriptors) throws IOException {<a name="line.181"></a>
+<span class="sourceLineNo">180</span>  public void postGetNamespaceDescriptor(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      NamespaceDescriptor ns) throws IOException {<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>  @Deprecated<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  @Override<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  public void preAddColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  }<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>  @Override<a name="line.190"></a>
-<span class="sourceLineNo">191</span>  public void preAddColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  }<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  @Deprecated<a name="line.195"></a>
-<span class="sourceLineNo">196</span>  @Override<a name="line.196"></a>
-<span class="sourceLineNo">197</span>  public void postAddColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<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>  @Override<a name="line.201"></a>
-<span class="sourceLineNo">202</span>  public void postAddColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<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>  @Deprecated<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  @Override<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  public void preAddColumnHandler(<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      HColumnDescriptor columnFamily) throws IOException {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>  }<a name="line.211"></a>
-<span class="sourceLineNo">212</span><a name="line.212"></a>
-<span class="sourceLineNo">213</span>  @Override<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  public void preAddColumnFamilyHandler(<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      HColumnDescriptor columnFamily) throws IOException {<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>  @Deprecated<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  @Override<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  public void postAddColumnHandler(<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      HColumnDescriptor columnFamily) throws IOException {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  @Override<a name="line.226"></a>
-<span class="sourceLineNo">227</span>  public void postAddColumnFamilyHandler(<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      HColumnDescriptor columnFamily) throws IOException {<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>  @Deprecated<a name="line.232"></a>
-<span class="sourceLineNo">233</span>  @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  public void preModifyColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>  @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span>  public void preModifyColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  }<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>  @Deprecated<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  @Override<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  public void postModifyColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  }<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>  @Override<a name="line.249"></a>
-<span class="sourceLineNo">250</span>  public void postModifyColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span>  @Deprecated<a name="line.254"></a>
-<span class="sourceLineNo">255</span>  @Override<a name="line.255"></a>
-<span class="sourceLineNo">256</span>  public void preModifyColumnHandler(<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      HColumnDescriptor columnFamily) throws IOException {<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>  @Override<a name="line.261"></a>
-<span class="sourceLineNo">262</span>  public void preModifyColumnFamilyHandler(<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      HColumnDescriptor columnFamily) throws IOException {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>  }<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>  @Deprecated<a name="line.267"></a>
-<span class="sourceLineNo">268</span>  @Override<a name="line.268"></a>
-<span class="sourceLineNo">269</span>  public void postModifyColumnHandler(<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      HColumnDescriptor columnFamily) throws IOException {<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>  @Override<a name="line.274"></a>
-<span class="sourceLineNo">275</span>  public void postModifyColumnFamilyHandler(<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      HColumnDescriptor columnFamily) throws IOException {<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>  @Deprecated<a name="line.280"></a>
-<span class="sourceLineNo">281</span>  @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  public void preDeleteColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.282"></a>
-<span class="sourceLineNo">283</span>      TableName tableName, byte[] columnFamily) throws IOException {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>  }<a name="line.284"></a>
-<span class="sourceLineNo">285</span><a name="line.285"></a>
-<span class="sourceLineNo">286</span>  @Override<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  public void preDeleteColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.287"></a>
-<span class="sourceLineNo">288</span>      TableName tableName, byte[] columnFamily) throws IOException {<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>  @Deprecated<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  @Override<a name="line.292"></a>
-<span class="sourceLineNo">293</span>  public void postDeleteColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      TableName tableName, byte[] columnFamily) throws IOException {<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>  @Override<a name="line.297"></a>
-<span class="sourceLineNo">298</span>  public void postDeleteColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      TableName tableName, byte[] columnFamily) throws IOException {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>  }<a name="line.300"></a>
-<span class="sourceLineNo">301</span><a name="line.301"></a>
-<span class="sourceLineNo">302</span>  @Deprecated<a name="line.302"></a>
-<span class="sourceLineNo">303</span>  @Override<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  public void preDeleteColumnHandler(<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.305"></a>
-<span class="sourceLineNo">306</span>      byte[] columnFamily) throws IOException {<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<a name="line.309"></a>
-<span class="sourceLineNo">310</span>  public void preDeleteColumnFamilyHandler(<a name="line.310"></a>
-<span class="sourceLineNo">311</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      byte[] columnFamily) throws IOException {<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>  @Deprecated<a name="line.315"></a>
-<span class="sourceLineNo">316</span>  @Override<a name="line.316"></a>
-<span class="sourceLineNo">317</span>  public void postDeleteColumnHandler(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      byte[] columnFamily) throws IOException {<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>  @Override<a name="line.322"></a>
-<span class="sourceLineNo">323</span>  public void postDeleteColumnFamilyHandler(<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      byte[] columnFamily) throws IOException {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>  }<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span><a name="line.328"></a>
-<span class="sourceLineNo">329</span>  @Override<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  public void preEnableTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      TableName tableName) throws IOException {<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>  @Override<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  public void postEnableTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      TableName tableName) throws IOException {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>  }<a name="line.337"></a>
+<span class="sourceLineNo">184</span>  @Override<a name="line.184"></a>
+<span class="sourceLineNo">185</span>  public void preListNamespaceDescriptors(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      List&lt;NamespaceDescriptor&gt; descriptors) throws IOException {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  }<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>  @Override<a name="line.189"></a>
+<span class="sourceLineNo">190</span>  public void postListNamespaceDescriptors(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      List&lt;NamespaceDescriptor&gt; descriptors) throws IOException {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  }<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>  @Deprecated<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  @Override<a name="line.195"></a>
+<span class="sourceLineNo">196</span>  public void preAddColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<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>  @Override<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  public void preAddColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<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>  @Deprecated<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>  public void postAddColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<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>  @Override<a name="line.211"></a>
+<span class="sourceLineNo">212</span>  public void postAddColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<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>  @Deprecated<a name="line.216"></a>
+<span class="sourceLineNo">217</span>  @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  public void preAddColumnHandler(<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      HColumnDescriptor columnFamily) throws IOException {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>  }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>  @Override<a name="line.223"></a>
+<span class="sourceLineNo">224</span>  public void preAddColumnFamilyHandler(<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      HColumnDescriptor columnFamily) throws IOException {<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>  @Deprecated<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  @Override<a name="line.230"></a>
+<span class="sourceLineNo">231</span>  public void postAddColumnHandler(<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      HColumnDescriptor columnFamily) throws IOException {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>  @Override<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  public void postAddColumnFamilyHandler(<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      HColumnDescriptor columnFamily) throws IOException {<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>  @Deprecated<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>  public void preModifyColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<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>  @Override<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  public void preModifyColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<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>  @Deprecated<a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @Override<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  public void postModifyColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>  }<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>  @Override<a name="line.259"></a>
+<span class="sourceLineNo">260</span>  public void postModifyColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      TableName tableName, HColumnDescriptor columnFamily) throws IOException {<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>  @Deprecated<a name="line.264"></a>
+<span class="sourceLineNo">265</span>  @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>  public void preModifyColumnHandler(<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      HColumnDescriptor columnFamily) throws IOException {<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>  @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  public void preModifyColumnFamilyHandler(<a name="line.272"></a>
+<span class="sourceLineNo">273</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      HColumnDescriptor columnFamily) throws IOException {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>  }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>  @Deprecated<a name="line.277"></a>
+<span class="sourceLineNo">278</span>  @Override<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  public void postModifyColumnHandler(<a name="line.279"></a>
+<span class="sourceLineNo">280</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      HColumnDescriptor columnFamily) 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 postModifyColumnFamilyHandler(<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      HColumnDescriptor columnFamily) throws IOException {<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>  @Deprecated<a name="line.290"></a>
+<span class="sourceLineNo">291</span>  @Override<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  public void preDeleteColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      TableName tableName, byte[] columnFamily) throws IOException {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>  }<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span>  @Override<a name="line.296"></a>
+<span class="sourceLineNo">297</span>  public void preDeleteColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.297"></a>
+<span class="sourceLineNo">298</span>      TableName tableName, byte[] columnFamily) throws IOException {<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>  @Deprecated<a name="line.301"></a>
+<span class="sourceLineNo">302</span>  @Override<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  public void postDeleteColumn(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      TableName tableName, byte[] columnFamily) throws IOException {<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>  @Override<a name="line.307"></a>
+<span class="sourceLineNo">308</span>  public void postDeleteColumnFamily(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      TableName tableName, byte[] columnFamily) throws IOException {<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>  @Deprecated<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  @Override<a name="line.313"></a>
+<span class="sourceLineNo">314</span>  public void preDeleteColumnHandler(<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      byte[] columnFamily) throws IOException {<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 void preDeleteColumnFamilyHandler(<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      byte[] columnFamily) throws IOException {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>  }<a name="line.323"></a>
+<span class="sourceLineNo">324</span><a name="line.324"></a>
+<span class="sourceLineNo">325</span>  @Deprecated<a name="line.325"></a>
+<span class="sourceLineNo">326</span>  @Override<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  public void postDeleteColumnHandler(<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      byte[] columnFamily) throws IOException {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>  @Override<a name="line.332"></a>
+<span class="sourceLineNo">333</span>  public void postDeleteColumnFamilyHandler(<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName,<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      byte[] columnFamily) throws IOException {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>  }<a name="line.336"></a>
+<span class="sourceLineNo">337</span><a name="line.337"></a>
 <span class="sourceLineNo">338</span><a name="line.338"></a>
 <span class="sourceLineNo">339</span>  @Override<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  public void preEnableTableHandler(<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      throws IOException {<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  }<a name="line.343"></a>
-<span class="sourceLineNo">344</span><a name="line.344"></a>
-<span class="sourceLineNo">345</span>  @Override<a name="line.345"></a>
-<span class="sourceLineNo">346</span>  public void postEnableTableHandler(<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      throws IOException {<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>  @Override<a name="line.351"></a>
-<span class="sourceLineNo">352</span>  public void preDisableTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      TableName tableName) throws IOException {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>  }<a name="line.354"></a>
-<span class="sourceLineNo">355</span><a name="line.355"></a>
-<span class="sourceLineNo">356</span>  @Override<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  public void postDisableTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      TableName tableName) throws IOException {<a name="line.358"></a>
+<span class="sourceLineNo">340</span>  public void preEnableTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      TableName tableName) 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>  @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>  public void postEnableTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      TableName tableName) throws IOException {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>  }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>  @Override<a name="line.349"></a>
+<span class="sourceLineNo">350</span>  public void preEnableTableHandler(<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      throws IOException {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public void postEnableTableHandler(<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      throws IOException {<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>  @Override<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  public void preDisableTableHandler(<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      throws IOException {<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>  @Override<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  public void postDisableTableHandler(<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.369"></a>
-<span class="sourceLineNo">370</span>      throws IOException {<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>  @Override<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  public void preAbortProcedure(<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      final ProcedureExecutor&lt;MasterProcedureEnv&gt; procEnv,<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      final long procId) throws IOException {<a name="line.377"></a>
-<span class="sourceLineNo">378</span>  }<a name="line.378"></a>
-<span class="sourceLineNo">379</span><a name="line.379"></a>
-<span class="sourceLineNo">380</span>  @Override<a name="line.380"></a>
-<span class="sourceLineNo">381</span>  public void postAbortProcedure(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      throws IOException {<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>  @Override<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  public void preListProcedures(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      throws IOException {<a name="line.387"></a>
+<span class="sourceLineNo">362</span>  public void preDisableTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      TableName tableName) throws IOException {<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>  @Override<a name="line.366"></a>
+<span class="sourceLineNo">367</span>  public void postDisableTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      TableName tableName) throws IOException {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>  @Override<a name="line.371"></a>
+<span class="sourceLineNo">372</span>  public void preDisableTableHandler(<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      throws IOException {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public void postDisableTableHandler(<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, TableName tableName)<a name="line.379"></a>
+<span class="sourceLineNo">380</span>      throws IOException {<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>  @Override<a name="line.383"></a>
+<span class="sourceLineNo">384</span>  public void preAbortProcedure(<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      final ProcedureExecutor&lt;MasterProcedureEnv&gt; procEnv,<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      final long procId) throws IOException {<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 void postListProcedures(<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      List&lt;ProcedureInfo&gt; procInfoList) throws IOException {<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>  @Override<a name="line.396"></a>
-<span class="sourceLineNo">397</span>  public void preAssign(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.397"></a>
-<span class="sourceLineNo">398</span>      HRegionInfo regionInfo) throws IOException {<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>  @Override<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  public void postAssign(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      HRegionInfo regionInfo) throws IOException {<a name="line.403"></a>
+<span class="sourceLineNo">391</span>  public void postAbortProcedure(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      throws IOException {<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>  @Override<a name="line.395"></a>
+<span class="sourceLineNo">396</span>  public void preListProcedures(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.396"></a>
+<span class="sourceLineNo">397</span>      throws IOException {<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>  @Override<a name="line.400"></a>
+<span class="sourceLineNo">401</span>  public void postListProcedures(<a name="line.401"></a>
+<span class="sourceLineNo">402</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      List&lt;ProcedureInfo&gt; procInfoList) throws IOException {<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>  @Override<a name="line.406"></a>
-<span class="sourceLineNo">407</span>  public void preUnassign(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      HRegionInfo regionInfo, boolean force) throws IOException {<a name="line.408"></a>
+<span class="sourceLineNo">407</span>  public void preAssign(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.407"></a>
+<span class="sourceLineNo">408</span>      HRegionInfo regionInfo) throws IOException {<a name="line.408"></a>
 <span class="sourceLineNo">409</span>  }<a name="line.409"></a>
 <span class="sourceLineNo">410</span><a name="line.410"></a>
 <span class="sourceLineNo">411</span>  @Override<a name="line.411"></a>
-<span class="sourceLineNo">412</span>  public void postUnassign(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      HRegionInfo regionInfo, boolean force) throws IOException {<a name="line.413"></a>
+<span class="sourceLineNo">412</span>  public void postAssign(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      HRegionInfo regionInfo) throws IOException {<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>  @Override<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  public void preRegionOffline(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    HRegionInfo regionInfo) throws IOException {<a name="line.418"></a>
+<span class="sourceLineNo">417</span>  public void preUnassign(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      HRegionInfo regionInfo, boolean force) throws IOException {<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>  @Override<a name="line.421"></a>
-<span class="sourceLineNo">422</span>  public void postRegionOffline(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    HRegionInfo regionInfo) throws IOException {<a name="line.423"></a>
+<span class="sourceLineNo">422</span>  public void postUnassign(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.422"></a>
+<span class="sourceLineNo">423</span>      HRegionInfo regionInfo, boolean force) throws IOException {<a name="line.423"></a>
 <span class="sourceLineNo">424</span>  }<a name="line.424"></a>
 <span class="sourceLineNo">425</span><a name="line.425"></a>
 <span class="sourceLineNo">426</span>  @Override<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  public void preBalance(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      throws IOException {<a name="line.428"></a>
+<span class="sourceLineNo">427</span>  public void preRegionOffline(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    HRegionInfo regionInfo) throws IOException {<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>  @Override<a name="line.431"></a>
-<span class="sourceLineNo">432</span>  public void postBalance(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, List&lt;RegionPlan&gt; plans)<a name="line.432"></a>
-<span class="sourceLineNo">433</span>      throws IOException {<a name="line.433"></a>
+<span class="sourceLineNo">432</span>  public void postRegionOffline(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.432"></a>
+<span class="sourceLineNo">433</span>    HRegionInfo regionInfo) throws IOException {<a name="line.433"></a>
 <span class="sourceLineNo">434</span>  }<a name="line.434"></a>
 <span class="sourceLineNo">435</span><a name="line.435"></a>
 <span class="sourceLineNo">436</span>  @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span>  public boolean preBalanceSwitch(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      boolean b) throws IOException {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    return b;<a name="line.439"></a>
-<span class="sourceLineNo">440</span>  }<a name="line.440"></a>
-<span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span>  @Override<a name="line.442"></a>
-<span class="sourceLineNo">443</span>  public void postBalanceSwitch(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      boolean oldValue, boolean newValue) throws IOException {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>  }<a name="line.445"></a>
-<span class="sourceLineNo">446</span><a name="line.446"></a>
-<span class="sourceLineNo">447</span>  @Override<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  public void preShutdown(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      throws IOException {<a name="line.449"></a>
+<span class="sourceLineNo">437</span>  public void preBalance(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.437"></a>
+<span class="sourceLineNo">438</span>      throws IOException {<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>  @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>  public void postBalance(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, List&lt;RegionPlan&gt; plans)<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      throws IOException {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>  }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>  @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>  public boolean preBalanceSwitch(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.447"></a>
+<span class="sourceLineNo">448</span>      boolean b) throws IOException {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>    return b;<a name="line.449"></a>
 <span class="sourceLineNo">450</span>  }<a name="line.450"></a>
 <span class="sourceLineNo">451</span><a name="line.451"></a>
 <span class="sourceLineNo">452</span>  @Override<a name="line.452"></a>
-<span class="sourceLineNo">453</span>  public void preStopMaster(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      throws IOException {<a name="line.454"></a>
+<span class="sourceLineNo">453</span>  public void postBalanceSwitch(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      boolean oldValue, boolean newValue) throws IOException {<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>  @Override<a name="line.457"></a>
-<span class="sourceLineNo">458</span>  public void postStartMaster(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.458"></a>
+<span class="sourceLineNo">458</span>  public void preShutdown(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.458"></a>
 <span class="sourceLineNo">459</span>      throws IOException {<a name="line.459"></a>
 <span class="sourceLineNo">460</span>  }<a name="line.460"></a>
 <span class="sourceLineNo">461</span><a name="line.461"></a>
 <span class="sourceLineNo">462</span>  @Override<a name="line.462"></a>
-<span class="sourceLineNo">463</span>  public void preMasterInitialization(<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx) throws IOException {<a name="line.464"></a>
+<span class="sourceLineNo">463</span>  public void preStopMaster(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.463"></a>
+<span class="sourceLineNo">464</span>      throws IOException {<a name="line.464"></a>
 <span class="sourceLineNo">465</span>  }<a name="line.465"></a>
 <span class="sourceLineNo">466</span><a name="line.466"></a>
 <span class="sourceLineNo">467</span>  @Override<a name="line.467"></a>
-<span class="sourceLineNo">468</span>  public void start(CoprocessorEnvironment ctx) throws IOException {<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>  @Override<a name="line.471"></a>
-<span class="sourceLineNo">472</span>  public void stop(CoprocessorEnvironment ctx) throws IOException {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>  }<a name="line.473"></a>
-<span class="sourceLineNo">474</span><a name="line.474"></a>
-<span class="sourceLineNo">475</span>  @Override<a name="line.475"></a>
-<span class="sourceLineNo">476</span>  public void preMove(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      HRegionInfo region, ServerName srcServer, ServerName destServer)<a name="line.477"></a>
-<span class="sourceLineNo">478</span>  throws IOException {<a name="line.478"></a>
+<span class="sourceLineNo">468</span>  public void postStartMaster(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.468"></a>
+<span class="sourceLineNo">469</span>      throws IOException {<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>  @Override<a name="line.472"></a>
+<span class="sourceLineNo">473</span>  public void preMasterInitialization(<a name="line.473"></a>
+<span class="sourceLineNo">474</span>      ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx) throws IOException {<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>  @Override<a name="line.477"></a>
+<span class="sourceLineNo">478</span>  public void start(CoprocessorEnvironment ctx) throws IOException {<a name="line.478"></a>
 <span class="sourceLineNo">479</span>  }<a name="line.479"></a>
 <span class="sourceLineNo">480</span><a name="line.480"></a>
 <span class="sourceLineNo">481</span>  @Override<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  public void postMove(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      HRegionInfo region, ServerName srcServer, ServerName destServer)<a name="line.483"></a>
-<span class="sourceLineNo">484</span>  throws IOException {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>  }<a name="line.485"></a>
-<span class="sourceLineNo">486</span><a name="line.486"></a>
-<span class="sourceLineNo">487</span>  @Override<a name="line.487"></a>
-<span class="sourceLineNo">488</span>  public void preSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      throws IOException {<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>  @Override<a name="line.493"></a>
-<span class="sourceLineNo">494</span>  public void postSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      throws IOException {<a name="line.496"></a>
-<span class="sourceLineNo">497</span>  }<a name="line.497"></a>
-<span class="sourceLineNo">498</span><a name="line.498"></a>
-<span class="sourceLineNo">499</span>  @Override<a name="line.499"></a>
-<span class="sourceLineNo">500</span>  public void preListSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.500"></a>
-<span class="sourceLineNo">501</span>      final SnapshotDescription snapshot) throws IOException {<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>  @Override<a name="line.504"></a>
-<span class="sourceLineNo">505</span>  public void postListSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.505"></a>
-<span class="sourceLineNo">506</span>      final SnapshotDescription snapshot) throws IOException {<a name="line.506"></a>
+<span class="sourceLineNo">482</span>  public void stop(CoprocessorEnvironment ctx) throws IOException {<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>  @Override<a name="line.485"></a>
+<span class="sourceLineNo">486</span>  public void preMove(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.486"></a>
+<span class="sourceLineNo">487</span>      HRegionInfo region, ServerName srcServer, ServerName destServer)<a name="line.487"></a>
+<span class="sourceLineNo">488</span>  throws IOException {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>  }<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>  @Override<a name="line.491"></a>
+<span class="sourceLineNo">492</span>  public void postMove(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.492"></a>
+<span class="sourceLineNo">493</span>      HRegionInfo region, ServerName srcServer, ServerName destServer)<a name="line.493"></a>
+<span class="sourceLineNo">494</span>  throws IOException {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>  }<a name="line.495"></a>
+<span class="sourceLineNo">496</span><a name="line.496"></a>
+<span class="sourceLineNo">497</span>  @Override<a name="line.497"></a>
+<span class="sourceLineNo">498</span>  public void preSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.498"></a>
+<span class="sourceLineNo">499</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.499"></a>
+<span class="sourceLineNo">500</span>      throws IOException {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>  }<a name="line.501"></a>
+<span class="sourceLineNo">502</span><a name="line.502"></a>
+<span class="sourceLineNo">503</span>  @Override<a name="line.503"></a>
+<span class="sourceLineNo">504</span>  public void postSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.504"></a>
+<span class="sourceLineNo">505</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.505"></a>
+<span class="sourceLineNo">506</span>      throws IOException {<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>  @Override<a name="line.509"></a>
-<span class="sourceLineNo">510</span>  public void preCloneSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.511"></a>
-<span class="sourceLineNo">512</span>      throws IOException {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>  }<a name="line.513"></a>
-<span class="sourceLineNo">514</span><a name="line.514"></a>
-<span class="sourceLineNo">515</span>  @Override<a name="line.515"></a>
-<span class="sourceLineNo">516</span>  public void postCloneSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      throws IOException {<a name="line.518"></a>
-<span class="sourceLineNo">519</span>  }<a name="line.519"></a>
-<span class="sourceLineNo">520</span><a name="line.520"></a>
-<span class="sourceLineNo">521</span>  @Override<a name="line.521"></a>
-<span class="sourceLineNo">522</span>  public void preRestoreSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.522"></a>
-<span class="sourceLineNo">523</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      throws IOException {<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>  @Override<a name="line.527"></a>
-<span class="sourceLineNo">528</span>  public void postRestoreSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.528"></a>
-<span class="sourceLineNo">529</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      throws IOException {<a name="line.530"></a>
-<span class="sourceLineNo">531</span>  }<a name="line.531"></a>
-<span class="sourceLineNo">532</span><a name="line.532"></a>
-<span class="sourceLineNo">533</span>  @Override<a name="line.533"></a>
-<span class="sourceLineNo">534</span>  public void preDeleteSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.534"></a>
-<span class="sourceLineNo">535</span>      final SnapshotDescription snapshot) throws IOException {<a name="line.535"></a>
-<span class="sourceLineNo">536</span>  }<a name="line.536"></a>
-<span class="sourceLineNo">537</span><a name="line.537"></a>
-<span class="sourceLineNo">538</span>  @Override<a name="line.538"></a>
-<span class="sourceLineNo">539</span>  public void postDeleteSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.539"></a>
-<span class="sourceLineNo">540</span>      final SnapshotDescription snapshot) throws IOException {<a name="line.540"></a>
+<span class="sourceLineNo">510</span>  public void preListSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.510"></a>
+<span class="sourceLineNo">511</span>      final SnapshotDescription snapshot) throws IOException {<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>  @Override<a name="line.514"></a>
+<span class="sourceLineNo">515</span>  public void postListSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.515"></a>
+<span class="sourceLineNo">516</span>      final SnapshotDescription snapshot) throws IOException {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>  }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>  @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>  public void preCloneSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.521"></a>
+<span class="sourceLineNo">522</span>      throws IOException {<a name="line.522"></a>
+<span class="sourceLineNo">523</span>  }<a name="line.523"></a>
+<span class="sourceLineNo">524</span><a name="line.524"></a>
+<span class="sourceLineNo">525</span>  @Override<a name="line.525"></a>
+<span class="sourceLineNo">526</span>  public void postCloneSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.526"></a>
+<span class="sourceLineNo">527</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.527"></a>
+<span class="sourceLineNo">528</span>      throws IOException {<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>  @Override<a name="line.531"></a>
+<span class="sourceLineNo">532</span>  public void preRestoreSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.532"></a>
+<span class="sourceLineNo">533</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.533"></a>
+<span class="sourceLineNo">534</span>      throws IOException {<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 postRestoreSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.538"></a>
+<span class="sourceLineNo">539</span>      final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)<a name="line.539"></a>
+<span class="sourceLineNo">540</span>      throws IOException {<a name="line.540"></a>
 <span class="sourceLineNo">541</span>  }<a name="line.541"></a>
 <span class="sourceLineNo">542</span><a name="line.542"></a>
 <span class="sourceLineNo">543</span>  @Override<a name="line.543"></a>
-<span class="sourceLineNo">544</span>  public void preGetTableDescriptors(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      List&lt;TableName&gt; tableNamesList, List&lt;HTableDescriptor&gt; descriptors,<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      String regex) throws IOException {<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>  @Override<a name="line.549"></a>
-<span class="sourceLineNo">550</span>  public void postGetTableDescriptors(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      List&lt;TableName&gt; tableNamesList, List&lt;HTableDescriptor&gt; descriptors,<a name="line.551"></a>
-<span class="sourceLineNo">552</span>      String regex) throws IOException {<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 preGetTableNames(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.556"></a>
-<span class="sourceLineNo">557</span>      List&lt;HTableDescriptor&gt; descriptors, String regex) throws IOException {<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 postGetTableNames(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.561"></a>
-<span class="sourceLineNo">562</span>      List&lt;HTableDescriptor&gt; descriptors, String regex) throws IOException {<a name="line.562"></a>
+<span class="sourceLineNo">544</span>  public void preDeleteSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.544"></a>
+<span class="sourceLineNo">545</span>      final SnapshotDescription snapshot) throws IOException {<a name="line.545"></a>
+<span class="sourceLineNo">546</span>  }<a name="line.546"></a>
+<span class="sourceLineNo">547</span><a name="line.547"></a>
+<span class="sourceLineNo">548</span>  @Override<a name="line.548"></a>
+<span class="sourceLineNo">549</span>  public void postDeleteSnapshot(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.549"></a>
+<span class="sourceLineNo">550</span>      final SnapshotDescription snapshot) throws IOException {<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>  @Override<a name="line.553"></a>
+<span class="sourceLineNo">554</span>  public void preGetTableDescriptors(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      List&lt;TableName&gt; tableNamesList, List&lt;HTableDescriptor&gt; descriptors,<a name="line.555"></a>
+<span class="sourceLineNo">556</span>      String regex) throws IOException {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>  }<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span>  @Override<a name="line.559"></a>
+<span class="sourceLineNo">560</span>  public void postGetTableDescriptors(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.560"></a>
+<span class="sourceLineNo">561</span>      List&lt;TableName&gt; tableNamesList, List&lt;HTableDescriptor&gt; descriptors,<a name="line.561"></a>
+<span class="sourceLineNo">562</span>      String regex) throws IOException {<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 preTableFlush(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.566"></a>
-<span class="sourceLineNo">567</span>      TableName tableName) throws IOException {

<TRUNCATED>

[13/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html
index 748314e..6dcf0c1 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html
@@ -30,157 +30,173 @@
 <span class="sourceLineNo">022</span><a name="line.22"></a>
 <span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.23"></a>
 <span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.25"></a>
-<span class="sourceLineNo">026</span><a name="line.26"></a>
-<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
-<span class="sourceLineNo">028</span> * The ProcedureStore is used by the executor to persist the state of each procedure execution.<a name="line.28"></a>
-<span class="sourceLineNo">029</span> * This allows to resume the execution of pending/in-progress procedures in case<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * of machine failure or service shutdown.<a name="line.30"></a>
-<span class="sourceLineNo">031</span> */<a name="line.31"></a>
-<span class="sourceLineNo">032</span>@InterfaceAudience.Private<a name="line.32"></a>
-<span class="sourceLineNo">033</span>@InterfaceStability.Evolving<a name="line.33"></a>
-<span class="sourceLineNo">034</span>public interface ProcedureStore {<a name="line.34"></a>
-<span class="sourceLineNo">035</span>  /**<a name="line.35"></a>
-<span class="sourceLineNo">036</span>   * Store listener interface.<a name="line.36"></a>
-<span class="sourceLineNo">037</span>   * The main process should register a listener and respond to the store events.<a name="line.37"></a>
-<span class="sourceLineNo">038</span>   */<a name="line.38"></a>
-<span class="sourceLineNo">039</span>  public interface ProcedureStoreListener {<a name="line.39"></a>
-<span class="sourceLineNo">040</span>    /**<a name="line.40"></a>
-<span class="sourceLineNo">041</span>     * triggered when the store sync is completed.<a name="line.41"></a>
-<span class="sourceLineNo">042</span>     */<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    void postSync();<a name="line.43"></a>
-<span class="sourceLineNo">044</span><a name="line.44"></a>
-<span class="sourceLineNo">045</span>    /**<a name="line.45"></a>
-<span class="sourceLineNo">046</span>     * triggered when the store is not able to write out data.<a name="line.46"></a>
-<span class="sourceLineNo">047</span>     * the main process should abort.<a name="line.47"></a>
-<span class="sourceLineNo">048</span>     */<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    void abortProcess();<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  }<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>  /**<a name="line.52"></a>
-<span class="sourceLineNo">053</span>   * An Iterator over a collection of Procedure<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   */<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  public interface ProcedureIterator {<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    /**<a name="line.56"></a>
-<span class="sourceLineNo">057</span>     * Reset the Iterator by seeking to the beginning of the list.<a name="line.57"></a>
-<span class="sourceLineNo">058</span>     */<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    void reset();<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>    /**<a name="line.61"></a>
-<span class="sourceLineNo">062</span>     * Returns true if the iterator has more elements.<a name="line.62"></a>
-<span class="sourceLineNo">063</span>     * (In other words, returns true if next() would return a Procedure<a name="line.63"></a>
-<span class="sourceLineNo">064</span>     * rather than throwing an exception.)<a name="line.64"></a>
-<span class="sourceLineNo">065</span>     * @return true if the iterator has more procedures<a name="line.65"></a>
-<span class="sourceLineNo">066</span>     */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    boolean hasNext();<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>    /**<a name="line.69"></a>
-<span class="sourceLineNo">070</span>     * Returns the next procedure in the iteration.<a name="line.70"></a>
-<span class="sourceLineNo">071</span>     * @throws IOException if there was an error fetching/deserializing the procedure<a name="line.71"></a>
-<span class="sourceLineNo">072</span>     * @return the next procedure in the iteration.<a name="line.72"></a>
-<span class="sourceLineNo">073</span>     */<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    Procedure next() throws IOException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  /**<a name="line.77"></a>
-<span class="sourceLineNo">078</span>   * Interface passed to the ProcedureStore.load() method to handle the store-load events.<a name="line.78"></a>
-<span class="sourceLineNo">079</span>   */<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  public interface ProcedureLoader {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    /**<a name="line.81"></a>
-<span class="sourceLineNo">082</span>     * Called by ProcedureStore.load() to notify about the maximum proc-id in the store.<a name="line.82"></a>
-<span class="sourceLineNo">083</span>     * @param maxProcId the highest proc-id in the store<a name="line.83"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>/**<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * The ProcedureStore is used by the executor to persist the state of each procedure execution.<a name="line.29"></a>
+<span class="sourceLineNo">030</span> * This allows to resume the execution of pending/in-progress procedures in case<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * of machine failure or service shutdown.<a name="line.31"></a>
+<span class="sourceLineNo">032</span> */<a name="line.32"></a>
+<span class="sourceLineNo">033</span>@InterfaceAudience.Private<a name="line.33"></a>
+<span class="sourceLineNo">034</span>@InterfaceStability.Evolving<a name="line.34"></a>
+<span class="sourceLineNo">035</span>public interface ProcedureStore {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>  /**<a name="line.36"></a>
+<span class="sourceLineNo">037</span>   * Store listener interface.<a name="line.37"></a>
+<span class="sourceLineNo">038</span>   * The main process should register a listener and respond to the store events.<a name="line.38"></a>
+<span class="sourceLineNo">039</span>   */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>  public interface ProcedureStoreListener {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>    /**<a name="line.41"></a>
+<span class="sourceLineNo">042</span>     * triggered when the store sync is completed.<a name="line.42"></a>
+<span class="sourceLineNo">043</span>     */<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    void postSync();<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>    /**<a name="line.46"></a>
+<span class="sourceLineNo">047</span>     * triggered when the store is not able to write out data.<a name="line.47"></a>
+<span class="sourceLineNo">048</span>     * the main process should abort.<a name="line.48"></a>
+<span class="sourceLineNo">049</span>     */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    void abortProcess();<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>  /**<a name="line.53"></a>
+<span class="sourceLineNo">054</span>   * An Iterator over a collection of Procedure<a name="line.54"></a>
+<span class="sourceLineNo">055</span>   */<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  public interface ProcedureIterator {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    /**<a name="line.57"></a>
+<span class="sourceLineNo">058</span>     * Reset the Iterator by seeking to the beginning of the list.<a name="line.58"></a>
+<span class="sourceLineNo">059</span>     */<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    void reset();<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>     * Returns true if the iterator has more elements.<a name="line.63"></a>
+<span class="sourceLineNo">064</span>     * (In other words, returns true if next() would return a Procedure<a name="line.64"></a>
+<span class="sourceLineNo">065</span>     * rather than throwing an exception.)<a name="line.65"></a>
+<span class="sourceLineNo">066</span>     * @return true if the iterator has more procedures<a name="line.66"></a>
+<span class="sourceLineNo">067</span>     */<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    boolean hasNext();<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>    /**<a name="line.70"></a>
+<span class="sourceLineNo">071</span>     * @return true if the iterator next element is a completed procedure.<a name="line.71"></a>
+<span class="sourceLineNo">072</span>     */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    boolean isNextCompleted();<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>    /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>     * Skip the next procedure<a name="line.76"></a>
+<span class="sourceLineNo">077</span>     */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    void skipNext();<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>    /**<a name="line.80"></a>
+<span class="sourceLineNo">081</span>     * Returns the next procedure in the iteration.<a name="line.81"></a>
+<span class="sourceLineNo">082</span>     * @throws IOException if there was an error fetching/deserializing the procedure<a name="line.82"></a>
+<span class="sourceLineNo">083</span>     * @return the next procedure in the iteration.<a name="line.83"></a>
 <span class="sourceLineNo">084</span>     */<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    void setMaxProcId(long maxProcId);<a name="line.85"></a>
+<span class="sourceLineNo">085</span>    Procedure nextAsProcedure() throws IOException;<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>     * Called by the ProcedureStore.load() every time a set of procedures are ready to be executed.<a name="line.88"></a>
-<span class="sourceLineNo">089</span>     * The ProcedureIterator passed to the method, has the procedure sorted in replay-order.<a name="line.89"></a>
-<span class="sourceLineNo">090</span>     * @param procIter iterator over the procedures ready to be added to the executor.<a name="line.90"></a>
-<span class="sourceLineNo">091</span>     */<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    void load(ProcedureIterator procIter) throws IOException;<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>     * Called by the ProcedureStore.load() in case we have procedures not-ready to be added to<a name="line.95"></a>
-<span class="sourceLineNo">096</span>     * the executor, which probably means they are corrupted since some information/link is missing.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>     * @param procIter iterator over the procedures not ready to be added to the executor, corrupted<a name="line.97"></a>
-<span class="sourceLineNo">098</span>     */<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    void handleCorrupted(ProcedureIterator procIter) throws IOException;<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>  /**<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * Add the listener to the notification list.<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * @param listener The AssignmentListener to register<a name="line.104"></a>
-<span class="sourceLineNo">105</span>   */<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  void registerListener(ProcedureStoreListener listener);<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>  /**<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * Remove the listener from the notification list.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   * @param listener The AssignmentListener to unregister<a name="line.110"></a>
-<span class="sourceLineNo">111</span>   * @return true if the listner was in the list and it was removed, otherwise false.<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   */<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  boolean unregisterListener(ProcedureStoreListener listener);<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>   * Start/Open the procedure store<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   * @param numThreads<a name="line.117"></a>
-<span class="sourceLineNo">118</span>   */<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  void start(int numThreads) throws IOException;<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>   * Stop/Close the procedure store<a name="line.122"></a>
-<span class="sourceLineNo">123</span>   * @param abort true if the stop is an abort<a name="line.123"></a>
-<span class="sourceLineNo">124</span>   */<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  void stop(boolean abort);<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>   * @return true if the store is running, otherwise false.<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   */<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  boolean isRunning();<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span>  /**<a name="line.132"></a>
-<span class="sourceLineNo">133</span>   * @return the number of threads/slots passed to start()<a name="line.133"></a>
+<span class="sourceLineNo">088</span>     * @return the next procedure in the iteration as ProcedureInfo.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>     */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    ProcedureInfo nextAsProcedureInfo();<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  }<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>  /**<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   * Interface passed to the ProcedureStore.load() method to handle the store-load events.<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   */<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public interface ProcedureLoader {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    /**<a name="line.97"></a>
+<span class="sourceLineNo">098</span>     * Called by ProcedureStore.load() to notify about the maximum proc-id in the store.<a name="line.98"></a>
+<span class="sourceLineNo">099</span>     * @param maxProcId the highest proc-id in the store<a name="line.99"></a>
+<span class="sourceLineNo">100</span>     */<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    void setMaxProcId(long maxProcId);<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>     * Called by the ProcedureStore.load() every time a set of procedures are ready to be executed.<a name="line.104"></a>
+<span class="sourceLineNo">105</span>     * The ProcedureIterator passed to the method, has the procedure sorted in replay-order.<a name="line.105"></a>
+<span class="sourceLineNo">106</span>     * @param procIter iterator over the procedures ready to be added to the executor.<a name="line.106"></a>
+<span class="sourceLineNo">107</span>     */<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    void load(ProcedureIterator procIter) throws IOException;<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>     * Called by the ProcedureStore.load() in case we have procedures not-ready to be added to<a name="line.111"></a>
+<span class="sourceLineNo">112</span>     * the executor, which probably means they are corrupted since some information/link is missing.<a name="line.112"></a>
+<span class="sourceLineNo">113</span>     * @param procIter iterator over the procedures not ready to be added to the executor, corrupted<a name="line.113"></a>
+<span class="sourceLineNo">114</span>     */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    void handleCorrupted(ProcedureIterator procIter) throws IOException;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span>  /**<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   * Add the listener to the notification list.<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   * @param listener The AssignmentListener to register<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   */<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  void registerListener(ProcedureStoreListener listener);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>  /**<a name="line.124"></a>
+<span class="sourceLineNo">125</span>   * Remove the listener from the notification list.<a name="line.125"></a>
+<span class="sourceLineNo">126</span>   * @param listener The AssignmentListener to unregister<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   * @return true if the listner was in the list and it was removed, otherwise false.<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  boolean unregisterListener(ProcedureStoreListener listener);<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>  /**<a name="line.131"></a>
+<span class="sourceLineNo">132</span>   * Start/Open the procedure store<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   * @param numThreads<a name="line.133"></a>
 <span class="sourceLineNo">134</span>   */<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  int getNumThreads();<a name="line.135"></a>
+<span class="sourceLineNo">135</span>  void start(int numThreads) throws IOException;<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>   * Acquire the lease for the procedure store.<a name="line.138"></a>
-<span class="sourceLineNo">139</span>   */<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  void recoverLease() throws IOException;<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span>  /**<a name="line.142"></a>
-<span class="sourceLineNo">143</span>   * Load the Procedures in the store.<a name="line.143"></a>
-<span class="sourceLineNo">144</span>   * @param loader the ProcedureLoader that will handle the store-load events<a name="line.144"></a>
+<span class="sourceLineNo">138</span>   * Stop/Close the procedure store<a name="line.138"></a>
+<span class="sourceLineNo">139</span>   * @param abort true if the stop is an abort<a name="line.139"></a>
+<span class="sourceLineNo">140</span>   */<a name="line.140"></a>
+<span class="sourceLineNo">141</span>  void stop(boolean abort);<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 true if the store is running, otherwise false.<a name="line.144"></a>
 <span class="sourceLineNo">145</span>   */<a name="line.145"></a>
-<span class="sourceLineNo">146</span>  void load(ProcedureLoader loader) throws IOException;<a name="line.146"></a>
+<span class="sourceLineNo">146</span>  boolean isRunning();<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>   * When a procedure is submitted to the executor insert(proc, null) will be called.<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   * 'proc' has a 'RUNNABLE' state and the initial information required to start up.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   *<a name="line.151"></a>
-<span class="sourceLineNo">152</span>   * When a procedure is executed and it returns children insert(proc, subprocs) will be called.<a name="line.152"></a>
-<span class="sourceLineNo">153</span>   * 'proc' has a 'WAITING' state and an update state.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>   * 'subprocs' are the children in 'RUNNABLE' state with the initial information.<a name="line.154"></a>
-<span class="sourceLineNo">155</span>   *<a name="line.155"></a>
-<span class="sourceLineNo">156</span>   * @param proc the procedure to serialize and write to the store.<a name="line.156"></a>
-<span class="sourceLineNo">157</span>   * @param subprocs the newly created child of the proc.<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   */<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  void insert(Procedure proc, Procedure[] subprocs);<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  /**<a name="line.161"></a>
-<span class="sourceLineNo">162</span>   * The specified procedure was executed,<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   * and the new state should be written to the store.<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   * @param proc the procedure to serialize and write to the store.<a name="line.164"></a>
-<span class="sourceLineNo">165</span>   */<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  void update(Procedure proc);<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>   * The specified procId was removed from the executor,<a name="line.169"></a>
-<span class="sourceLineNo">170</span>   * due to completion, abort or failure.<a name="line.170"></a>
-<span class="sourceLineNo">171</span>   * The store implementor should remove all the information about the specified procId.<a name="line.171"></a>
-<span class="sourceLineNo">172</span>   * @param procId the ID of the procedure to remove.<a name="line.172"></a>
-<span class="sourceLineNo">173</span>   */<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  void delete(long procId);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>}<a name="line.175"></a>
+<span class="sourceLineNo">149</span>   * @return the number of threads/slots passed to start()<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>  int getNumThreads();<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>   * Acquire the lease for the procedure store.<a name="line.154"></a>
+<span class="sourceLineNo">155</span>   */<a name="line.155"></a>
+<span class="sourceLineNo">156</span>  void recoverLease() throws IOException;<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span>  /**<a name="line.158"></a>
+<span class="sourceLineNo">159</span>   * Load the Procedures in the store.<a name="line.159"></a>
+<span class="sourceLineNo">160</span>   * @param loader the ProcedureLoader that will handle the store-load events<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   */<a name="line.161"></a>
+<span class="sourceLineNo">162</span>  void load(ProcedureLoader loader) throws IOException;<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>  /**<a name="line.164"></a>
+<span class="sourceLineNo">165</span>   * When a procedure is submitted to the executor insert(proc, null) will be called.<a name="line.165"></a>
+<span class="sourceLineNo">166</span>   * 'proc' has a 'RUNNABLE' state and the initial information required to start up.<a name="line.166"></a>
+<span class="sourceLineNo">167</span>   *<a name="line.167"></a>
+<span class="sourceLineNo">168</span>   * When a procedure is executed and it returns children insert(proc, subprocs) will be called.<a name="line.168"></a>
+<span class="sourceLineNo">169</span>   * 'proc' has a 'WAITING' state and an update state.<a name="line.169"></a>
+<span class="sourceLineNo">170</span>   * 'subprocs' are the children in 'RUNNABLE' state with the initial information.<a name="line.170"></a>
+<span class="sourceLineNo">171</span>   *<a name="line.171"></a>
+<span class="sourceLineNo">172</span>   * @param proc the procedure to serialize and write to the store.<a name="line.172"></a>
+<span class="sourceLineNo">173</span>   * @param subprocs the newly created child of the proc.<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  void insert(Procedure proc, Procedure[] subprocs);<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>   * The specified procedure was executed,<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   * and the new state should be written to the store.<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * @param proc the procedure to serialize and write to the store.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  void update(Procedure proc);<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>   * The specified procId was removed from the executor,<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   * due to completion, abort or failure.<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   * The store implementor should remove all the information about the specified procId.<a name="line.187"></a>
+<span class="sourceLineNo">188</span>   * @param procId the ID of the procedure to remove.<a name="line.188"></a>
+<span class="sourceLineNo">189</span>   */<a name="line.189"></a>
+<span class="sourceLineNo">190</span>  void delete(long procId);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>}<a name="line.191"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html
index f6c7b80..1c21359 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.BitSetNode.html
@@ -422,180 +422,182 @@
 <span class="sourceLineNo">414</span>    node.updateState(procId, isDeleted);<a name="line.414"></a>
 <span class="sourceLineNo">415</span>  }<a name="line.415"></a>
 <span class="sourceLineNo">416</span><a name="line.416"></a>
-<span class="sourceLineNo">417</span>  public void clear() {<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    this.map.clear();<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    resetUpdates();<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>  public DeleteState isDeleted(long procId) {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    Map.Entry&lt;Long, BitSetNode&gt; entry = map.floorEntry(procId);<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    if (entry != null &amp;&amp; entry.getValue().contains(procId)) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      BitSetNode node = entry.getValue();<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      DeleteState state = node.isDeleted(procId);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      return partial &amp;&amp; !node.isUpdated(procId) ? DeleteState.MAYBE : state;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    }<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    return partial ? DeleteState.MAYBE : DeleteState.YES;<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  }<a name="line.430"></a>
-<span class="sourceLineNo">431</span><a name="line.431"></a>
-<span class="sourceLineNo">432</span>  public long getMinProcId() {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    // TODO: Cache?<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    Map.Entry&lt;Long, BitSetNode&gt; entry = map.firstEntry();<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    return entry == null ? 0 : entry.getValue().getMinProcId();<a name="line.435"></a>
-<span class="sourceLineNo">436</span>  }<a name="line.436"></a>
-<span class="sourceLineNo">437</span><a name="line.437"></a>
-<span class="sourceLineNo">438</span>  public void setKeepDeletes(boolean keepDeletes) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    this.keepDeletes = keepDeletes;<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    if (!keepDeletes) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      Iterator&lt;Map.Entry&lt;Long, BitSetNode&gt;&gt; it = map.entrySet().iterator();<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      while (it.hasNext()) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        Map.Entry&lt;Long, BitSetNode&gt; entry = it.next();<a name="line.443"></a>
-<span class="sourceLineNo">444</span>        if (entry.getValue().isEmpty()) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>          it.remove();<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>  }<a name="line.449"></a>
-<span class="sourceLineNo">450</span><a name="line.450"></a>
-<span class="sourceLineNo">451</span>  public void setPartialFlag(boolean isPartial) {<a name="line.451"></a>
-<span class="sourceLineNo">452</span>    if (this.partial &amp;&amp; !isPartial) {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>        entry.getValue().unsetPartialFlag();<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>    this.partial = isPartial;<a name="line.457"></a>
-<span class="sourceLineNo">458</span>  }<a name="line.458"></a>
-<span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>  public boolean isEmpty() {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      if (entry.getValue().isEmpty() == false) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>        return false;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      }<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    }<a name="line.465"></a>
-<span class="sourceLineNo">466</span>    return true;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>  }<a name="line.467"></a>
-<span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>  public boolean isUpdated() {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>      if (entry.getValue().isUpdated() == false) {<a name="line.471"></a>
-<span class="sourceLineNo">472</span>        return false;<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      }<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    }<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    return true;<a name="line.475"></a>
-<span class="sourceLineNo">476</span>  }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>  public boolean isTracking(long minId, long maxId) {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    // TODO: we can make it more precise, instead of looking just at the block<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    return map.floorEntry(minId) != null || map.floorEntry(maxId) != null;<a name="line.480"></a>
-<span class="sourceLineNo">481</span>  }<a name="line.481"></a>
-<span class="sourceLineNo">482</span><a name="line.482"></a>
-<span class="sourceLineNo">483</span>  public void resetUpdates() {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>      entry.getValue().resetUpdates();<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    }<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    minUpdatedProcId = Long.MAX_VALUE;<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    maxUpdatedProcId = Long.MIN_VALUE;<a name="line.488"></a>
-<span class="sourceLineNo">489</span>  }<a name="line.489"></a>
-<span class="sourceLineNo">490</span><a name="line.490"></a>
-<span class="sourceLineNo">491</span>  public void undeleteAll() {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      entry.getValue().undeleteAll();<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    }<a name="line.494"></a>
-<span class="sourceLineNo">495</span>  }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>  private BitSetNode getOrCreateNode(final long procId) {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    // can procId fit in the left node?<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    BitSetNode leftNode = null;<a name="line.499"></a>
-<span class="sourceLineNo">500</span>    boolean leftCanGrow = false;<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    Map.Entry&lt;Long, BitSetNode&gt; leftEntry = map.floorEntry(procId);<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    if (leftEntry != null) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      leftNode = leftEntry.getValue();<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      if (leftNode.contains(procId)) {<a name="line.504"></a>
-<span class="sourceLineNo">505</span>        return leftNode;<a name="line.505"></a>
-<span class="sourceLineNo">506</span>      }<a name="line.506"></a>
-<span class="sourceLineNo">507</span>      leftCanGrow = leftNode.canGrow(procId);<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>    BitSetNode rightNode = null;<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    boolean rightCanGrow = false;<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    Map.Entry&lt;Long, BitSetNode&gt; rightEntry = map.ceilingEntry(procId);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    if (rightEntry != null) {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      rightNode = rightEntry.getValue();<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      rightCanGrow = rightNode.canGrow(procId);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      if (leftNode != null) {<a name="line.516"></a>
-<span class="sourceLineNo">517</span>        if (leftNode.canMerge(rightNode)) {<a name="line.517"></a>
-<span class="sourceLineNo">518</span>          // merge left and right node<a name="line.518"></a>
-<span class="sourceLineNo">519</span>          return mergeNodes(leftNode, rightNode);<a name="line.519"></a>
-<span class="sourceLineNo">520</span>        }<a name="line.520"></a>
-<span class="sourceLineNo">521</span><a name="line.521"></a>
-<span class="sourceLineNo">522</span>        if (leftCanGrow &amp;&amp; rightCanGrow) {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>          if ((procId - leftNode.getEnd()) &lt;= (rightNode.getStart() - procId)) {<a name="line.523"></a>
-<span class="sourceLineNo">524</span>            // grow the left node<a name="line.524"></a>
-<span class="sourceLineNo">525</span>            return growNode(leftNode, procId);<a name="line.525"></a>
-<span class="sourceLineNo">526</span>          }<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          // grow the right node<a name="line.527"></a>
-<span class="sourceLineNo">528</span>          return growNode(rightNode, procId);<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><a name="line.532"></a>
-<span class="sourceLineNo">533</span>    // grow the left node<a name="line.533"></a>
-<span class="sourceLineNo">534</span>    if (leftCanGrow) {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>      return growNode(leftNode, procId);<a name="line.535"></a>
-<span class="sourceLineNo">536</span>    }<a name="line.536"></a>
-<span class="sourceLineNo">537</span><a name="line.537"></a>
-<span class="sourceLineNo">538</span>    // grow the right node<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    if (rightCanGrow) {<a name="line.539"></a>
-<span class="sourceLineNo">540</span>      return growNode(rightNode, procId);<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    }<a name="line.541"></a>
-<span class="sourceLineNo">542</span><a name="line.542"></a>
-<span class="sourceLineNo">543</span>    // add new node<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    BitSetNode node = new BitSetNode(procId, partial);<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    map.put(node.getStart(), node);<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    return node;<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>  private BitSetNode growNode(BitSetNode node, long procId) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    map.remove(node.getStart());<a name="line.550"></a>
-<span class="sourceLineNo">551</span>    node.grow(procId);<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    map.put(node.getStart(), node);<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    return node;<a name="line.553"></a>
-<span class="sourceLineNo">554</span>  }<a name="line.554"></a>
-<span class="sourceLineNo">555</span><a name="line.555"></a>
-<span class="sourceLineNo">556</span>  private BitSetNode mergeNodes(BitSetNode leftNode, BitSetNode rightNode) {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>    assert leftNode.getStart() &lt; rightNode.getStart();<a name="line.557"></a>
-<span class="sourceLineNo">558</span>    leftNode.merge(rightNode);<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    map.remove(rightNode.getStart());<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    return leftNode;<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>  public void dump() {<a name="line.563"></a>
-<span class="sourceLineNo">564</span>    System.out.println("map " + map.size());<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    System.out.println("isUpdated " + isUpdated());<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    System.out.println("isEmpty " + isEmpty());<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.567"></a>
-<span class="sourceLineNo">568</span>      entry.getValue().dump();<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    }<a name="line.569"></a>
-<span class="sourceLineNo">570</span>  }<a name="line.570"></a>
-<span class="sourceLineNo">571</span><a name="line.571"></a>
-<span class="sourceLineNo">572</span>  public void writeTo(final OutputStream stream) throws IOException {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    ProcedureProtos.ProcedureStoreTracker.Builder builder =<a name="line.573"></a>
-<span class="sourceLineNo">574</span>        ProcedureProtos.ProcedureStoreTracker.newBuilder();<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      builder.addNode(entry.getValue().convert());<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    }<a name="line.577"></a>
-<span class="sourceLineNo">578</span>    builder.build().writeDelimitedTo(stream);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>  }<a name="line.579"></a>
-<span class="sourceLineNo">580</span><a name="line.580"></a>
-<span class="sourceLineNo">581</span>  public void readFrom(final InputStream stream) throws IOException {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    ProcedureProtos.ProcedureStoreTracker data =<a name="line.582"></a>
-<span class="sourceLineNo">583</span>        ProcedureProtos.ProcedureStoreTracker.parseDelimitedFrom(stream);<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    map.clear();<a name="line.584"></a>
-<span class="sourceLineNo">585</span>    for (ProcedureProtos.ProcedureStoreTracker.TrackerNode protoNode: data.getNodeList()) {<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      BitSetNode node = BitSetNode.convert(protoNode);<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      map.put(node.getStart(), node);<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    }<a name="line.588"></a>
-<span class="sourceLineNo">589</span>  }<a name="line.589"></a>
-<span class="sourceLineNo">590</span>}<a name="line.590"></a>
+<span class="sourceLineNo">417</span>  public void reset() {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    this.keepDeletes = false;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    this.partial = false;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    this.map.clear();<a name="line.420"></a>
+<span class="sourceLineNo">421</span>    resetUpdates();<a name="line.421"></a>
+<span class="sourceLineNo">422</span>  }<a name="line.422"></a>
+<span class="sourceLineNo">423</span><a name="line.423"></a>
+<span class="sourceLineNo">424</span>  public DeleteState isDeleted(long procId) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    Map.Entry&lt;Long, BitSetNode&gt; entry = map.floorEntry(procId);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    if (entry != null &amp;&amp; entry.getValue().contains(procId)) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      BitSetNode node = entry.getValue();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      DeleteState state = node.isDeleted(procId);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      return partial &amp;&amp; !node.isUpdated(procId) ? DeleteState.MAYBE : state;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    }<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    return partial ? DeleteState.MAYBE : DeleteState.YES;<a name="line.431"></a>
+<span class="sourceLineNo">432</span>  }<a name="line.432"></a>
+<span class="sourceLineNo">433</span><a name="line.433"></a>
+<span class="sourceLineNo">434</span>  public long getMinProcId() {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>    // TODO: Cache?<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    Map.Entry&lt;Long, BitSetNode&gt; entry = map.firstEntry();<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    return entry == null ? 0 : entry.getValue().getMinProcId();<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>  public void setKeepDeletes(boolean keepDeletes) {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    this.keepDeletes = keepDeletes;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    if (!keepDeletes) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      Iterator&lt;Map.Entry&lt;Long, BitSetNode&gt;&gt; it = map.entrySet().iterator();<a name="line.443"></a>
+<span class="sourceLineNo">444</span>      while (it.hasNext()) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>        Map.Entry&lt;Long, BitSetNode&gt; entry = it.next();<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        if (entry.getValue().isEmpty()) {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>          it.remove();<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>  }<a name="line.451"></a>
+<span class="sourceLineNo">452</span><a name="line.452"></a>
+<span class="sourceLineNo">453</span>  public void setPartialFlag(boolean isPartial) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    if (this.partial &amp;&amp; !isPartial) {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>      for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        entry.getValue().unsetPartialFlag();<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      }<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    }<a name="line.458"></a>
+<span class="sourceLineNo">459</span>    this.partial = isPartial;<a name="line.459"></a>
+<span class="sourceLineNo">460</span>  }<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>  public boolean isEmpty() {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>      if (entry.getValue().isEmpty() == false) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        return false;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>      }<a name="line.466"></a>
+<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
+<span class="sourceLineNo">468</span>    return true;<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>  public boolean isUpdated() {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>      if (entry.getValue().isUpdated() == false) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        return false;<a name="line.474"></a>
+<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    }<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    return true;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>  }<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>  public boolean isTracking(long minId, long maxId) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    // TODO: we can make it more precise, instead of looking just at the block<a name="line.481"></a>
+<span class="sourceLineNo">482</span>    return map.floorEntry(minId) != null || map.floorEntry(maxId) != null;<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>  public void resetUpdates() {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.486"></a>
+<span class="sourceLineNo">487</span>      entry.getValue().resetUpdates();<a name="line.487"></a>
+<span class="sourceLineNo">488</span>    }<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    minUpdatedProcId = Long.MAX_VALUE;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    maxUpdatedProcId = Long.MIN_VALUE;<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>  public void undeleteAll() {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>      entry.getValue().undeleteAll();<a name="line.495"></a>
+<span class="sourceLineNo">496</span>    }<a name="line.496"></a>
+<span class="sourceLineNo">497</span>  }<a name="line.497"></a>
+<span class="sourceLineNo">498</span><a name="line.498"></a>
+<span class="sourceLineNo">499</span>  private BitSetNode getOrCreateNode(final long procId) {<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    // can procId fit in the left node?<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    BitSetNode leftNode = null;<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    boolean leftCanGrow = false;<a name="line.502"></a>
+<span class="sourceLineNo">503</span>    Map.Entry&lt;Long, BitSetNode&gt; leftEntry = map.floorEntry(procId);<a name="line.503"></a>
+<span class="sourceLineNo">504</span>    if (leftEntry != null) {<a name="line.504"></a>
+<span class="sourceLineNo">505</span>      leftNode = leftEntry.getValue();<a name="line.505"></a>
+<span class="sourceLineNo">506</span>      if (leftNode.contains(procId)) {<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        return leftNode;<a name="line.507"></a>
+<span class="sourceLineNo">508</span>      }<a name="line.508"></a>
+<span class="sourceLineNo">509</span>      leftCanGrow = leftNode.canGrow(procId);<a name="line.509"></a>
+<span class="sourceLineNo">510</span>    }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>    BitSetNode rightNode = null;<a name="line.512"></a>
+<span class="sourceLineNo">513</span>    boolean rightCanGrow = false;<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    Map.Entry&lt;Long, BitSetNode&gt; rightEntry = map.ceilingEntry(procId);<a name="line.514"></a>
+<span class="sourceLineNo">515</span>    if (rightEntry != null) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>      rightNode = rightEntry.getValue();<a name="line.516"></a>
+<span class="sourceLineNo">517</span>      rightCanGrow = rightNode.canGrow(procId);<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      if (leftNode != null) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        if (leftNode.canMerge(rightNode)) {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>          // merge left and right node<a name="line.520"></a>
+<span class="sourceLineNo">521</span>          return mergeNodes(leftNode, rightNode);<a name="line.521"></a>
+<span class="sourceLineNo">522</span>        }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span>        if (leftCanGrow &amp;&amp; rightCanGrow) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>          if ((procId - leftNode.getEnd()) &lt;= (rightNode.getStart() - procId)) {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>            // grow the left node<a name="line.526"></a>
+<span class="sourceLineNo">527</span>            return growNode(leftNode, procId);<a name="line.527"></a>
+<span class="sourceLineNo">528</span>          }<a name="line.528"></a>
+<span class="sourceLineNo">529</span>          // grow the right node<a name="line.529"></a>
+<span class="sourceLineNo">530</span>          return growNode(rightNode, procId);<a name="line.530"></a>
+<span class="sourceLineNo">531</span>        }<a name="line.531"></a>
+<span class="sourceLineNo">532</span>      }<a name="line.532"></a>
+<span class="sourceLineNo">533</span>    }<a name="line.533"></a>
+<span class="sourceLineNo">534</span><a name="line.534"></a>
+<span class="sourceLineNo">535</span>    // grow the left node<a name="line.535"></a>
+<span class="sourceLineNo">536</span>    if (leftCanGrow) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>      return growNode(leftNode, procId);<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>    // grow the right node<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    if (rightCanGrow) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>      return growNode(rightNode, procId);<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>    // add new node<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    BitSetNode node = new BitSetNode(procId, partial);<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    map.put(node.getStart(), node);<a name="line.547"></a>
+<span class="sourceLineNo">548</span>    return node;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>  private BitSetNode growNode(BitSetNode node, long procId) {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>    map.remove(node.getStart());<a name="line.552"></a>
+<span class="sourceLineNo">553</span>    node.grow(procId);<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    map.put(node.getStart(), node);<a name="line.554"></a>
+<span class="sourceLineNo">555</span>    return node;<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>  private BitSetNode mergeNodes(BitSetNode leftNode, BitSetNode rightNode) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>    assert leftNode.getStart() &lt; rightNode.getStart();<a name="line.559"></a>
+<span class="sourceLineNo">560</span>    leftNode.merge(rightNode);<a name="line.560"></a>
+<span class="sourceLineNo">561</span>    map.remove(rightNode.getStart());<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    return leftNode;<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>  public void dump() {<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    System.out.println("map " + map.size());<a name="line.566"></a>
+<span class="sourceLineNo">567</span>    System.out.println("isUpdated " + isUpdated());<a name="line.567"></a>
+<span class="sourceLineNo">568</span>    System.out.println("isEmpty " + isEmpty());<a name="line.568"></a>
+<span class="sourceLineNo">569</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>      entry.getValue().dump();<a name="line.570"></a>
+<span class="sourceLineNo">571</span>    }<a name="line.571"></a>
+<span class="sourceLineNo">572</span>  }<a name="line.572"></a>
+<span class="sourceLineNo">573</span><a name="line.573"></a>
+<span class="sourceLineNo">574</span>  public void writeTo(final OutputStream stream) throws IOException {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    ProcedureProtos.ProcedureStoreTracker.Builder builder =<a name="line.575"></a>
+<span class="sourceLineNo">576</span>        ProcedureProtos.ProcedureStoreTracker.newBuilder();<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    for (Map.Entry&lt;Long, BitSetNode&gt; entry : map.entrySet()) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>      builder.addNode(entry.getValue().convert());<a name="line.578"></a>
+<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
+<span class="sourceLineNo">580</span>    builder.build().writeDelimitedTo(stream);<a name="line.580"></a>
+<span class="sourceLineNo">581</span>  }<a name="line.581"></a>
+<span class="sourceLineNo">582</span><a name="line.582"></a>
+<span class="sourceLineNo">583</span>  public void readFrom(final InputStream stream) throws IOException {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>    reset();<a name="line.584"></a>
+<span class="sourceLineNo">585</span>    final ProcedureProtos.ProcedureStoreTracker data =<a name="line.585"></a>
+<span class="sourceLineNo">586</span>        ProcedureProtos.ProcedureStoreTracker.parseDelimitedFrom(stream);<a name="line.586"></a>
+<span class="sourceLineNo">587</span>    for (ProcedureProtos.ProcedureStoreTracker.TrackerNode protoNode: data.getNodeList()) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>      final BitSetNode node = BitSetNode.convert(protoNode);<a name="line.588"></a>
+<span class="sourceLineNo">589</span>      map.put(node.getStart(), node);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>    }<a name="line.590"></a>
+<span class="sourceLineNo">591</span>  }<a name="line.591"></a>
+<span class="sourceLineNo">592</span>}<a name="line.592"></a>
 
 
 


[30/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.html b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.html
index 594ca67..749e3d9 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.html
@@ -1895,7 +1895,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockListLast">
 <li class="blockList">
 <h4>cmp</h4>
-<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3722">cmp</a></pre>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3723">cmp</a></pre>
 </li>
 </ul>
 </li>
@@ -2157,7 +2157,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>restoreHdfsIntegrity</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.948">restoreHdfsIntegrity</a>()
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.949">restoreHdfsIntegrity</a>()
                           throws <a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">This method determines if there are table integrity errors in HDFS.  If
@@ -2176,7 +2176,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>offlineReferenceFileRepair</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.996">offlineReferenceFileRepair</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.997">offlineReferenceFileRepair</a>()
                                  throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Scan all the store file names to find any lingering reference files,
  which refer to some none-exiting files. If "fix" option is enabled,
@@ -2194,7 +2194,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>reportEmptyMetaCells</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1055">reportEmptyMetaCells</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1056">reportEmptyMetaCells</a>()</pre>
 <div class="block">TODO -- need to add tests for this.</div>
 </li>
 </ul>
@@ -2204,7 +2204,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>reportTablesInFlux</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1068">reportTablesInFlux</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1069">reportTablesInFlux</a>()</pre>
 <div class="block">TODO -- need to add tests for this.</div>
 </li>
 </ul>
@@ -2214,7 +2214,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getErrors</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1085">getErrors</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1086">getErrors</a>()</pre>
 </li>
 </ul>
 <a name="loadHdfsRegioninfo(org.apache.hadoop.hbase.util.HBaseFsck.HbckInfo)">
@@ -2223,7 +2223,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>loadHdfsRegioninfo</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1093">loadHdfsRegioninfo</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hbi)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1094">loadHdfsRegioninfo</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hbi)
                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Read the .regioninfo file from the file system.  If there is no
  .regioninfo, add it to the orphan hdfs region list.</div>
@@ -2237,7 +2237,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>loadHdfsRegionInfos</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1127">loadHdfsRegionInfos</a>()
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1128">loadHdfsRegionInfos</a>()
                                                               throws <a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Populate hbi's from regionInfos loaded from file system.</div>
@@ -2252,7 +2252,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getColumnFamilyList</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/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/7/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/util/HBaseFsck.html#line.1213">getColumnFamilyList</a>(<a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;columns,
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/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/7/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/util/HBaseFsck.html#line.1214">getColumnFamilyList</a>(<a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;columns,
                               <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hbi)
                                  throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">To get the column family list according to the column family dirs</div>
@@ -2268,7 +2268,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>fabricateTableInfo</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1231">fabricateTableInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/util/FSTableDescriptors.html" title="class in org.apache.hadoop.hbase.util">FSTableDescriptors</a>&nbsp;fstd,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1232">fabricateTableInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/util/FSTableDescriptors.html" title="class in org.apache.hadoop.hbase.util">FSTableDescriptors</a>&nbsp;fstd,
                          <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                          <a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;columns)
                             throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -2286,7 +2286,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>fixEmptyMetaCells</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1246">fixEmptyMetaCells</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1247">fixEmptyMetaCells</a>()
                        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">To fix the empty REGIONINFO_QUALIFIER rows from hbase:meta <br></div>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -2299,7 +2299,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>fixOrphanTables</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1266">fixOrphanTables</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1267">fixOrphanTables</a>()
                      throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">To fix orphan table by creating a .tableinfo file under tableDir <br>
  1. if TableInfo is cached, to recover the .tableinfo accordingly <br>
@@ -2317,7 +2317,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>createNewMeta</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1325">createNewMeta</a>()
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1326">createNewMeta</a>()
                        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">This borrows code from MasterFileSystem.bootstrap(). Explicitly creates it's own WAL, so be
  sure to close it as well as the region when you're finished.</div>
@@ -2332,7 +2332,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>generatePuts</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/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/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1350">generatePuts</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&gt;&nbsp;tablesInfo)
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/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/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1351">generatePuts</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&gt;&nbsp;tablesInfo)
                              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Generate set of puts to add to new meta.  This expects the tables to be
  clean with no overlaps or holes.  If there are any problems it returns null.</div>
@@ -2347,7 +2347,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>suggestFixes</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1390">suggestFixes</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&gt;&nbsp;tablesInfo)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1391">suggestFixes</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&gt;&nbsp;tablesInfo)
                    throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Suggest fixes for each table</div>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -2360,7 +2360,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>rebuildMeta</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1406">rebuildMeta</a>(boolean&nbsp;fix)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1407">rebuildMeta</a>(boolean&nbsp;fix)
                     throws <a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Rebuilds meta from information in hdfs/fs.  Depends on configuration settings passed into
@@ -2378,7 +2378,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>logParallelMerge</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1469">logParallelMerge</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1470">logParallelMerge</a>()</pre>
 <div class="block">Log an appropriate message about whether or not overlapping merges are computed in parallel.</div>
 </li>
 </ul>
@@ -2388,7 +2388,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>checkHdfsIntegrity</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1479">checkHdfsIntegrity</a>(boolean&nbsp;fixHoles,
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1480">checkHdfsIntegrity</a>(boolean&nbsp;fixHoles,
                                                           boolean&nbsp;fixOverlaps)
                                                              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -2401,7 +2401,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getSidelineDir</h4>
-<pre>private&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1499">getSidelineDir</a>()
+<pre>private&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1500">getSidelineDir</a>()
                                           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -2413,7 +2413,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>sidelineRegionDir</h4>
-<pre>org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1512">sidelineRegionDir</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1513">sidelineRegionDir</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                           <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi)
                                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Sideline a region dir (instead of deleting it)</div>
@@ -2427,7 +2427,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>sidelineRegionDir</h4>
-<pre>org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1524">sidelineRegionDir</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1525">sidelineRegionDir</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentDir,
                                           <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi)
                                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -2446,7 +2446,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>sidelineTable</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1597">sidelineTable</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1598">sidelineTable</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                  <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                  org.apache.hadoop.fs.Path&nbsp;hbaseDir,
                  org.apache.hadoop.fs.Path&nbsp;backupHbaseDir)
@@ -2462,7 +2462,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>sidelineOldMeta</h4>
-<pre>org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1616">sidelineOldMeta</a>()
+<pre>org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1617">sidelineOldMeta</a>()
                                     throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Returns:</span></dt><dd>Path to backup of original directory</dd>
 <dt><span class="strong">Throws:</span></dt>
@@ -2475,7 +2475,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>loadTableStates</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1639">loadTableStates</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1640">loadTableStates</a>()
                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Load the list of disabled tables in ZK into local set.</div>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -2489,7 +2489,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>isTableDisabled</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1648">isTableDisabled</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1649">isTableDisabled</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 <div class="block">Check if the specified region's table is disabled.</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>tableName</code> - table to check status of</dd></dl>
 </li>
@@ -2500,7 +2500,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>loadHdfsRegionDirs</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1658">loadHdfsRegionDirs</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1659">loadHdfsRegionDirs</a>()
                         throws <a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Scan HDFS for all regions, recording their information into
@@ -2516,7 +2516,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>recordMetaRegion</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1717">recordMetaRegion</a>()
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1718">recordMetaRegion</a>()
                           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Record the location of the hbase:meta region as found in ZooKeeper.</div>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -2529,7 +2529,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>createZooKeeperWatcher</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1754">createZooKeeperWatcher</a>()
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1755">createZooKeeperWatcher</a>()
                                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -2541,7 +2541,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaRegionServerName</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1770">getMetaRegionServerName</a>(int&nbsp;replicaId)
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1771">getMetaRegionServerName</a>(int&nbsp;replicaId)
                                     throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                            org.apache.zookeeper.KeeperException</pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -2555,7 +2555,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>processRegionServers</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1787">processRegionServers</a>(<a href="http://docs.oracle.com/javase/7/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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;regionServerList)
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1788">processRegionServers</a>(<a href="http://docs.oracle.com/javase/7/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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;regionServerList)
                     throws <a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Contacts each regionserver and fetches metadata about regions.</div>
@@ -2571,7 +2571,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndFixConsistency</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1815">checkAndFixConsistency</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1816">checkAndFixConsistency</a>()
                              throws <a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
@@ -2588,7 +2588,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>checkRegionConsistencyConcurrently</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1862">checkRegionConsistencyConcurrently</a>(<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.CheckRegionConsistencyWorkItem.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.CheckRegionConsistencyWorkItem</a>&gt;&nbsp;workItems)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1863">checkRegionConsistencyConcurrently</a>(<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.CheckRegionConsistencyWorkItem.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.CheckRegionConsistencyWorkItem</a>&gt;&nbsp;workItems)
                                          throws <a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
@@ -2605,7 +2605,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>addSkippedRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1916">addSkippedRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hbi)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1917">addSkippedRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hbi)</pre>
 </li>
 </ul>
 <a name="checkAndFixTableStates()">
@@ -2614,7 +2614,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndFixTableStates</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1930">checkAndFixTableStates</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1931">checkAndFixTableStates</a>()
                              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Check and fix table states, assumes full info available:
  - tableInfos
@@ -2629,7 +2629,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>preCheckPermission</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1970">preCheckPermission</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1971">preCheckPermission</a>()
                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                 <a href="../../../../../org/apache/hadoop/hbase/security/AccessDeniedException.html" title="class in org.apache.hadoop.hbase.security">AccessDeniedException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -2643,7 +2643,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteMetaRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1996">deleteMetaRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1997">deleteMetaRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi)
                        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Deletes region from meta table</div>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -2656,7 +2656,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteMetaRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2003">deleteMetaRegion</a>(byte[]&nbsp;metaKey)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2004">deleteMetaRegion</a>(byte[]&nbsp;metaKey)
                        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Deletes region from meta table</div>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -2669,7 +2669,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>resetSplitParent</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2012">resetSplitParent</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2013">resetSplitParent</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi)
                        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Reset the split parent region info in meta table</div>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -2682,7 +2682,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>offline</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2037">offline</a>(byte[]&nbsp;regionName)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2038">offline</a>(byte[]&nbsp;regionName)
               throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">This backwards-compatibility wrapper for permanently offlining a region
  that should not be alive.  If the region server does not support the
@@ -2700,7 +2700,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>undeployRegions</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2066">undeployRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2067">undeployRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi)
                       throws <a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -2714,7 +2714,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>undeployRegionsForHbi</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2087">undeployRegionsForHbi</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2088">undeployRegionsForHbi</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi)
                             throws <a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -2728,7 +2728,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>closeRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2112">closeRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2113">closeRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi)
                   throws <a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Attempts to undeploy a region from a region server based in information in
@@ -2752,7 +2752,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>tryAssignmentRepair</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2160">tryAssignmentRepair</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hbi,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2161">tryAssignmentRepair</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hbi,
                        <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)
                           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                  org.apache.zookeeper.KeeperException,
@@ -2769,7 +2769,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>checkRegionConsistency</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2196">checkRegionConsistency</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2197">checkRegionConsistency</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
                           <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hbi)
                              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                     org.apache.zookeeper.KeeperException,
@@ -2787,7 +2787,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>checkIntegrity</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2423">checkIntegrity</a>()
+<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2424">checkIntegrity</a>()
                                                   throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Checks tables integrity. Goes over all regions and scans the tables.
  Collects all the pieces for each table and checks if there are missing,
@@ -2802,7 +2802,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>loadTableInfosForTablesWithNoRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2490">loadTableInfosForTablesWithNoRegion</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2491">loadTableInfosForTablesWithNoRegion</a>()
                                           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Loads table info's for tables that may not have been included, since there are no
  regions reported for the table, but table dir is there in hdfs</div>
@@ -2816,7 +2816,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>mergeRegionDirs</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2510">mergeRegionDirs</a>(org.apache.hadoop.fs.Path&nbsp;targetRegionDir,
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2511">mergeRegionDirs</a>(org.apache.hadoop.fs.Path&nbsp;targetRegionDir,
                   <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;contained)
                     throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Merge hdfs data by moving from contained HbckInfo into targetRegionDir.</div>
@@ -2831,7 +2831,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>dumpOverlapProblems</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3177">dumpOverlapProblems</a>(com.google.common.collect.Multimap&lt;byte[],<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt;&nbsp;regions)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3178">dumpOverlapProblems</a>(com.google.common.collect.Multimap&lt;byte[],<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt;&nbsp;regions)</pre>
 </li>
 </ul>
 <a name="dumpSidelinedRegions(java.util.Map)">
@@ -2840,7 +2840,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>dumpSidelinedRegions</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3190">dumpSidelinedRegions</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.fs.Path,<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt;&nbsp;regions)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3191">dumpSidelinedRegions</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.fs.Path,<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt;&nbsp;regions)</pre>
 </li>
 </ul>
 <a name="getOverlapGroups(org.apache.hadoop.hbase.TableName)">
@@ -2849,7 +2849,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getOverlapGroups</h4>
-<pre>public&nbsp;com.google.common.collect.Multimap&lt;byte[],<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3202">getOverlapGroups</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table)</pre>
+<pre>public&nbsp;com.google.common.collect.Multimap&lt;byte[],<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3203">getOverlapGroups</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table)</pre>
 </li>
 </ul>
 <a name="getTables(java.util.concurrent.atomic.AtomicInteger)">
@@ -2858,7 +2858,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getTables</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3217">getTables</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a>&nbsp;numSkipped)</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3218">getTables</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a>&nbsp;numSkipped)</pre>
 <div class="block">Return a list of user-space table names whose metadata have not been
  modified in the last few milliseconds specified by timelag
  if any of the REGIONINFO_QUALIFIER, SERVER_QUALIFIER, STARTCODE_QUALIFIER,
@@ -2875,7 +2875,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getHTableDescriptors</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3237">getHTableDescriptors</a>(<a href="http://docs.oracle.com/javase/7/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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNames)</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3238">getHTableDescriptors</a>(<a href="http://docs.oracle.com/javase/7/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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNames)</pre>
 </li>
 </ul>
 <a name="getOrCreateInfo(java.lang.String)">
@@ -2884,7 +2884,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getOrCreateInfo</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3254">getOrCreateInfo</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3255">getOrCreateInfo</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Gets the entry in regionInfo corresponding to the the given encoded
  region name. If the region has not been seen yet, a new entry is added
  and returned.</div>
@@ -2896,7 +2896,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndFixTableLocks</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3263">checkAndFixTableLocks</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3264">checkAndFixTableLocks</a>()
                             throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -2908,7 +2908,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndFixReplication</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3274">checkAndFixReplication</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3275">checkAndFixReplication</a>()
                              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -2920,7 +2920,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>checkMetaRegion</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3298">checkMetaRegion</a>()
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3299">checkMetaRegion</a>()
                   throws <a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
@@ -2940,7 +2940,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>unassignMetaReplica</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3352">unassignMetaReplica</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3353">unassignMetaReplica</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi)
                           throws <a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a>,
                                  org.apache.zookeeper.KeeperException</pre>
@@ -2956,7 +2956,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>assignMetaReplica</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3363">assignMetaReplica</a>(int&nbsp;replicaId)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3364">assignMetaReplica</a>(int&nbsp;replicaId)
                         throws <a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
@@ -2972,7 +2972,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>loadMetaEntries</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3382">loadMetaEntries</a>()
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3383">loadMetaEntries</a>()
                   throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Scan hbase:meta, adding all regions found to the regionInfo map.</div>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -2985,7 +2985,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>printTableSummary</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3773">printTableSummary</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&gt;&nbsp;tablesInfo)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3774">printTableSummary</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&gt;&nbsp;tablesInfo)</pre>
 <div class="block">Prints summary of all tables found on the system.</div>
 </li>
 </ul>
@@ -2995,7 +2995,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getErrorReporter</h4>
-<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3808">getErrorReporter</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
+<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3809">getErrorReporter</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
                                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></code></dd></dl>
@@ -3007,7 +3007,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setDisplayFullReport</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4160">setDisplayFullReport</a>()</pre>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4161">setDisplayFullReport</a>()</pre>
 <div class="block">Display the full report from fsck. This displays all live and dead region
  servers, and all known regions.</div>
 </li>
@@ -3018,7 +3018,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setForceExclusive</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4167">setForceExclusive</a>()</pre>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4168">setForceExclusive</a>()</pre>
 <div class="block">Set exclusive mode.</div>
 </li>
 </ul>
@@ -3028,7 +3028,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>isExclusive</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4174">isExclusive</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4175">isExclusive</a>()</pre>
 <div class="block">Only one instance of hbck can modify HBase at a time.</div>
 </li>
 </ul>
@@ -3038,7 +3038,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setDisableBalancer</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4181">setDisableBalancer</a>()</pre>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4182">setDisableBalancer</a>()</pre>
 <div class="block">Disable the load balancer.</div>
 </li>
 </ul>
@@ -3048,7 +3048,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldDisableBalancer</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4190">shouldDisableBalancer</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4191">shouldDisableBalancer</a>()</pre>
 <div class="block">The balancer should be disabled if we are modifying HBase.
  It can be disabled if you want to prevent region movement from causing
  false positives.</div>
@@ -3060,7 +3060,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setSummary</h4>
-<pre>static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4198">setSummary</a>()</pre>
+<pre>static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4199">setSummary</a>()</pre>
 <div class="block">Set summary mode.
  Print only summary of the tables and status (OK or INCONSISTENT)</div>
 </li>
@@ -3071,7 +3071,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setCheckMetaOnly</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4206">setCheckMetaOnly</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4207">setCheckMetaOnly</a>()</pre>
 <div class="block">Set hbase:meta check mode.
  Print only info about hbase:meta table deployment/state</div>
 </li>
@@ -3082,7 +3082,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setRegionBoundariesCheck</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4213">setRegionBoundariesCheck</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4214">setRegionBoundariesCheck</a>()</pre>
 <div class="block">Set region boundaries check mode.</div>
 </li>
 </ul>
@@ -3092,7 +3092,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setFixTableLocks</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4221">setFixTableLocks</a>(boolean&nbsp;shouldFix)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4222">setFixTableLocks</a>(boolean&nbsp;shouldFix)</pre>
 <div class="block">Set table locks fix mode.
  Delete table locks held for a long time</div>
 </li>
@@ -3103,7 +3103,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setFixReplication</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4229">setFixReplication</a>(boolean&nbsp;shouldFix)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4230">setFixReplication</a>(boolean&nbsp;shouldFix)</pre>
 <div class="block">Set replication fix mode.</div>
 </li>
 </ul>
@@ -3113,7 +3113,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setShouldRerun</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4240">setShouldRerun</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4241">setShouldRerun</a>()</pre>
 <div class="block">Check if we should rerun fsck again. This checks if we've tried to
  fix something and we should rerun fsck tool again.
  Display the full report from fsck. This displays all live and dead
@@ -3126,7 +3126,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldRerun</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4244">shouldRerun</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4245">shouldRerun</a>()</pre>
 </li>
 </ul>
 <a name="setFixAssignments(boolean)">
@@ -3135,7 +3135,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setFixAssignments</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4252">setFixAssignments</a>(boolean&nbsp;shouldFix)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4253">setFixAssignments</a>(boolean&nbsp;shouldFix)</pre>
 <div class="block">Fix inconsistencies found by fsck. This should try to fix errors (if any)
  found by fsck utility.</div>
 </li>
@@ -3146,7 +3146,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldFixAssignments</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4257">shouldFixAssignments</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4258">shouldFixAssignments</a>()</pre>
 </li>
 </ul>
 <a name="setFixMeta(boolean)">
@@ -3155,7 +3155,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setFixMeta</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4261">setFixMeta</a>(boolean&nbsp;shouldFix)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4262">setFixMeta</a>(boolean&nbsp;shouldFix)</pre>
 </li>
 </ul>
 <a name="shouldFixMeta()">
@@ -3164,7 +3164,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldFixMeta</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4266">shouldFixMeta</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4267">shouldFixMeta</a>()</pre>
 </li>
 </ul>
 <a name="setFixEmptyMetaCells(boolean)">
@@ -3173,7 +3173,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setFixEmptyMetaCells</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4270">setFixEmptyMetaCells</a>(boolean&nbsp;shouldFix)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4271">setFixEmptyMetaCells</a>(boolean&nbsp;shouldFix)</pre>
 </li>
 </ul>
 <a name="shouldFixEmptyMetaCells()">
@@ -3182,7 +3182,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldFixEmptyMetaCells</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4275">shouldFixEmptyMetaCells</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4276">shouldFixEmptyMetaCells</a>()</pre>
 </li>
 </ul>
 <a name="setCheckHdfs(boolean)">
@@ -3191,7 +3191,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setCheckHdfs</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4279">setCheckHdfs</a>(boolean&nbsp;checking)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4280">setCheckHdfs</a>(boolean&nbsp;checking)</pre>
 </li>
 </ul>
 <a name="shouldCheckHdfs()">
@@ -3200,7 +3200,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldCheckHdfs</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4283">shouldCheckHdfs</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4284">shouldCheckHdfs</a>()</pre>
 </li>
 </ul>
 <a name="setFixHdfsHoles(boolean)">
@@ -3209,7 +3209,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setFixHdfsHoles</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4287">setFixHdfsHoles</a>(boolean&nbsp;shouldFix)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4288">setFixHdfsHoles</a>(boolean&nbsp;shouldFix)</pre>
 </li>
 </ul>
 <a name="shouldFixHdfsHoles()">
@@ -3218,7 +3218,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldFixHdfsHoles</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4292">shouldFixHdfsHoles</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4293">shouldFixHdfsHoles</a>()</pre>
 </li>
 </ul>
 <a name="setFixTableOrphans(boolean)">
@@ -3227,7 +3227,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setFixTableOrphans</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4296">setFixTableOrphans</a>(boolean&nbsp;shouldFix)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4297">setFixTableOrphans</a>(boolean&nbsp;shouldFix)</pre>
 </li>
 </ul>
 <a name="shouldFixTableOrphans()">
@@ -3236,7 +3236,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldFixTableOrphans</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4301">shouldFixTableOrphans</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4302">shouldFixTableOrphans</a>()</pre>
 </li>
 </ul>
 <a name="setFixHdfsOverlaps(boolean)">
@@ -3245,7 +3245,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setFixHdfsOverlaps</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4305">setFixHdfsOverlaps</a>(boolean&nbsp;shouldFix)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4306">setFixHdfsOverlaps</a>(boolean&nbsp;shouldFix)</pre>
 </li>
 </ul>
 <a name="shouldFixHdfsOverlaps()">
@@ -3254,7 +3254,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldFixHdfsOverlaps</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4310">shouldFixHdfsOverlaps</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4311">shouldFixHdfsOverlaps</a>()</pre>
 </li>
 </ul>
 <a name="setFixHdfsOrphans(boolean)">
@@ -3263,7 +3263,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setFixHdfsOrphans</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4314">setFixHdfsOrphans</a>(boolean&nbsp;shouldFix)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4315">setFixHdfsOrphans</a>(boolean&nbsp;shouldFix)</pre>
 </li>
 </ul>
 <a name="shouldFixHdfsOrphans()">
@@ -3272,7 +3272,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldFixHdfsOrphans</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4319">shouldFixHdfsOrphans</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4320">shouldFixHdfsOrphans</a>()</pre>
 </li>
 </ul>
 <a name="setFixVersionFile(boolean)">
@@ -3281,7 +3281,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setFixVersionFile</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4323">setFixVersionFile</a>(boolean&nbsp;shouldFix)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4324">setFixVersionFile</a>(boolean&nbsp;shouldFix)</pre>
 </li>
 </ul>
 <a name="shouldFixVersionFile()">
@@ -3290,7 +3290,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldFixVersionFile</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4328">shouldFixVersionFile</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4329">shouldFixVersionFile</a>()</pre>
 </li>
 </ul>
 <a name="setSidelineBigOverlaps(boolean)">
@@ -3299,7 +3299,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setSidelineBigOverlaps</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4332">setSidelineBigOverlaps</a>(boolean&nbsp;sbo)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4333">setSidelineBigOverlaps</a>(boolean&nbsp;sbo)</pre>
 </li>
 </ul>
 <a name="shouldSidelineBigOverlaps()">
@@ -3308,7 +3308,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldSidelineBigOverlaps</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4336">shouldSidelineBigOverlaps</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4337">shouldSidelineBigOverlaps</a>()</pre>
 </li>
 </ul>
 <a name="setFixSplitParents(boolean)">
@@ -3317,7 +3317,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setFixSplitParents</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4340">setFixSplitParents</a>(boolean&nbsp;shouldFix)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4341">setFixSplitParents</a>(boolean&nbsp;shouldFix)</pre>
 </li>
 </ul>
 <a name="shouldFixSplitParents()">
@@ -3326,7 +3326,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldFixSplitParents</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4345">shouldFixSplitParents</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4346">shouldFixSplitParents</a>()</pre>
 </li>
 </ul>
 <a name="setFixReferenceFiles(boolean)">
@@ -3335,7 +3335,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setFixReferenceFiles</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4349">setFixReferenceFiles</a>(boolean&nbsp;shouldFix)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4350">setFixReferenceFiles</a>(boolean&nbsp;shouldFix)</pre>
 </li>
 </ul>
 <a name="shouldFixReferenceFiles()">
@@ -3344,7 +3344,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldFixReferenceFiles</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4354">shouldFixReferenceFiles</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4355">shouldFixReferenceFiles</a>()</pre>
 </li>
 </ul>
 <a name="shouldIgnorePreCheckPermission()">
@@ -3353,7 +3353,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldIgnorePreCheckPermission</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4358">shouldIgnorePreCheckPermission</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4359">shouldIgnorePreCheckPermission</a>()</pre>
 </li>
 </ul>
 <a name="setIgnorePreCheckPermission(boolean)">
@@ -3362,7 +3362,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setIgnorePreCheckPermission</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4362">setIgnorePreCheckPermission</a>(boolean&nbsp;ignorePreCheckPermission)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4363">setIgnorePreCheckPermission</a>(boolean&nbsp;ignorePreCheckPermission)</pre>
 </li>
 </ul>
 <a name="setMaxMerge(int)">
@@ -3371,7 +3371,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setMaxMerge</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4369">setMaxMerge</a>(int&nbsp;mm)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4370">setMaxMerge</a>(int&nbsp;mm)</pre>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>mm</code> - maximum number of regions to merge into a single region.</dd></dl>
 </li>
 </ul>
@@ -3381,7 +3381,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.h
 <ul c

<TRUNCATED>

[33/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.CheckRegionConsistencyWorkItem.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.CheckRegionConsistencyWorkItem.html b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.CheckRegionConsistencyWorkItem.html
index 8c1a35d..d583ae3 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.CheckRegionConsistencyWorkItem.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.CheckRegionConsistencyWorkItem.html
@@ -103,7 +103,7 @@
 </dl>
 <hr>
 <br>
-<pre> class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1888">HBaseFsck.CheckRegionConsistencyWorkItem</a>
+<pre> class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1889">HBaseFsck.CheckRegionConsistencyWorkItem</a>
 extends <a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</pre>
 </li>
@@ -197,7 +197,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockList">
 <li class="blockList">
 <h4>key</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.CheckRegionConsistencyWorkItem.html#line.1889">key</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.CheckRegionConsistencyWorkItem.html#line.1890">key</a></pre>
 </li>
 </ul>
 <a name="hbi">
@@ -206,7 +206,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hbi</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.CheckRegionConsistencyWorkItem.html#line.1890">hbi</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.CheckRegionConsistencyWorkItem.html#line.1891">hbi</a></pre>
 </li>
 </ul>
 </li>
@@ -223,7 +223,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HBaseFsck.CheckRegionConsistencyWorkItem</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.CheckRegionConsistencyWorkItem.html#line.1892">HBaseFsck.CheckRegionConsistencyWorkItem</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.CheckRegionConsistencyWorkItem.html#line.1893">HBaseFsck.CheckRegionConsistencyWorkItem</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
                                         <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hbi)</pre>
 </li>
 </ul>
@@ -241,7 +241,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>call</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.CheckRegionConsistencyWorkItem.html#line.1898">call</a>()
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.CheckRegionConsistencyWorkItem.html#line.1899">call</a>()
           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html
index e6f1ce3..ad57792 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html
@@ -108,7 +108,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3815">HBaseFsck.ErrorReporter.ERROR_CODE</a>
+<pre>public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3816">HBaseFsck.ErrorReporter.ERROR_CODE</a>
 extends <a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&gt;</pre>
 </li>
 </ul>
@@ -289,7 +289,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>UNKNOWN</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3816">UNKNOWN</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3817">UNKNOWN</a></pre>
 </li>
 </ul>
 <a name="NO_META_REGION">
@@ -298,7 +298,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NO_META_REGION</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3816">NO_META_REGION</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3817">NO_META_REGION</a></pre>
 </li>
 </ul>
 <a name="NULL_META_REGION">
@@ -307,7 +307,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NULL_META_REGION</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3816">NULL_META_REGION</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3817">NULL_META_REGION</a></pre>
 </li>
 </ul>
 <a name="NO_VERSION_FILE">
@@ -316,7 +316,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NO_VERSION_FILE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3816">NO_VERSION_FILE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3817">NO_VERSION_FILE</a></pre>
 </li>
 </ul>
 <a name="NOT_IN_META_HDFS">
@@ -325,7 +325,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NOT_IN_META_HDFS</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3816">NOT_IN_META_HDFS</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3817">NOT_IN_META_HDFS</a></pre>
 </li>
 </ul>
 <a name="NOT_IN_META">
@@ -334,7 +334,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NOT_IN_META</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3816">NOT_IN_META</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3817">NOT_IN_META</a></pre>
 </li>
 </ul>
 <a name="NOT_IN_META_OR_DEPLOYED">
@@ -343,7 +343,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NOT_IN_META_OR_DEPLOYED</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3817">NOT_IN_META_OR_DEPLOYED</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3818">NOT_IN_META_OR_DEPLOYED</a></pre>
 </li>
 </ul>
 <a name="NOT_IN_HDFS_OR_DEPLOYED">
@@ -352,7 +352,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NOT_IN_HDFS_OR_DEPLOYED</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3817">NOT_IN_HDFS_OR_DEPLOYED</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3818">NOT_IN_HDFS_OR_DEPLOYED</a></pre>
 </li>
 </ul>
 <a name="NOT_IN_HDFS">
@@ -361,7 +361,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NOT_IN_HDFS</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3817">NOT_IN_HDFS</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3818">NOT_IN_HDFS</a></pre>
 </li>
 </ul>
 <a name="SERVER_DOES_NOT_MATCH_META">
@@ -370,7 +370,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>SERVER_DOES_NOT_MATCH_META</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3817">SERVER_DOES_NOT_MATCH_META</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3818">SERVER_DOES_NOT_MATCH_META</a></pre>
 </li>
 </ul>
 <a name="NOT_DEPLOYED">
@@ -379,7 +379,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NOT_DEPLOYED</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3818">NOT_DEPLOYED</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3819">NOT_DEPLOYED</a></pre>
 </li>
 </ul>
 <a name="MULTI_DEPLOYED">
@@ -388,7 +388,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>MULTI_DEPLOYED</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3819">MULTI_DEPLOYED</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3820">MULTI_DEPLOYED</a></pre>
 </li>
 </ul>
 <a name="SHOULD_NOT_BE_DEPLOYED">
@@ -397,7 +397,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>SHOULD_NOT_BE_DEPLOYED</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3819">SHOULD_NOT_BE_DEPLOYED</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3820">SHOULD_NOT_BE_DEPLOYED</a></pre>
 </li>
 </ul>
 <a name="MULTI_META_REGION">
@@ -406,7 +406,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>MULTI_META_REGION</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3819">MULTI_META_REGION</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3820">MULTI_META_REGION</a></pre>
 </li>
 </ul>
 <a name="RS_CONNECT_FAILURE">
@@ -415,7 +415,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>RS_CONNECT_FAILURE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3819">RS_CONNECT_FAILURE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3820">RS_CONNECT_FAILURE</a></pre>
 </li>
 </ul>
 <a name="FIRST_REGION_STARTKEY_NOT_EMPTY">
@@ -424,7 +424,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>FIRST_REGION_STARTKEY_NOT_EMPTY</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3820">FIRST_REGION_STARTKEY_NOT_EMPTY</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3821">FIRST_REGION_STARTKEY_NOT_EMPTY</a></pre>
 </li>
 </ul>
 <a name="LAST_REGION_ENDKEY_NOT_EMPTY">
@@ -433,7 +433,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>LAST_REGION_ENDKEY_NOT_EMPTY</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3820">LAST_REGION_ENDKEY_NOT_EMPTY</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3821">LAST_REGION_ENDKEY_NOT_EMPTY</a></pre>
 </li>
 </ul>
 <a name="DUPE_STARTKEYS">
@@ -442,7 +442,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>DUPE_STARTKEYS</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3820">DUPE_STARTKEYS</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3821">DUPE_STARTKEYS</a></pre>
 </li>
 </ul>
 <a name="HOLE_IN_REGION_CHAIN">
@@ -451,7 +451,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>HOLE_IN_REGION_CHAIN</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3821">HOLE_IN_REGION_CHAIN</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3822">HOLE_IN_REGION_CHAIN</a></pre>
 </li>
 </ul>
 <a name="OVERLAP_IN_REGION_CHAIN">
@@ -460,7 +460,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>OVERLAP_IN_REGION_CHAIN</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3821">OVERLAP_IN_REGION_CHAIN</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3822">OVERLAP_IN_REGION_CHAIN</a></pre>
 </li>
 </ul>
 <a name="REGION_CYCLE">
@@ -469,7 +469,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>REGION_CYCLE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3821">REGION_CYCLE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3822">REGION_CYCLE</a></pre>
 </li>
 </ul>
 <a name="DEGENERATE_REGION">
@@ -478,7 +478,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>DEGENERATE_REGION</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3821">DEGENERATE_REGION</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3822">DEGENERATE_REGION</a></pre>
 </li>
 </ul>
 <a name="ORPHAN_HDFS_REGION">
@@ -487,7 +487,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>ORPHAN_HDFS_REGION</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3822">ORPHAN_HDFS_REGION</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3823">ORPHAN_HDFS_REGION</a></pre>
 </li>
 </ul>
 <a name="LINGERING_SPLIT_PARENT">
@@ -496,7 +496,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>LINGERING_SPLIT_PARENT</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3822">LINGERING_SPLIT_PARENT</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3823">LINGERING_SPLIT_PARENT</a></pre>
 </li>
 </ul>
 <a name="NO_TABLEINFO_FILE">
@@ -505,7 +505,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NO_TABLEINFO_FILE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3822">NO_TABLEINFO_FILE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3823">NO_TABLEINFO_FILE</a></pre>
 </li>
 </ul>
 <a name="LINGERING_REFERENCE_HFILE">
@@ -514,7 +514,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>LINGERING_REFERENCE_HFILE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3822">LINGERING_REFERENCE_HFILE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3823">LINGERING_REFERENCE_HFILE</a></pre>
 </li>
 </ul>
 <a name="WRONG_USAGE">
@@ -523,7 +523,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>WRONG_USAGE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3823">WRONG_USAGE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3824">WRONG_USAGE</a></pre>
 </li>
 </ul>
 <a name="EMPTY_META_CELL">
@@ -532,7 +532,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>EMPTY_META_CELL</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3823">EMPTY_META_CELL</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3824">EMPTY_META_CELL</a></pre>
 </li>
 </ul>
 <a name="EXPIRED_TABLE_LOCK">
@@ -541,7 +541,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>EXPIRED_TABLE_LOCK</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3823">EXPIRED_TABLE_LOCK</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3824">EXPIRED_TABLE_LOCK</a></pre>
 </li>
 </ul>
 <a name="BOUNDARIES_ERROR">
@@ -550,7 +550,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>BOUNDARIES_ERROR</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3823">BOUNDARIES_ERROR</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3824">BOUNDARIES_ERROR</a></pre>
 </li>
 </ul>
 <a name="ORPHAN_TABLE_STATE">
@@ -559,7 +559,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>ORPHAN_TABLE_STATE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3823">ORPHAN_TABLE_STATE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3824">ORPHAN_TABLE_STATE</a></pre>
 </li>
 </ul>
 <a name="NO_TABLE_STATE">
@@ -568,7 +568,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NO_TABLE_STATE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3824">NO_TABLE_STATE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3825">NO_TABLE_STATE</a></pre>
 </li>
 </ul>
 <a name="UNDELETED_REPLICATION_QUEUE">
@@ -577,7 +577,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>UNDELETED_REPLICATION_QUEUE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3824">UNDELETED_REPLICATION_QUEUE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3825">UNDELETED_REPLICATION_QUEUE</a></pre>
 </li>
 </ul>
 </li>
@@ -594,7 +594,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/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3539">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3540">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:
@@ -611,7 +611,7 @@ for (HBaseFsck.ErrorReporter.ERROR_CODE c : HBaseFsck.ErrorReporter.ERROR_CODE.v
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3539">valueOf</a>(<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html#line.3540">valueOf</a>(<a href="http://docs.oracle.com/javase/7/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 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html
index 1ead84f..32b358a 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html
@@ -95,7 +95,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3814">HBaseFsck.ErrorReporter</a></pre>
+<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3815">HBaseFsck.ErrorReporter</a></pre>
 </li>
 </ul>
 </div>
@@ -220,7 +220,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>clear</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3826">clear</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3827">clear</a>()</pre>
 </li>
 </ul>
 <a name="report(java.lang.String)">
@@ -229,7 +229,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>report</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3827">report</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3828">report</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
 </li>
 </ul>
 <a name="reportError(java.lang.String)">
@@ -238,7 +238,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>reportError</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3828">reportError</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3829">reportError</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
 </li>
 </ul>
 <a name="reportError(org.apache.hadoop.hbase.util.HBaseFsck.ErrorReporter.ERROR_CODE, java.lang.String)">
@@ -247,7 +247,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>reportError</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3829">reportError</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&nbsp;errorCode,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3830">reportError</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&nbsp;errorCode,
                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
 </li>
 </ul>
@@ -257,7 +257,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>reportError</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3830">reportError</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&nbsp;errorCode,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3831">reportError</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&nbsp;errorCode,
                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
                <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&nbsp;table)</pre>
 </li>
@@ -268,7 +268,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>reportError</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3831">reportError</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&nbsp;errorCode,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3832">reportError</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&nbsp;errorCode,
                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
                <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&nbsp;table,
                <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;info)</pre>
@@ -280,7 +280,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>reportError</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3832">reportError</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&nbsp;errorCode,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3833">reportError</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&nbsp;errorCode,
                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
                <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&nbsp;table,
                <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;info1,
@@ -293,7 +293,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>summarize</h4>
-<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3839">summarize</a>()</pre>
+<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3840">summarize</a>()</pre>
 </li>
 </ul>
 <a name="detail(java.lang.String)">
@@ -302,7 +302,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>detail</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3840">detail</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;details)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3841">detail</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;details)</pre>
 </li>
 </ul>
 <a name="getErrorList()">
@@ -311,7 +311,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>getErrorList</h4>
-<pre><a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3841">getErrorList</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3842">getErrorList</a>()</pre>
 </li>
 </ul>
 <a name="progress()">
@@ -320,7 +320,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>progress</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3842">progress</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3843">progress</a>()</pre>
 </li>
 </ul>
 <a name="print(java.lang.String)">
@@ -329,7 +329,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>print</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3843">print</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3844">print</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
 </li>
 </ul>
 <a name="resetErrors()">
@@ -338,7 +338,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>resetErrors</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3844">resetErrors</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3845">resetErrors</a>()</pre>
 </li>
 </ul>
 <a name="tableHasErrors(org.apache.hadoop.hbase.util.HBaseFsck.TableInfo)">
@@ -347,7 +347,7 @@
 <ul class="blockListLast">
 <li class="blockList">
 <h4>tableHasErrors</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3845">tableHasErrors</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&nbsp;table)</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#line.3846">tableHasErrors</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&nbsp;table)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.HBaseFsckTool.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.HBaseFsckTool.html b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.HBaseFsckTool.html
index db652c3..6450f1d 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.HBaseFsckTool.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.HBaseFsckTool.html
@@ -108,7 +108,7 @@
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4523">HBaseFsck.HBaseFsckTool</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4524">HBaseFsck.HBaseFsckTool</a>
 extends org.apache.hadoop.conf.Configured
 implements org.apache.hadoop.util.Tool</pre>
 <div class="block">This is a Tool wrapper that gathers -Dxxx=yyy configuration settings from the command line.</div>
@@ -193,7 +193,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HBaseFsck.HBaseFsckTool</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HBaseFsckTool.html#line.4524">HBaseFsck.HBaseFsckTool</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HBaseFsckTool.html#line.4525">HBaseFsck.HBaseFsckTool</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
 </li>
@@ -210,7 +210,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HBaseFsckTool.html#line.4526">run</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HBaseFsckTool.html#line.4527">run</a>(<a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html
index 289fc0b..3d61998 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html
@@ -103,7 +103,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3553">HBaseFsck.HbckInfo</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3554">HBaseFsck.HbckInfo</a>
 extends <a href="http://docs.oracle.com/javase/7/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/util/KeyRange.html" title="interface in org.apache.hadoop.hbase.util">KeyRange</a></pre>
 <div class="block">Maintain information about a particular region.  It gathers information
@@ -291,7 +291,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>metaEntry</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.MetaEntry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3554">metaEntry</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.MetaEntry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3555">metaEntry</a></pre>
 </li>
 </ul>
 <a name="hdfsEntry">
@@ -300,7 +300,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>hdfsEntry</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HdfsEntry.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HdfsEntry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3555">hdfsEntry</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HdfsEntry.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HdfsEntry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3556">hdfsEntry</a></pre>
 </li>
 </ul>
 <a name="deployedEntries">
@@ -309,7 +309,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>deployedEntries</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.OnlineEntry.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.OnlineEntry</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3556">deployedEntries</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.OnlineEntry.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.OnlineEntry</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3557">deployedEntries</a></pre>
 </li>
 </ul>
 <a name="deployedOn">
@@ -318,7 +318,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>deployedOn</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3557">deployedOn</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3558">deployedOn</a></pre>
 </li>
 </ul>
 <a name="skipChecks">
@@ -327,7 +327,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>skipChecks</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3558">skipChecks</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3559">skipChecks</a></pre>
 </li>
 </ul>
 <a name="isMerged">
@@ -336,7 +336,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>isMerged</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3559">isMerged</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3560">isMerged</a></pre>
 </li>
 </ul>
 <a name="deployedReplicaId">
@@ -345,7 +345,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>deployedReplicaId</h4>
-<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3560">deployedReplicaId</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3561">deployedReplicaId</a></pre>
 </li>
 </ul>
 <a name="primaryHRIForDeployedReplica">
@@ -354,7 +354,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockListLast">
 <li class="blockList">
 <h4>primaryHRIForDeployedReplica</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3561">primaryHRIForDeployedReplica</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3562">primaryHRIForDeployedReplica</a></pre>
 </li>
 </ul>
 </li>
@@ -371,7 +371,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HBaseFsck.HbckInfo</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3563">HBaseFsck.HbckInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.MetaEntry</a>&nbsp;metaEntry)</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3564">HBaseFsck.HbckInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.MetaEntry</a>&nbsp;metaEntry)</pre>
 </li>
 </ul>
 </li>
@@ -388,7 +388,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getReplicaId</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3567">getReplicaId</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3568">getReplicaId</a>()</pre>
 </li>
 </ul>
 <a name="addServer(org.apache.hadoop.hbase.HRegionInfo, org.apache.hadoop.hbase.ServerName)">
@@ -397,7 +397,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>addServer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3571">addServer</a>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;hri,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3572">addServer</a>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;hri,
              <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server)</pre>
 </li>
 </ul>
@@ -407,7 +407,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3584">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3585">toString</a>()</pre>
 <dl>
 <dt><strong>Overrides:</strong></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -420,7 +420,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getStartKey</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3596">getStartKey</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3597">getStartKey</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html#getStartKey()">getStartKey</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" title="interface in org.apache.hadoop.hbase.util">KeyRange</a></code></dd>
@@ -433,7 +433,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getEndKey</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3608">getEndKey</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3609">getEndKey</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html#getEndKey()">getEndKey</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" title="interface in org.apache.hadoop.hbase.util">KeyRange</a></code></dd>
@@ -446,7 +446,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableName</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3619">getTableName</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3620">getTableName</a>()</pre>
 </li>
 </ul>
 <a name="getRegionNameAsString()">
@@ -455,7 +455,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionNameAsString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3636">getRegionNameAsString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3637">getRegionNameAsString</a>()</pre>
 </li>
 </ul>
 <a name="getRegionName()">
@@ -464,7 +464,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionName</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3652">getRegionName</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3653">getRegionName</a>()</pre>
 </li>
 </ul>
 <a name="getPrimaryHRIForDeployedReplica()">
@@ -473,7 +473,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getPrimaryHRIForDeployedReplica</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/util/HBaseFsck.HbckInfo.html#line.3666">getPrimaryHRIForDeployedReplica</a>()</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/util/HBaseFsck.HbckInfo.html#line.3667">getPrimaryHRIForDeployedReplica</a>()</pre>
 </li>
 </ul>
 <a name="getHdfsRegionDir()">
@@ -482,7 +482,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getHdfsRegionDir</h4>
-<pre>org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3670">getHdfsRegionDir</a>()</pre>
+<pre>org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3671">getHdfsRegionDir</a>()</pre>
 </li>
 </ul>
 <a name="containsOnlyHdfsEdits()">
@@ -491,7 +491,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>containsOnlyHdfsEdits</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3677">containsOnlyHdfsEdits</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3678">containsOnlyHdfsEdits</a>()</pre>
 </li>
 </ul>
 <a name="isHdfsRegioninfoPresent()">
@@ -500,7 +500,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>isHdfsRegioninfoPresent</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3684">isHdfsRegioninfoPresent</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3685">isHdfsRegioninfoPresent</a>()</pre>
 </li>
 </ul>
 <a name="getModTime()">
@@ -509,7 +509,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getModTime</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3691">getModTime</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3692">getModTime</a>()</pre>
 </li>
 </ul>
 <a name="getHdfsHRI()">
@@ -518,7 +518,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getHdfsHRI</h4>
-<pre><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/util/HBaseFsck.HbckInfo.html#line.3698">getHdfsHRI</a>()</pre>
+<pre><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/util/HBaseFsck.HbckInfo.html#line.3699">getHdfsHRI</a>()</pre>
 </li>
 </ul>
 <a name="setSkipChecks(boolean)">
@@ -527,7 +527,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>setSkipChecks</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3705">setSkipChecks</a>(boolean&nbsp;skipChecks)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3706">setSkipChecks</a>(boolean&nbsp;skipChecks)</pre>
 </li>
 </ul>
 <a name="isSkipChecks()">
@@ -536,7 +536,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>isSkipChecks</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3709">isSkipChecks</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3710">isSkipChecks</a>()</pre>
 </li>
 </ul>
 <a name="setMerged(boolean)">
@@ -545,7 +545,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>setMerged</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3713">setMerged</a>(boolean&nbsp;isMerged)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3714">setMerged</a>(boolean&nbsp;isMerged)</pre>
 </li>
 </ul>
 <a name="isMerged()">
@@ -554,7 +554,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/KeyRange.html" t
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isMerged</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3717">isMerged</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html#line.3718">isMerged</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.HdfsEntry.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.HdfsEntry.html b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.HdfsEntry.html
index c880e03..50c8d4b 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.HdfsEntry.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.HdfsEntry.html
@@ -99,7 +99,7 @@
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3528">HBaseFsck.HdfsEntry</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3529">HBaseFsck.HdfsEntry</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Stores the regioninfo entries from HDFS</div>
 </li>
@@ -193,7 +193,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hri</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HdfsEntry.html#line.3529">hri</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HdfsEntry.html#line.3530">hri</a></pre>
 </li>
 </ul>
 <a name="hdfsRegionDir">
@@ -202,7 +202,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hdfsRegionDir</h4>
-<pre>org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HdfsEntry.html#line.3530">hdfsRegionDir</a></pre>
+<pre>org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HdfsEntry.html#line.3531">hdfsRegionDir</a></pre>
 </li>
 </ul>
 <a name="hdfsRegionDirModTime">
@@ -211,7 +211,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hdfsRegionDirModTime</h4>
-<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HdfsEntry.html#line.3531">hdfsRegionDirModTime</a></pre>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HdfsEntry.html#line.3532">hdfsRegionDirModTime</a></pre>
 </li>
 </ul>
 <a name="hdfsRegioninfoFilePresent">
@@ -220,7 +220,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hdfsRegioninfoFilePresent</h4>
-<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HdfsEntry.html#line.3532">hdfsRegioninfoFilePresent</a></pre>
+<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HdfsEntry.html#line.3533">hdfsRegioninfoFilePresent</a></pre>
 </li>
 </ul>
 <a name="hdfsOnlyEdits">
@@ -229,7 +229,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hdfsOnlyEdits</h4>
-<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HdfsEntry.html#line.3533">hdfsOnlyEdits</a></pre>
+<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HdfsEntry.html#line.3534">hdfsOnlyEdits</a></pre>
 </li>
 </ul>
 </li>
@@ -246,7 +246,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HBaseFsck.HdfsEntry</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HdfsEntry.html#line.3528">HBaseFsck.HdfsEntry</a>()</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.HdfsEntry.html#line.3529">HBaseFsck.HdfsEntry</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html
index 3286e68..9cad3b0 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html
@@ -108,7 +108,7 @@
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3477">HBaseFsck.MetaEntry</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3478">HBaseFsck.MetaEntry</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a></pre>
 <div class="block">Stores the regioninfo entries scanned from META</div>
 </li>
@@ -236,7 +236,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title=
 <ul class="blockList">
 <li class="blockList">
 <h4>regionServer</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html#line.3478">regionServer</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html#line.3479">regionServer</a></pre>
 </li>
 </ul>
 <a name="modTime">
@@ -245,7 +245,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title=
 <ul class="blockList">
 <li class="blockList">
 <h4>modTime</h4>
-<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html#line.3479">modTime</a></pre>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html#line.3480">modTime</a></pre>
 </li>
 </ul>
 <a name="splitA">
@@ -254,7 +254,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title=
 <ul class="blockList">
 <li class="blockList">
 <h4>splitA</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html#line.3480">splitA</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html#line.3481">splitA</a></pre>
 </li>
 </ul>
 <a name="splitB">
@@ -263,7 +263,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title=
 <ul class="blockListLast">
 <li class="blockList">
 <h4>splitB</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html#line.3480">splitB</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html#line.3481">splitB</a></pre>
 </li>
 </ul>
 </li>
@@ -280,7 +280,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title=
 <ul class="blockList">
 <li class="blockList">
 <h4>HBaseFsck.MetaEntry</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html#line.3482">HBaseFsck.MetaEntry</a>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;rinfo,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html#line.3483">HBaseFsck.MetaEntry</a>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;rinfo,
                    <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;regionServer,
                    long&nbsp;modTime)</pre>
 </li>
@@ -291,7 +291,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title=
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HBaseFsck.MetaEntry</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html#line.3486">HBaseFsck.MetaEntry</a>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;rinfo,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html#line.3487">HBaseFsck.MetaEntry</a>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;rinfo,
                    <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;regionServer,
                    long&nbsp;modTime,
                    <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;splitA,
@@ -312,7 +312,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title=
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html#line.3496">equals</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html#line.3497">equals</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><strong>Overrides:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a></code></dd>
@@ -325,7 +325,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title=
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html#line.3510">hashCode</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.MetaEntry.html#line.3511">hashCode</a>()</pre>
 <dl>
 <dt><strong>Overrides:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a></code></dd>


[08/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html
index 0ba2dff..3541594 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html
@@ -30,683 +30,719 @@
 <span class="sourceLineNo">022</span><a name="line.22"></a>
 <span class="sourceLineNo">023</span>import org.apache.commons.logging.Log;<a name="line.23"></a>
 <span class="sourceLineNo">024</span>import org.apache.commons.logging.LogFactory;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.fs.FSDataInputStream;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStoreTracker;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore.ProcedureIterator;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry;<a name="line.32"></a>
-<span class="sourceLineNo">033</span><a name="line.33"></a>
-<span class="sourceLineNo">034</span>/**<a name="line.34"></a>
-<span class="sourceLineNo">035</span> * Helper class that loads the procedures stored in a WAL<a name="line.35"></a>
-<span class="sourceLineNo">036</span> */<a name="line.36"></a>
-<span class="sourceLineNo">037</span>@InterfaceAudience.Private<a name="line.37"></a>
-<span class="sourceLineNo">038</span>@InterfaceStability.Evolving<a name="line.38"></a>
-<span class="sourceLineNo">039</span>public class ProcedureWALFormatReader {<a name="line.39"></a>
-<span class="sourceLineNo">040</span>  private static final Log LOG = LogFactory.getLog(ProcedureWALFormatReader.class);<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>  // ==============================================================================================<a name="line.42"></a>
-<span class="sourceLineNo">043</span>  //  We read the WALs in reverse order. from the newest to the oldest.<a name="line.43"></a>
-<span class="sourceLineNo">044</span>  //  We have different entry types:<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  //   - INIT: Procedure submitted by the user (also known as 'root procedure')<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  //   - INSERT: Children added to the procedure &lt;parentId&gt;:[&lt;childId&gt;, ...]<a name="line.46"></a>
-<span class="sourceLineNo">047</span>  //   - UPDATE: The specified procedure was updated<a name="line.47"></a>
-<span class="sourceLineNo">048</span>  //   - DELETE: The procedure was removed (completed/rolledback and result TTL expired)<a name="line.48"></a>
-<span class="sourceLineNo">049</span>  //<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  // In the WAL we can find multiple times the same procedure as UPDATE or INSERT.<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  // We read the WAL from top to bottom, so every time we find an entry of the<a name="line.51"></a>
-<span class="sourceLineNo">052</span>  // same procedure, that will be the "latest" update.<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  //<a name="line.53"></a>
-<span class="sourceLineNo">054</span>  // We keep two in-memory maps:<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  //  - localProcedureMap: is the map containing the entries in the WAL we are processing<a name="line.55"></a>
-<span class="sourceLineNo">056</span>  //  - procedureMap: is the map containing all the procedures we found up to the WAL in process.<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  // localProcedureMap is merged with the procedureMap once we reach the WAL EOF.<a name="line.57"></a>
-<span class="sourceLineNo">058</span>  //<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  // Since we are reading the WALs in reverse order (newest to oldest),<a name="line.59"></a>
-<span class="sourceLineNo">060</span>  // if we find an entry related to a procedure we already have in 'procedureMap' we can discard it.<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  //<a name="line.61"></a>
-<span class="sourceLineNo">062</span>  // The WAL is append-only so the last procedure in the WAL is the one that<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  // was in execution at the time we crashed/closed the server.<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  // given that, the procedure replay order can be inferred by the WAL order.<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  //<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  // Example:<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  //    WAL-2: [A, B, A, C, D]<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  //    WAL-1: [F, G, A, F, B]<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  //    Replay-Order: [D, C, A, B, F, G]<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  //<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  // The "localProcedureMap" keeps a "replayOrder" list. Every time we add the<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  // record to the map that record is moved to the head of the "replayOrder" list.<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  // Using the example above:<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  //    WAL-2 localProcedureMap.replayOrder is [D, C, A, B]<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  //    WAL-1 localProcedureMap.replayOrder is [F, G]<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  //<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  // each time we reach the WAL-EOF, the "replayOrder" list is merged/appended in 'procedureMap'<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  // so using the example above we end up with: [D, C, A, B] + [F, G] as replay order.<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  //<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  //  Fast Start: INIT/INSERT record and StackIDs<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  // ---------------------------------------------<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  // We have to special record, INIT and INSERT that tracks the first time<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  // the procedure was added to the WAL. We can use that information to be able<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  // to start procedures before reaching the end of the WAL, or before reading all the WALs.<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  // but in some cases the WAL with that record can be already gone.<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  // In alternative we can use the stackIds on each procedure,<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  // to identify when a procedure is ready to start.<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  // If there are gaps in the sum of the stackIds we need to read more WALs.<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  //<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  // Example (all procs child of A):<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  //   WAL-2: [A, B]                   A stackIds = [0, 4], B stackIds = [1, 5]<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  //   WAL-1: [A, B, C, D]<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  //<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  // In the case above we need to read one more WAL to be able to consider<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  // the root procedure A and all children as ready.<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  // ==============================================================================================<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  private final WalProcedureMap localProcedureMap = new WalProcedureMap(1024);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  private final WalProcedureMap procedureMap = new WalProcedureMap(1024);<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>  //private long compactionLogId;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  private long maxProcId = 0;<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>  private final ProcedureStoreTracker tracker;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>  private final boolean hasFastStartSupport;<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public ProcedureWALFormatReader(final ProcedureStoreTracker tracker) {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    this.tracker = tracker;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    // we support fast-start only if we have a clean shutdown.<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    this.hasFastStartSupport = !tracker.isEmpty();<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>  public void read(ProcedureWALFile log, ProcedureWALFormat.Loader loader) throws IOException {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    FSDataInputStream stream = log.getStream();<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    try {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      boolean hasMore = true;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      while (hasMore) {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>        ProcedureWALEntry entry = ProcedureWALFormat.readEntry(stream);<a name="line.117"></a>
-<span class="sourceLineNo">118</span>        if (entry == null) {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>          LOG.warn("nothing left to decode. exiting with missing EOF");<a name="line.119"></a>
-<span class="sourceLineNo">120</span>          hasMore = false;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>          break;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>        switch (entry.getType()) {<a name="line.123"></a>
-<span class="sourceLineNo">124</span>          case PROCEDURE_WAL_INIT:<a name="line.124"></a>
-<span class="sourceLineNo">125</span>            readInitEntry(entry);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>            break;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>          case PROCEDURE_WAL_INSERT:<a name="line.127"></a>
-<span class="sourceLineNo">128</span>            readInsertEntry(entry);<a name="line.128"></a>
-<span class="sourceLineNo">129</span>            break;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>          case PROCEDURE_WAL_UPDATE:<a name="line.130"></a>
-<span class="sourceLineNo">131</span>          case PROCEDURE_WAL_COMPACT:<a name="line.131"></a>
-<span class="sourceLineNo">132</span>            readUpdateEntry(entry);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>            break;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>          case PROCEDURE_WAL_DELETE:<a name="line.134"></a>
-<span class="sourceLineNo">135</span>            readDeleteEntry(entry);<a name="line.135"></a>
-<span class="sourceLineNo">136</span>            break;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>          case PROCEDURE_WAL_EOF:<a name="line.137"></a>
-<span class="sourceLineNo">138</span>            hasMore = false;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>            break;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>          default:<a name="line.140"></a>
-<span class="sourceLineNo">141</span>            throw new CorruptedWALProcedureStoreException("Invalid entry: " + entry);<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>    } catch (IOException e) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      LOG.error("got an exception while reading the procedure WAL: " + log, e);<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      loader.markCorruptedWAL(log, e);<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>    if (localProcedureMap.isEmpty()) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      LOG.info("No active entry found in state log " + log + ". removing it");<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      loader.removeLog(log);<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    } else {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      log.setProcIds(localProcedureMap.getMinProcId(), localProcedureMap.getMaxProcId());<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      procedureMap.mergeTail(localProcedureMap);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      //if (hasFastStartSupport) {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>        // TODO: Some procedure may be already runnables (see readInitEntry())<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        //       (we can also check the "update map" in the log trackers)<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        // --------------------------------------------------<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        //EntryIterator iter = procedureMap.fetchReady();<a name="line.159"></a>
-<span class="sourceLineNo">160</span>        //if (iter != null) loader.load(iter);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        // --------------------------------------------------<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      //}<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    }<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  }<a name="line.164"></a>
-<span class="sourceLineNo">165</span><a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public void finalize(ProcedureWALFormat.Loader loader) throws IOException {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    // notify the loader about the max proc ID<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    loader.setMaxProcId(maxProcId);<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>    // fetch the procedure ready to run.<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    ProcedureIterator procIter = procedureMap.fetchReady();<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    if (procIter != null) loader.load(procIter);<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span>    // remaining procedures have missing link or dependencies<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    // consider them as corrupted, manual fix is probably required.<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    procIter = procedureMap.fetchAll();<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    if (procIter != null) loader.handleCorrupted(procIter);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>  private void loadProcedure(final ProcedureWALEntry entry, final ProcedureProtos.Procedure proc) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    maxProcId = Math.max(maxProcId, proc.getProcId());<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    if (isRequired(proc.getProcId())) {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      if (LOG.isTraceEnabled()) {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>        LOG.trace("read " + entry.getType() + " entry " + proc.getProcId());<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      }<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      localProcedureMap.add(proc);<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      tracker.setDeleted(proc.getProcId(), false);<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    }<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  }<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private void readInitEntry(final ProcedureWALEntry entry)<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      throws IOException {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    assert entry.getProcedureCount() == 1 : "Expected only one procedure";<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  }<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private void readInsertEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    assert entry.getProcedureCount() &gt;= 1 : "Expected one or more procedures";<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    for (int i = 1; i &lt; entry.getProcedureCount(); ++i) {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      loadProcedure(entry, entry.getProcedure(i));<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>  private void readUpdateEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    assert entry.getProcedureCount() == 1 : "Expected only one procedure";<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  }<a name="line.208"></a>
-<span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span>  private void readDeleteEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    assert entry.getProcedureCount() == 0 : "Expected no procedures";<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    assert entry.hasProcId() : "expected ProcID";<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    if (LOG.isTraceEnabled()) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      LOG.trace("read delete entry " + entry.getProcId());<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    }<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    maxProcId = Math.max(maxProcId, entry.getProcId());<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    localProcedureMap.remove(entry.getProcId());<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    tracker.setDeleted(entry.getProcId(), true);<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 boolean isDeleted(final long procId) {<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    return tracker.isDeleted(procId) == ProcedureStoreTracker.DeleteState.YES;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  }<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  private boolean isRequired(final long procId) {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    return !isDeleted(procId) &amp;&amp; !procedureMap.contains(procId);<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>  // ==========================================================================<a name="line.229"></a>
-<span class="sourceLineNo">230</span>  //  We keep an in-memory map of the procedures sorted by replay order.<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  //  (see the details in the beginning of the file)<a name="line.231"></a>
-<span class="sourceLineNo">232</span>  //                      _______________________________________________<a name="line.232"></a>
-<span class="sourceLineNo">233</span>  //      procedureMap = | A |   | E |   | C |   |   |   |   | G |   |   |<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  //                       D               B<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  //      replayOrderHead = C &lt;-&gt; B &lt;-&gt; E &lt;-&gt; D &lt;-&gt; A &lt;-&gt; G<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  //<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  //  We also have a lazy grouping by "root procedure", and a list of<a name="line.237"></a>
-<span class="sourceLineNo">238</span>  //  unlinked procedure. If after reading all the WALs we have unlinked<a name="line.238"></a>
-<span class="sourceLineNo">239</span>  //  procedures it means that we had a missing WAL or a corruption.<a name="line.239"></a>
-<span class="sourceLineNo">240</span>  //      rootHead = A &lt;-&gt; D &lt;-&gt; G<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  //                 B     E<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  //                 C<a name="line.242"></a>
-<span class="sourceLineNo">243</span>  //      unlinkFromLinkList = None<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  // ==========================================================================<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  private static class Entry {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    // hash-table next<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    protected Entry hashNext;<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    // child head<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    protected Entry childHead;<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    // double-link for rootHead or childHead<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    protected Entry linkNext;<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    protected Entry linkPrev;<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    // replay double-linked-list<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    protected Entry replayNext;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    protected Entry replayPrev;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    // procedure-infos<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    protected Procedure procedure;<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    protected ProcedureProtos.Procedure proto;<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    protected boolean ready = false;<a name="line.259"></a>
-<span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>    public Entry(Entry hashNext) { this.hashNext = hashNext; }<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>    public long getProcId() { return proto.getProcId(); }<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    public long getParentId() { return proto.getParentId(); }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    public boolean hasParent() { return proto.hasParentId(); }<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    public boolean isReady() { return ready; }<a name="line.266"></a>
-<span class="sourceLineNo">267</span><a name="line.267"></a>
-<span class="sourceLineNo">268</span>    public Procedure convert() throws IOException {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      if (procedure == null) {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>        procedure = Procedure.convert(proto);<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      }<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      return procedure;<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>    @Override<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    public String toString() {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      return "Entry(" + getProcId() + ", parentId=" + getParentId() + ")";<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">025</span>import org.apache.hadoop.fs.FSDataInputStream;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStoreTracker;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore.ProcedureIterator;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry;<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>/**<a name="line.35"></a>
+<span class="sourceLineNo">036</span> * Helper class that loads the procedures stored in a WAL<a name="line.36"></a>
+<span class="sourceLineNo">037</span> */<a name="line.37"></a>
+<span class="sourceLineNo">038</span>@InterfaceAudience.Private<a name="line.38"></a>
+<span class="sourceLineNo">039</span>@InterfaceStability.Evolving<a name="line.39"></a>
+<span class="sourceLineNo">040</span>public class ProcedureWALFormatReader {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  private static final Log LOG = LogFactory.getLog(ProcedureWALFormatReader.class);<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>  // ==============================================================================================<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  //  We read the WALs in reverse order. from the newest to the oldest.<a name="line.44"></a>
+<span class="sourceLineNo">045</span>  //  We have different entry types:<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  //   - INIT: Procedure submitted by the user (also known as 'root procedure')<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  //   - INSERT: Children added to the procedure &lt;parentId&gt;:[&lt;childId&gt;, ...]<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  //   - UPDATE: The specified procedure was updated<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  //   - DELETE: The procedure was removed (completed/rolledback and result TTL expired)<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  //<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  // In the WAL we can find multiple times the same procedure as UPDATE or INSERT.<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  // We read the WAL from top to bottom, so every time we find an entry of the<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  // same procedure, that will be the "latest" update.<a name="line.53"></a>
+<span class="sourceLineNo">054</span>  //<a name="line.54"></a>
+<span class="sourceLineNo">055</span>  // We keep two in-memory maps:<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  //  - localProcedureMap: is the map containing the entries in the WAL we are processing<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  //  - procedureMap: is the map containing all the procedures we found up to the WAL in process.<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  // localProcedureMap is merged with the procedureMap once we reach the WAL EOF.<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  //<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  // Since we are reading the WALs in reverse order (newest to oldest),<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  // if we find an entry related to a procedure we already have in 'procedureMap' we can discard it.<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  //<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  // The WAL is append-only so the last procedure in the WAL is the one that<a name="line.63"></a>
+<span class="sourceLineNo">064</span>  // was in execution at the time we crashed/closed the server.<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  // given that, the procedure replay order can be inferred by the WAL order.<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  //<a name="line.66"></a>
+<span class="sourceLineNo">067</span>  // Example:<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  //    WAL-2: [A, B, A, C, D]<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  //    WAL-1: [F, G, A, F, B]<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  //    Replay-Order: [D, C, A, B, F, G]<a name="line.70"></a>
+<span class="sourceLineNo">071</span>  //<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  // The "localProcedureMap" keeps a "replayOrder" list. Every time we add the<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  // record to the map that record is moved to the head of the "replayOrder" list.<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  // Using the example above:<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  //    WAL-2 localProcedureMap.replayOrder is [D, C, A, B]<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  //    WAL-1 localProcedureMap.replayOrder is [F, G]<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  //<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  // each time we reach the WAL-EOF, the "replayOrder" list is merged/appended in 'procedureMap'<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  // so using the example above we end up with: [D, C, A, B] + [F, G] as replay order.<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  //<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  //  Fast Start: INIT/INSERT record and StackIDs<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  // ---------------------------------------------<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  // We have two special record, INIT and INSERT that tracks the first time<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  // the procedure was added to the WAL. We can use that information to be able<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  // to start procedures before reaching the end of the WAL, or before reading all the WALs.<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  // but in some cases the WAL with that record can be already gone.<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  // In alternative we can use the stackIds on each procedure,<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  // to identify when a procedure is ready to start.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  // If there are gaps in the sum of the stackIds we need to read more WALs.<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  //<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  // Example (all procs child of A):<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  //   WAL-2: [A, B]                   A stackIds = [0, 4], B stackIds = [1, 5]<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  //   WAL-1: [A, B, C, D]<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  //<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  // In the case above we need to read one more WAL to be able to consider<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  // the root procedure A and all children as ready.<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  // ==============================================================================================<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  private final WalProcedureMap localProcedureMap = new WalProcedureMap(1024);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  private final WalProcedureMap procedureMap = new WalProcedureMap(1024);<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>  //private long compactionLogId;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  private long maxProcId = 0;<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  private final ProcedureStoreTracker tracker;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  private final boolean hasFastStartSupport;<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>  public ProcedureWALFormatReader(final ProcedureStoreTracker tracker) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    this.tracker = tracker;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    // we support fast-start only if we have a clean shutdown.<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    this.hasFastStartSupport = !tracker.isEmpty();<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>  public void read(ProcedureWALFile log, ProcedureWALFormat.Loader loader) throws IOException {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    FSDataInputStream stream = log.getStream();<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    try {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      boolean hasMore = true;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      while (hasMore) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        ProcedureWALEntry entry = ProcedureWALFormat.readEntry(stream);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        if (entry == null) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>          LOG.warn("nothing left to decode. exiting with missing EOF");<a name="line.120"></a>
+<span class="sourceLineNo">121</span>          hasMore = false;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>          break;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        switch (entry.getType()) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>          case PROCEDURE_WAL_INIT:<a name="line.125"></a>
+<span class="sourceLineNo">126</span>            readInitEntry(entry);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>            break;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>          case PROCEDURE_WAL_INSERT:<a name="line.128"></a>
+<span class="sourceLineNo">129</span>            readInsertEntry(entry);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>            break;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>          case PROCEDURE_WAL_UPDATE:<a name="line.131"></a>
+<span class="sourceLineNo">132</span>          case PROCEDURE_WAL_COMPACT:<a name="line.132"></a>
+<span class="sourceLineNo">133</span>            readUpdateEntry(entry);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>            break;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>          case PROCEDURE_WAL_DELETE:<a name="line.135"></a>
+<span class="sourceLineNo">136</span>            readDeleteEntry(entry);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>            break;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>          case PROCEDURE_WAL_EOF:<a name="line.138"></a>
+<span class="sourceLineNo">139</span>            hasMore = false;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>            break;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>          default:<a name="line.141"></a>
+<span class="sourceLineNo">142</span>            throw new CorruptedWALProcedureStoreException("Invalid entry: " + entry);<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 (IOException e) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      LOG.error("got an exception while reading the procedure WAL: " + log, e);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      loader.markCorruptedWAL(log, e);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    }<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    if (!localProcedureMap.isEmpty()) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      log.setProcIds(localProcedureMap.getMinProcId(), localProcedureMap.getMaxProcId());<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      procedureMap.mergeTail(localProcedureMap);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      //if (hasFastStartSupport) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        // TODO: Some procedure may be already runnables (see readInitEntry())<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        //       (we can also check the "update map" in the log trackers)<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        // --------------------------------------------------<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        //EntryIterator iter = procedureMap.fetchReady();<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        //if (iter != null) loader.load(iter);<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">162</span>  }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>  public void finalize(ProcedureWALFormat.Loader loader) throws IOException {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    // notify the loader about the max proc ID<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    loader.setMaxProcId(maxProcId);<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>    // fetch the procedure ready to run.<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    ProcedureIterator procIter = procedureMap.fetchReady();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    if (procIter != null) loader.load(procIter);<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>    // remaining procedures have missing link or dependencies<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    // consider them as corrupted, manual fix is probably required.<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    procIter = procedureMap.fetchAll();<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    if (procIter != null) loader.handleCorrupted(procIter);<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 loadProcedure(final ProcedureWALEntry entry, final ProcedureProtos.Procedure proc) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    maxProcId = Math.max(maxProcId, proc.getProcId());<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    if (isRequired(proc.getProcId())) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      if (LOG.isTraceEnabled()) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        LOG.trace("read " + entry.getType() + " entry " + proc.getProcId());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      localProcedureMap.add(proc);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      tracker.setDeleted(proc.getProcId(), false);<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><a name="line.188"></a>
+<span class="sourceLineNo">189</span>  private void readInitEntry(final ProcedureWALEntry entry)<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      throws IOException {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    assert entry.getProcedureCount() == 1 : "Expected only one procedure";<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  }<a name="line.193"></a>
+<span class="sourceLineNo">194</span><a name="line.194"></a>
+<span class="sourceLineNo">195</span>  private void readInsertEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    assert entry.getProcedureCount() &gt;= 1 : "Expected one or more procedures";<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    for (int i = 1; i &lt; entry.getProcedureCount(); ++i) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      loadProcedure(entry, entry.getProcedure(i));<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 void readUpdateEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    assert entry.getProcedureCount() == 1 : "Expected only one procedure";<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>  private void readDeleteEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    assert entry.getProcedureCount() == 0 : "Expected no procedures";<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    assert entry.hasProcId() : "expected ProcID";<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    if (LOG.isTraceEnabled()) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      LOG.trace("read delete entry " + entry.getProcId());<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    }<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    maxProcId = Math.max(maxProcId, entry.getProcId());<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    localProcedureMap.remove(entry.getProcId());<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    assert !procedureMap.contains(entry.getProcId());<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    tracker.setDeleted(entry.getProcId(), true);<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>  private boolean isDeleted(final long procId) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    return tracker.isDeleted(procId) == ProcedureStoreTracker.DeleteState.YES;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>  }<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  private boolean isRequired(final long procId) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    return !isDeleted(procId) &amp;&amp; !procedureMap.contains(procId);<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>  // ==========================================================================<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  //  We keep an in-memory map of the procedures sorted by replay order.<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  //  (see the details in the beginning of the file)<a name="line.230"></a>
+<span class="sourceLineNo">231</span>  //                      _______________________________________________<a name="line.231"></a>
+<span class="sourceLineNo">232</span>  //      procedureMap = | A |   | E |   | C |   |   |   |   | G |   |   |<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  //                       D               B<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  //      replayOrderHead = C &lt;-&gt; B &lt;-&gt; E &lt;-&gt; D &lt;-&gt; A &lt;-&gt; G<a name="line.234"></a>
+<span class="sourceLineNo">235</span>  //<a name="line.235"></a>
+<span class="sourceLineNo">236</span>  //  We also have a lazy grouping by "root procedure", and a list of<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  //  unlinked procedure. If after reading all the WALs we have unlinked<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  //  procedures it means that we had a missing WAL or a corruption.<a name="line.238"></a>
+<span class="sourceLineNo">239</span>  //      rootHead = A &lt;-&gt; D &lt;-&gt; G<a name="line.239"></a>
+<span class="sourceLineNo">240</span>  //                 B     E<a name="line.240"></a>
+<span class="sourceLineNo">241</span>  //                 C<a name="line.241"></a>
+<span class="sourceLineNo">242</span>  //      unlinkFromLinkList = None<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  // ==========================================================================<a name="line.243"></a>
+<span class="sourceLineNo">244</span>  private static class Entry {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    // hash-table next<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    protected Entry hashNext;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    // child head<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    protected Entry childHead;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    // double-link for rootHead or childHead<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    protected Entry linkNext;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    protected Entry linkPrev;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    // replay double-linked-list<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    protected Entry replayNext;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    protected Entry replayPrev;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    // procedure-infos<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    protected Procedure procedure;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    protected ProcedureProtos.Procedure proto;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    protected boolean ready = false;<a name="line.258"></a>
+<span class="sourceLineNo">259</span><a name="line.259"></a>
+<span class="sourceLineNo">260</span>    public Entry(Entry hashNext) { this.hashNext = hashNext; }<a name="line.260"></a>
+<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">262</span>    public long getProcId() { return proto.getProcId(); }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    public long getParentId() { return proto.getParentId(); }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    public boolean hasParent() { return proto.hasParentId(); }<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    public boolean isReady() { return ready; }<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>    public boolean isCompleted() {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      if (!hasParent()) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        switch (proto.getState()) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          case ROLLEDBACK:<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            return true;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          case FINISHED:<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            return !proto.hasException();<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          default:<a name="line.274"></a>
+<span class="sourceLineNo">275</span>            break;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      }<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      return false;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>  private static class EntryIterator implements ProcedureIterator {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    private final Entry replayHead;<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    private Entry current;<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>    public EntryIterator(Entry replayHead) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      this.replayHead = replayHead;<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      this.current = replayHead;<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>    @Override<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    public void reset() {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      this.current = replayHead;<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>    @Override<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    public boolean hasNext() {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      return current != null;<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>    @Override<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    public Procedure next() throws IOException {<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      try {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        return current.convert();<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      } finally {<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        current = current.replayNext;<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>  }<a name="line.308"></a>
-<span class="sourceLineNo">309</span><a name="line.309"></a>
-<span class="sourceLineNo">310</span>  private static class WalProcedureMap {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    // procedure hash table<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    private Entry[] procedureMap;<a name="line.312"></a>
-<span class="sourceLineNo">313</span><a name="line.313"></a>
-<span class="sourceLineNo">314</span>    // replay-order double-linked-list<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    private Entry replayOrderHead;<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    private Entry replayOrderTail;<a name="line.316"></a>
-<span class="sourceLineNo">317</span><a name="line.317"></a>
-<span class="sourceLineNo">318</span>    // root linked-list<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    private Entry rootHead;<a name="line.319"></a>
-<span class="sourceLineNo">320</span><a name="line.320"></a>
-<span class="sourceLineNo">321</span>    // pending unlinked children (root not present yet)<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    private Entry childUnlinkedHead;<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span>    // Track ProcId range<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    private long minProcId = Long.MAX_VALUE;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    private long maxProcId = Long.MIN_VALUE;<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>    public WalProcedureMap(int size) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      procedureMap = new Entry[size];<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      replayOrderHead = null;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      replayOrderTail = null;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      rootHead = null;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      childUnlinkedHead = null;<a name="line.333"></a>
+<span class="sourceLineNo">281</span>    public Procedure convert() throws IOException {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      if (procedure == null) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        procedure = Procedure.convert(proto);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      return procedure;<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>    public ProcedureInfo convertToInfo() {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      return ProcedureInfo.convert(proto);<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>    @Override<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    public String toString() {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      return "Entry(" + getProcId() + ", parentId=" + getParentId() + ")";<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><a name="line.297"></a>
+<span class="sourceLineNo">298</span>  private static class EntryIterator implements ProcedureIterator {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    private final Entry replayHead;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    private Entry current;<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>    public EntryIterator(Entry replayHead) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      this.replayHead = replayHead;<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      this.current = replayHead;<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>    @Override<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    public void reset() {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      this.current = replayHead;<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>    @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    public boolean hasNext() {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      return current != null;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>    @Override<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    public boolean isNextCompleted() {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      return current != null &amp;&amp; current.isCompleted();<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>    @Override<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    public void skipNext() {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      current = current.replayNext;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    }<a name="line.325"></a>
+<span class="sourceLineNo">326</span><a name="line.326"></a>
+<span class="sourceLineNo">327</span>    @Override<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    public Procedure nextAsProcedure() throws IOException {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      try {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        return current.convert();<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      } finally {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        current = current.replayNext;<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><a name="line.335"></a>
-<span class="sourceLineNo">336</span>    public void add(ProcedureProtos.Procedure procProto) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      trackProcIds(procProto.getProcId());<a name="line.337"></a>
-<span class="sourceLineNo">338</span>      Entry entry = addToMap(procProto.getProcId(), procProto.hasParentId());<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      boolean isNew = entry.proto == null;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      entry.proto = procProto;<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      addToReplayList(entry);<a name="line.341"></a>
-<span class="sourceLineNo">342</span><a name="line.342"></a>
-<span class="sourceLineNo">343</span>      if (isNew) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>        if (procProto.hasParentId()) {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>          childUnlinkedHead = addToLinkList(entry, childUnlinkedHead);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>        } else {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>          rootHead = addToLinkList(entry, rootHead);<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><a name="line.351"></a>
-<span class="sourceLineNo">352</span>    public boolean remove(long procId) {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      trackProcIds(procId);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      Entry entry = removeFromMap(procId);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      if (entry != null) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>        unlinkFromReplayList(entry);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>        unlinkFromLinkList(entry);<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        return true;<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      }<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      return false;<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>    private void trackProcIds(long procId) {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      minProcId = Math.min(minProcId, procId);<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      maxProcId = Math.max(maxProcId, procId);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    }<a name="line.366"></a>
-<span class="sourceLineNo">367</span><a name="line.367"></a>
-<span class="sourceLineNo">368</span>    public long getMinProcId() {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      return minProcId;<a name="line.369"></a>
+<span class="sourceLineNo">336</span>    @Override<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    public ProcedureInfo nextAsProcedureInfo() {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      try {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>        return current.convertToInfo();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      } finally {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        current = current.replayNext;<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 class WalProcedureMap {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    // procedure hash table<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    private Entry[] procedureMap;<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>    // replay-order double-linked-list<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    private Entry replayOrderHead;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    private Entry replayOrderTail;<a name="line.352"></a>
+<span class="sourceLineNo">353</span><a name="line.353"></a>
+<span class="sourceLineNo">354</span>    // root linked-list<a name="line.354"></a>
+<span class="sourceLineNo">355</span>    private Entry rootHead;<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>    // pending unlinked children (root not present yet)<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    private Entry childUnlinkedHead;<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span>    // Track ProcId range<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    private long minProcId = Long.MAX_VALUE;<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    private long maxProcId = Long.MIN_VALUE;<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span>    public WalProcedureMap(int size) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      procedureMap = new Entry[size];<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      replayOrderHead = null;<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      replayOrderTail = null;<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      rootHead = null;<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      childUnlinkedHead = null;<a name="line.369"></a>
 <span class="sourceLineNo">370</span>    }<a name="line.370"></a>
 <span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>    public long getMaxProcId() {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      return maxProcId;<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>    public boolean contains(long procId) {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      return getProcedure(procId) != null;<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>    public boolean isEmpty() {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      return replayOrderHead == null;<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>    public void clear() {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      for (int i = 0; i &lt; procedureMap.length; ++i) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>        procedureMap[i] = null;<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      }<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      replayOrderHead = null;<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      replayOrderTail = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      rootHead = null;<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      childUnlinkedHead = null;<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      minProcId = Long.MAX_VALUE;<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      maxProcId = Long.MIN_VALUE;<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>     * Merges two WalProcedureMap,<a name="line.397"></a>
-<span class="sourceLineNo">398</span>     * the target is the "global" map, the source is the "local" map.<a name="line.398"></a>
-<span class="sourceLineNo">399</span>     *  - The entries in the hashtables are guaranteed to be unique.<a name="line.399"></a>
-<span class="sourceLineNo">400</span>     *    On replay we don't load procedures that already exist in the "global"<a name="line.400"></a>
-<span class="sourceLineNo">401</span>     *    map (the one we are merging the "local" in to).<a name="line.401"></a>
-<span class="sourceLineNo">402</span>     *  - The replayOrderList of the "local" nao will be appended to the "global"<a name="line.402"></a>
-<span class="sourceLineNo">403</span>     *    map replay list.<a name="line.403"></a>
-<span class="sourceLineNo">404</span>     *  - The "local" map will be cleared at the end of the operation.<a name="line.404"></a>
-<span class="sourceLineNo">405</span>     */<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    public void mergeTail(WalProcedureMap other) {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      for (Entry p = other.replayOrderHead; p != null; p = p.replayNext) {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>        int slotIndex = getMapSlot(p.getProcId());<a name="line.408"></a>
-<span class="sourceLineNo">409</span>        p.hashNext = procedureMap[slotIndex];<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        procedureMap[slotIndex] = p;<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      }<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>      if (replayOrderHead == null) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>        replayOrderHead = other.replayOrderHead;<a name="line.414"></a>
-<span class="sourceLineNo">415</span>        replayOrderTail = other.replayOrderTail;<a name="line.415"></a>
-<span class="sourceLineNo">416</span>        rootHead = other.rootHead;<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        childUnlinkedHead = other.childUnlinkedHead;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      } else {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>        // append replay list<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        assert replayOrderTail.replayNext == null;<a name="line.420"></a>
-<span class="sourceLineNo">421</span>        assert other.replayOrderHead.replayPrev == null;<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        replayOrderTail.replayNext = other.replayOrderHead;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>        other.replayOrderHead.replayPrev = replayOrderTail;<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        replayOrderTail = other.replayOrderTail;<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>        // merge rootHead<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        if (rootHead == null) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>          rootHead = other.rootHead;<a name="line.428"></a>
-<span class="sourceLineNo">429</span>        } else if (other.rootHead != null) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span>          Entry otherTail = findLinkListTail(other.rootHead);<a name="line.430"></a>
-<span class="sourceLineNo">431</span>          otherTail.linkNext = rootHead;<a name="line.431"></a>
-<span class="sourceLineNo">432</span>          rootHead.linkPrev = otherTail;<a name="line.432"></a>
-<span class="sourceLineNo">433</span>          rootHead = other.rootHead;<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>        // merge childUnlinkedHead<a name="line.436"></a>
-<span class="sourceLineNo">437</span>        if (childUnlinkedHead == null) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>          childUnlinkedHead = other.childUnlinkedHead;<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        } else if (other.childUnlinkedHead != null) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          Entry otherTail = findLinkListTail(other.childUnlinkedHead);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          otherTail.linkNext = childUnlinkedHead;<a name="line.441"></a>
-<span class="sourceLineNo">442</span>          childUnlinkedHead.linkPrev = otherTail;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>          childUnlinkedHead = other.childUnlinkedHead;<a name="line.443"></a>
-<span class="sourceLineNo">444</span>        }<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      }<a name="line.445"></a>
-<span class="sourceLineNo">446</span><a name="line.446"></a>
-<span class="sourceLineNo">447</span>      other.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>     * Returns an EntryIterator with the list of procedures ready<a name="line.451"></a>
-<span class="sourceLineNo">452</span>     * to be added to the executor.<a name="line.452"></a>
-<span class="sourceLineNo">453</span>     * A Procedure is ready if its children and parent are ready.<a name="line.453"></a>
-<span class="sourceLineNo">454</span>     */<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    public EntryIterator fetchReady() {<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      buildGraph();<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>      Entry readyHead = null;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      Entry readyTail = null;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      Entry p = replayOrderHead;<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      while (p != null) {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>        Entry next = p.replayNext;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>        if (p.isReady()) {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>          unlinkFromReplayList(p);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>          if (readyTail != null) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>            readyTail.replayNext = p;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>            p.replayPrev = readyTail;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>          } else {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>            p.replayPrev = null;<a name="line.469"></a>
-<span class="sourceLineNo">470</span>            readyHead = p;<a name="line.470"></a>
-<span class="sourceLineNo">471</span>          }<a name="line.471"></a>
-<span class="sourceLineNo">472</span>          readyTail = p;<a name="line.472"></a>
-<span class="sourceLineNo">473</span>          p.replayNext = null;<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        }<a name="line.474"></a>
-<span class="sourceLineNo">475</span>        p = next;<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      }<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      // we need the hash-table lookups for parents, so this must be done<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      // out of the loop where we check isReadyToRun()<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      for (p = readyHead; p != null; p = p.replayNext) {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        removeFromMap(p.getProcId());<a name="line.480"></a>
-<span class="sourceLineNo">481</span>        unlinkFromLinkList(p);<a name="line.481"></a>
-<span class="sourceLineNo">482</span>      }<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      return readyHead != null ? new EntryIterator(readyHead) : null;<a name="line.483"></a>
+<span class="sourceLineNo">372</span>    public void add(ProcedureProtos.Procedure procProto) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      trackProcIds(procProto.getProcId());<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      Entry entry = addToMap(procProto.getProcId(), procProto.hasParentId());<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      boolean isNew = entry.proto == null;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      entry.proto = procProto;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      addToReplayList(entry);<a name="line.377"></a>
+<span class="sourceLineNo">378</span><a name="line.378"></a>
+<span class="sourceLineNo">379</span>      if (isNew) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        if (procProto.hasParentId()) {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>          childUnlinkedHead = addToLinkList(entry, childUnlinkedHead);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        } else {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>          rootHead = addToLinkList(entry, rootHead);<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><a name="line.387"></a>
+<span class="sourceLineNo">388</span>    public boolean remove(long procId) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      trackProcIds(procId);<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      Entry entry = removeFromMap(procId);<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      if (entry != null) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        unlinkFromReplayList(entry);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        unlinkFromLinkList(entry);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        return true;<a name="line.394"></a>
+<span class="sourceLineNo">395</span>      }<a name="line.395"></a>
+<span class="sourceLineNo">396</span>      return false;<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>    private void trackProcIds(long procId) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>      minProcId = Math.min(minProcId, procId);<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      maxProcId = Math.max(maxProcId, procId);<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    }<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>    public long getMinProcId() {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      return minProcId;<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>    public long getMaxProcId() {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>      return maxProcId;<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>    public boolean contains(long procId) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      return getProcedure(procId) != null;<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 isEmpty() {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>      return replayOrderHead == null;<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>    public void clear() {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      for (int i = 0; i &lt; procedureMap.length; ++i) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        procedureMap[i] = null;<a name="line.422"></a>
+<span class="sourceLineNo">423</span>      }<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      replayOrderHead = null;<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      replayOrderTail = null;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      rootHead = null;<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      childUnlinkedHead = null;<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      minProcId = Long.MAX_VALUE;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      maxProcId = Long.MIN_VALUE;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    }<a name="line.430"></a>
+<span class="sourceLineNo">431</span><a name="line.431"></a>
+<span class="sourceLineNo">432</span>    /*<a name="line.432"></a>
+<span class="sourceLineNo">433</span>     * Merges two WalProcedureMap,<a name="line.433"></a>
+<span class="sourceLineNo">434</span>     * the target is the "global" map, the source is the "local" map.<a name="line.434"></a>
+<span class="sourceLineNo">435</span>     *  - The entries in the hashtables are guaranteed to be unique.<a name="line.435"></a>
+<span class="sourceLineNo">436</span>     *    On replay we don't load procedures that already exist in the "global"<a name="line.436"></a>
+<span class="sourceLineNo">437</span>     *    map (the one we are merging the "local" in to).<a name="line.437"></a>
+<span class="sourceLineNo">438</span>     *  - The replayOrderList of the "local" nao will be appended to the "global"<a name="line.438"></a>
+<span class="sourceLineNo">439</span>     *    map replay list.<a name="line.439"></a>
+<span class="sourceLineNo">440</span>     *  - The "local" map will be cleared at the end of the operation.<a name="line.440"></a>
+<span class="sourceLineNo">441</span>     */<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    public void mergeTail(WalProcedureMap other) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      for (Entry p = other.replayOrderHead; p != null; p = p.replayNext) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        int slotIndex = getMapSlot(p.getProcId());<a name="line.444"></a>
+<span class="sourceLineNo">445</span>        p.hashNext = procedureMap[slotIndex];<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        procedureMap[slotIndex] = p;<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>      if (replayOrderHead == null) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        replayOrderHead = other.replayOrderHead;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>        replayOrderTail = other.replayOrderTail;<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        rootHead = other.rootHead;<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        childUnlinkedHead = other.childUnlinkedHead;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        // append replay list<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        assert replayOrderTail.replayNext == null;<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        assert other.replayOrderHead.replayPrev == null;<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        replayOrderTail.replayNext = other.replayOrderHead;<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        other.replayOrderHead.replayPrev = replayOrderTail;<a name="line.459"></a>
+<span class="sourceLineNo">460</span>        replayOrderTail = other.replayOrderTail;<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>        // merge rootHead<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        if (rootHead == null) {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>          rootHead = other.rootHead;<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        } else if (other.rootHead != null) {<a name="line.465"></a>
+<span class="sourceLineNo">466</span>          Entry otherTail = findLinkListTail(other.rootHead);<a name="line.466"></a>
+<span class="sourceLineNo">467</span>          otherTail.linkNext = rootHead;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>          rootHead.linkPrev = otherTail;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>          rootHead = other.rootHead;<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>        // merge childUnlinkedHead<a name="line.472"></a>
+<span class="sourceLineNo">473</span>        if (childUnlinkedHead == null) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>          childUnlinkedHead = other.childUnlinkedHead;<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        } else if (other.childUnlinkedHead != null) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>          Entry otherTail = findLinkListTail(other.childUnlinkedHead);<a name="line.476"></a>
+<span class="sourceLineNo">477</span>          otherTail.linkNext = childUnlinkedHead;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>          childUnlinkedHead.linkPrev = otherTail;<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      

<TRUNCATED>

[07/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html
index 0ba2dff..3541594 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html
@@ -30,683 +30,719 @@
 <span class="sourceLineNo">022</span><a name="line.22"></a>
 <span class="sourceLineNo">023</span>import org.apache.commons.logging.Log;<a name="line.23"></a>
 <span class="sourceLineNo">024</span>import org.apache.commons.logging.LogFactory;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.fs.FSDataInputStream;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStoreTracker;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore.ProcedureIterator;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry;<a name="line.32"></a>
-<span class="sourceLineNo">033</span><a name="line.33"></a>
-<span class="sourceLineNo">034</span>/**<a name="line.34"></a>
-<span class="sourceLineNo">035</span> * Helper class that loads the procedures stored in a WAL<a name="line.35"></a>
-<span class="sourceLineNo">036</span> */<a name="line.36"></a>
-<span class="sourceLineNo">037</span>@InterfaceAudience.Private<a name="line.37"></a>
-<span class="sourceLineNo">038</span>@InterfaceStability.Evolving<a name="line.38"></a>
-<span class="sourceLineNo">039</span>public class ProcedureWALFormatReader {<a name="line.39"></a>
-<span class="sourceLineNo">040</span>  private static final Log LOG = LogFactory.getLog(ProcedureWALFormatReader.class);<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>  // ==============================================================================================<a name="line.42"></a>
-<span class="sourceLineNo">043</span>  //  We read the WALs in reverse order. from the newest to the oldest.<a name="line.43"></a>
-<span class="sourceLineNo">044</span>  //  We have different entry types:<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  //   - INIT: Procedure submitted by the user (also known as 'root procedure')<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  //   - INSERT: Children added to the procedure &lt;parentId&gt;:[&lt;childId&gt;, ...]<a name="line.46"></a>
-<span class="sourceLineNo">047</span>  //   - UPDATE: The specified procedure was updated<a name="line.47"></a>
-<span class="sourceLineNo">048</span>  //   - DELETE: The procedure was removed (completed/rolledback and result TTL expired)<a name="line.48"></a>
-<span class="sourceLineNo">049</span>  //<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  // In the WAL we can find multiple times the same procedure as UPDATE or INSERT.<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  // We read the WAL from top to bottom, so every time we find an entry of the<a name="line.51"></a>
-<span class="sourceLineNo">052</span>  // same procedure, that will be the "latest" update.<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  //<a name="line.53"></a>
-<span class="sourceLineNo">054</span>  // We keep two in-memory maps:<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  //  - localProcedureMap: is the map containing the entries in the WAL we are processing<a name="line.55"></a>
-<span class="sourceLineNo">056</span>  //  - procedureMap: is the map containing all the procedures we found up to the WAL in process.<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  // localProcedureMap is merged with the procedureMap once we reach the WAL EOF.<a name="line.57"></a>
-<span class="sourceLineNo">058</span>  //<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  // Since we are reading the WALs in reverse order (newest to oldest),<a name="line.59"></a>
-<span class="sourceLineNo">060</span>  // if we find an entry related to a procedure we already have in 'procedureMap' we can discard it.<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  //<a name="line.61"></a>
-<span class="sourceLineNo">062</span>  // The WAL is append-only so the last procedure in the WAL is the one that<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  // was in execution at the time we crashed/closed the server.<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  // given that, the procedure replay order can be inferred by the WAL order.<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  //<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  // Example:<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  //    WAL-2: [A, B, A, C, D]<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  //    WAL-1: [F, G, A, F, B]<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  //    Replay-Order: [D, C, A, B, F, G]<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  //<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  // The "localProcedureMap" keeps a "replayOrder" list. Every time we add the<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  // record to the map that record is moved to the head of the "replayOrder" list.<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  // Using the example above:<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  //    WAL-2 localProcedureMap.replayOrder is [D, C, A, B]<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  //    WAL-1 localProcedureMap.replayOrder is [F, G]<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  //<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  // each time we reach the WAL-EOF, the "replayOrder" list is merged/appended in 'procedureMap'<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  // so using the example above we end up with: [D, C, A, B] + [F, G] as replay order.<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  //<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  //  Fast Start: INIT/INSERT record and StackIDs<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  // ---------------------------------------------<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  // We have to special record, INIT and INSERT that tracks the first time<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  // the procedure was added to the WAL. We can use that information to be able<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  // to start procedures before reaching the end of the WAL, or before reading all the WALs.<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  // but in some cases the WAL with that record can be already gone.<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  // In alternative we can use the stackIds on each procedure,<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  // to identify when a procedure is ready to start.<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  // If there are gaps in the sum of the stackIds we need to read more WALs.<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  //<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  // Example (all procs child of A):<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  //   WAL-2: [A, B]                   A stackIds = [0, 4], B stackIds = [1, 5]<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  //   WAL-1: [A, B, C, D]<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  //<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  // In the case above we need to read one more WAL to be able to consider<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  // the root procedure A and all children as ready.<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  // ==============================================================================================<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  private final WalProcedureMap localProcedureMap = new WalProcedureMap(1024);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  private final WalProcedureMap procedureMap = new WalProcedureMap(1024);<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>  //private long compactionLogId;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  private long maxProcId = 0;<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>  private final ProcedureStoreTracker tracker;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>  private final boolean hasFastStartSupport;<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public ProcedureWALFormatReader(final ProcedureStoreTracker tracker) {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    this.tracker = tracker;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    // we support fast-start only if we have a clean shutdown.<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    this.hasFastStartSupport = !tracker.isEmpty();<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>  public void read(ProcedureWALFile log, ProcedureWALFormat.Loader loader) throws IOException {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    FSDataInputStream stream = log.getStream();<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    try {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      boolean hasMore = true;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      while (hasMore) {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>        ProcedureWALEntry entry = ProcedureWALFormat.readEntry(stream);<a name="line.117"></a>
-<span class="sourceLineNo">118</span>        if (entry == null) {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>          LOG.warn("nothing left to decode. exiting with missing EOF");<a name="line.119"></a>
-<span class="sourceLineNo">120</span>          hasMore = false;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>          break;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>        switch (entry.getType()) {<a name="line.123"></a>
-<span class="sourceLineNo">124</span>          case PROCEDURE_WAL_INIT:<a name="line.124"></a>
-<span class="sourceLineNo">125</span>            readInitEntry(entry);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>            break;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>          case PROCEDURE_WAL_INSERT:<a name="line.127"></a>
-<span class="sourceLineNo">128</span>            readInsertEntry(entry);<a name="line.128"></a>
-<span class="sourceLineNo">129</span>            break;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>          case PROCEDURE_WAL_UPDATE:<a name="line.130"></a>
-<span class="sourceLineNo">131</span>          case PROCEDURE_WAL_COMPACT:<a name="line.131"></a>
-<span class="sourceLineNo">132</span>            readUpdateEntry(entry);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>            break;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>          case PROCEDURE_WAL_DELETE:<a name="line.134"></a>
-<span class="sourceLineNo">135</span>            readDeleteEntry(entry);<a name="line.135"></a>
-<span class="sourceLineNo">136</span>            break;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>          case PROCEDURE_WAL_EOF:<a name="line.137"></a>
-<span class="sourceLineNo">138</span>            hasMore = false;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>            break;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>          default:<a name="line.140"></a>
-<span class="sourceLineNo">141</span>            throw new CorruptedWALProcedureStoreException("Invalid entry: " + entry);<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>    } catch (IOException e) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      LOG.error("got an exception while reading the procedure WAL: " + log, e);<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      loader.markCorruptedWAL(log, e);<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>    if (localProcedureMap.isEmpty()) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      LOG.info("No active entry found in state log " + log + ". removing it");<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      loader.removeLog(log);<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    } else {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      log.setProcIds(localProcedureMap.getMinProcId(), localProcedureMap.getMaxProcId());<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      procedureMap.mergeTail(localProcedureMap);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      //if (hasFastStartSupport) {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>        // TODO: Some procedure may be already runnables (see readInitEntry())<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        //       (we can also check the "update map" in the log trackers)<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        // --------------------------------------------------<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        //EntryIterator iter = procedureMap.fetchReady();<a name="line.159"></a>
-<span class="sourceLineNo">160</span>        //if (iter != null) loader.load(iter);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        // --------------------------------------------------<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      //}<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    }<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  }<a name="line.164"></a>
-<span class="sourceLineNo">165</span><a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public void finalize(ProcedureWALFormat.Loader loader) throws IOException {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    // notify the loader about the max proc ID<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    loader.setMaxProcId(maxProcId);<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>    // fetch the procedure ready to run.<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    ProcedureIterator procIter = procedureMap.fetchReady();<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    if (procIter != null) loader.load(procIter);<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span>    // remaining procedures have missing link or dependencies<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    // consider them as corrupted, manual fix is probably required.<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    procIter = procedureMap.fetchAll();<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    if (procIter != null) loader.handleCorrupted(procIter);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>  private void loadProcedure(final ProcedureWALEntry entry, final ProcedureProtos.Procedure proc) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    maxProcId = Math.max(maxProcId, proc.getProcId());<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    if (isRequired(proc.getProcId())) {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      if (LOG.isTraceEnabled()) {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>        LOG.trace("read " + entry.getType() + " entry " + proc.getProcId());<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      }<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      localProcedureMap.add(proc);<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      tracker.setDeleted(proc.getProcId(), false);<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    }<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  }<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private void readInitEntry(final ProcedureWALEntry entry)<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      throws IOException {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    assert entry.getProcedureCount() == 1 : "Expected only one procedure";<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  }<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private void readInsertEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    assert entry.getProcedureCount() &gt;= 1 : "Expected one or more procedures";<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    for (int i = 1; i &lt; entry.getProcedureCount(); ++i) {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      loadProcedure(entry, entry.getProcedure(i));<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>  private void readUpdateEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    assert entry.getProcedureCount() == 1 : "Expected only one procedure";<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  }<a name="line.208"></a>
-<span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span>  private void readDeleteEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    assert entry.getProcedureCount() == 0 : "Expected no procedures";<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    assert entry.hasProcId() : "expected ProcID";<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    if (LOG.isTraceEnabled()) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      LOG.trace("read delete entry " + entry.getProcId());<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    }<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    maxProcId = Math.max(maxProcId, entry.getProcId());<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    localProcedureMap.remove(entry.getProcId());<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    tracker.setDeleted(entry.getProcId(), true);<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 boolean isDeleted(final long procId) {<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    return tracker.isDeleted(procId) == ProcedureStoreTracker.DeleteState.YES;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  }<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  private boolean isRequired(final long procId) {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    return !isDeleted(procId) &amp;&amp; !procedureMap.contains(procId);<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>  // ==========================================================================<a name="line.229"></a>
-<span class="sourceLineNo">230</span>  //  We keep an in-memory map of the procedures sorted by replay order.<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  //  (see the details in the beginning of the file)<a name="line.231"></a>
-<span class="sourceLineNo">232</span>  //                      _______________________________________________<a name="line.232"></a>
-<span class="sourceLineNo">233</span>  //      procedureMap = | A |   | E |   | C |   |   |   |   | G |   |   |<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  //                       D               B<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  //      replayOrderHead = C &lt;-&gt; B &lt;-&gt; E &lt;-&gt; D &lt;-&gt; A &lt;-&gt; G<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  //<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  //  We also have a lazy grouping by "root procedure", and a list of<a name="line.237"></a>
-<span class="sourceLineNo">238</span>  //  unlinked procedure. If after reading all the WALs we have unlinked<a name="line.238"></a>
-<span class="sourceLineNo">239</span>  //  procedures it means that we had a missing WAL or a corruption.<a name="line.239"></a>
-<span class="sourceLineNo">240</span>  //      rootHead = A &lt;-&gt; D &lt;-&gt; G<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  //                 B     E<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  //                 C<a name="line.242"></a>
-<span class="sourceLineNo">243</span>  //      unlinkFromLinkList = None<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  // ==========================================================================<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  private static class Entry {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    // hash-table next<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    protected Entry hashNext;<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    // child head<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    protected Entry childHead;<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    // double-link for rootHead or childHead<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    protected Entry linkNext;<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    protected Entry linkPrev;<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    // replay double-linked-list<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    protected Entry replayNext;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    protected Entry replayPrev;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    // procedure-infos<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    protected Procedure procedure;<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    protected ProcedureProtos.Procedure proto;<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    protected boolean ready = false;<a name="line.259"></a>
-<span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>    public Entry(Entry hashNext) { this.hashNext = hashNext; }<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>    public long getProcId() { return proto.getProcId(); }<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    public long getParentId() { return proto.getParentId(); }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    public boolean hasParent() { return proto.hasParentId(); }<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    public boolean isReady() { return ready; }<a name="line.266"></a>
-<span class="sourceLineNo">267</span><a name="line.267"></a>
-<span class="sourceLineNo">268</span>    public Procedure convert() throws IOException {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      if (procedure == null) {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>        procedure = Procedure.convert(proto);<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      }<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      return procedure;<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>    @Override<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    public String toString() {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      return "Entry(" + getProcId() + ", parentId=" + getParentId() + ")";<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">025</span>import org.apache.hadoop.fs.FSDataInputStream;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStoreTracker;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore.ProcedureIterator;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry;<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>/**<a name="line.35"></a>
+<span class="sourceLineNo">036</span> * Helper class that loads the procedures stored in a WAL<a name="line.36"></a>
+<span class="sourceLineNo">037</span> */<a name="line.37"></a>
+<span class="sourceLineNo">038</span>@InterfaceAudience.Private<a name="line.38"></a>
+<span class="sourceLineNo">039</span>@InterfaceStability.Evolving<a name="line.39"></a>
+<span class="sourceLineNo">040</span>public class ProcedureWALFormatReader {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  private static final Log LOG = LogFactory.getLog(ProcedureWALFormatReader.class);<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>  // ==============================================================================================<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  //  We read the WALs in reverse order. from the newest to the oldest.<a name="line.44"></a>
+<span class="sourceLineNo">045</span>  //  We have different entry types:<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  //   - INIT: Procedure submitted by the user (also known as 'root procedure')<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  //   - INSERT: Children added to the procedure &lt;parentId&gt;:[&lt;childId&gt;, ...]<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  //   - UPDATE: The specified procedure was updated<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  //   - DELETE: The procedure was removed (completed/rolledback and result TTL expired)<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  //<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  // In the WAL we can find multiple times the same procedure as UPDATE or INSERT.<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  // We read the WAL from top to bottom, so every time we find an entry of the<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  // same procedure, that will be the "latest" update.<a name="line.53"></a>
+<span class="sourceLineNo">054</span>  //<a name="line.54"></a>
+<span class="sourceLineNo">055</span>  // We keep two in-memory maps:<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  //  - localProcedureMap: is the map containing the entries in the WAL we are processing<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  //  - procedureMap: is the map containing all the procedures we found up to the WAL in process.<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  // localProcedureMap is merged with the procedureMap once we reach the WAL EOF.<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  //<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  // Since we are reading the WALs in reverse order (newest to oldest),<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  // if we find an entry related to a procedure we already have in 'procedureMap' we can discard it.<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  //<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  // The WAL is append-only so the last procedure in the WAL is the one that<a name="line.63"></a>
+<span class="sourceLineNo">064</span>  // was in execution at the time we crashed/closed the server.<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  // given that, the procedure replay order can be inferred by the WAL order.<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  //<a name="line.66"></a>
+<span class="sourceLineNo">067</span>  // Example:<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  //    WAL-2: [A, B, A, C, D]<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  //    WAL-1: [F, G, A, F, B]<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  //    Replay-Order: [D, C, A, B, F, G]<a name="line.70"></a>
+<span class="sourceLineNo">071</span>  //<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  // The "localProcedureMap" keeps a "replayOrder" list. Every time we add the<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  // record to the map that record is moved to the head of the "replayOrder" list.<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  // Using the example above:<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  //    WAL-2 localProcedureMap.replayOrder is [D, C, A, B]<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  //    WAL-1 localProcedureMap.replayOrder is [F, G]<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  //<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  // each time we reach the WAL-EOF, the "replayOrder" list is merged/appended in 'procedureMap'<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  // so using the example above we end up with: [D, C, A, B] + [F, G] as replay order.<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  //<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  //  Fast Start: INIT/INSERT record and StackIDs<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  // ---------------------------------------------<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  // We have two special record, INIT and INSERT that tracks the first time<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  // the procedure was added to the WAL. We can use that information to be able<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  // to start procedures before reaching the end of the WAL, or before reading all the WALs.<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  // but in some cases the WAL with that record can be already gone.<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  // In alternative we can use the stackIds on each procedure,<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  // to identify when a procedure is ready to start.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  // If there are gaps in the sum of the stackIds we need to read more WALs.<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  //<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  // Example (all procs child of A):<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  //   WAL-2: [A, B]                   A stackIds = [0, 4], B stackIds = [1, 5]<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  //   WAL-1: [A, B, C, D]<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  //<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  // In the case above we need to read one more WAL to be able to consider<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  // the root procedure A and all children as ready.<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  // ==============================================================================================<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  private final WalProcedureMap localProcedureMap = new WalProcedureMap(1024);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  private final WalProcedureMap procedureMap = new WalProcedureMap(1024);<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>  //private long compactionLogId;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  private long maxProcId = 0;<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  private final ProcedureStoreTracker tracker;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  private final boolean hasFastStartSupport;<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>  public ProcedureWALFormatReader(final ProcedureStoreTracker tracker) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    this.tracker = tracker;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    // we support fast-start only if we have a clean shutdown.<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    this.hasFastStartSupport = !tracker.isEmpty();<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>  public void read(ProcedureWALFile log, ProcedureWALFormat.Loader loader) throws IOException {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    FSDataInputStream stream = log.getStream();<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    try {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      boolean hasMore = true;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      while (hasMore) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        ProcedureWALEntry entry = ProcedureWALFormat.readEntry(stream);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        if (entry == null) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>          LOG.warn("nothing left to decode. exiting with missing EOF");<a name="line.120"></a>
+<span class="sourceLineNo">121</span>          hasMore = false;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>          break;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        switch (entry.getType()) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>          case PROCEDURE_WAL_INIT:<a name="line.125"></a>
+<span class="sourceLineNo">126</span>            readInitEntry(entry);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>            break;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>          case PROCEDURE_WAL_INSERT:<a name="line.128"></a>
+<span class="sourceLineNo">129</span>            readInsertEntry(entry);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>            break;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>          case PROCEDURE_WAL_UPDATE:<a name="line.131"></a>
+<span class="sourceLineNo">132</span>          case PROCEDURE_WAL_COMPACT:<a name="line.132"></a>
+<span class="sourceLineNo">133</span>            readUpdateEntry(entry);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>            break;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>          case PROCEDURE_WAL_DELETE:<a name="line.135"></a>
+<span class="sourceLineNo">136</span>            readDeleteEntry(entry);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>            break;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>          case PROCEDURE_WAL_EOF:<a name="line.138"></a>
+<span class="sourceLineNo">139</span>            hasMore = false;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>            break;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>          default:<a name="line.141"></a>
+<span class="sourceLineNo">142</span>            throw new CorruptedWALProcedureStoreException("Invalid entry: " + entry);<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 (IOException e) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      LOG.error("got an exception while reading the procedure WAL: " + log, e);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      loader.markCorruptedWAL(log, e);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    }<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    if (!localProcedureMap.isEmpty()) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      log.setProcIds(localProcedureMap.getMinProcId(), localProcedureMap.getMaxProcId());<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      procedureMap.mergeTail(localProcedureMap);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      //if (hasFastStartSupport) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        // TODO: Some procedure may be already runnables (see readInitEntry())<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        //       (we can also check the "update map" in the log trackers)<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        // --------------------------------------------------<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        //EntryIterator iter = procedureMap.fetchReady();<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        //if (iter != null) loader.load(iter);<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">162</span>  }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>  public void finalize(ProcedureWALFormat.Loader loader) throws IOException {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    // notify the loader about the max proc ID<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    loader.setMaxProcId(maxProcId);<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>    // fetch the procedure ready to run.<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    ProcedureIterator procIter = procedureMap.fetchReady();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    if (procIter != null) loader.load(procIter);<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>    // remaining procedures have missing link or dependencies<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    // consider them as corrupted, manual fix is probably required.<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    procIter = procedureMap.fetchAll();<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    if (procIter != null) loader.handleCorrupted(procIter);<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 loadProcedure(final ProcedureWALEntry entry, final ProcedureProtos.Procedure proc) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    maxProcId = Math.max(maxProcId, proc.getProcId());<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    if (isRequired(proc.getProcId())) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      if (LOG.isTraceEnabled()) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        LOG.trace("read " + entry.getType() + " entry " + proc.getProcId());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      localProcedureMap.add(proc);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      tracker.setDeleted(proc.getProcId(), false);<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><a name="line.188"></a>
+<span class="sourceLineNo">189</span>  private void readInitEntry(final ProcedureWALEntry entry)<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      throws IOException {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    assert entry.getProcedureCount() == 1 : "Expected only one procedure";<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  }<a name="line.193"></a>
+<span class="sourceLineNo">194</span><a name="line.194"></a>
+<span class="sourceLineNo">195</span>  private void readInsertEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    assert entry.getProcedureCount() &gt;= 1 : "Expected one or more procedures";<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    for (int i = 1; i &lt; entry.getProcedureCount(); ++i) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      loadProcedure(entry, entry.getProcedure(i));<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 void readUpdateEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    assert entry.getProcedureCount() == 1 : "Expected only one procedure";<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>  private void readDeleteEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    assert entry.getProcedureCount() == 0 : "Expected no procedures";<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    assert entry.hasProcId() : "expected ProcID";<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    if (LOG.isTraceEnabled()) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      LOG.trace("read delete entry " + entry.getProcId());<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    }<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    maxProcId = Math.max(maxProcId, entry.getProcId());<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    localProcedureMap.remove(entry.getProcId());<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    assert !procedureMap.contains(entry.getProcId());<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    tracker.setDeleted(entry.getProcId(), true);<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>  private boolean isDeleted(final long procId) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    return tracker.isDeleted(procId) == ProcedureStoreTracker.DeleteState.YES;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>  }<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  private boolean isRequired(final long procId) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    return !isDeleted(procId) &amp;&amp; !procedureMap.contains(procId);<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>  // ==========================================================================<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  //  We keep an in-memory map of the procedures sorted by replay order.<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  //  (see the details in the beginning of the file)<a name="line.230"></a>
+<span class="sourceLineNo">231</span>  //                      _______________________________________________<a name="line.231"></a>
+<span class="sourceLineNo">232</span>  //      procedureMap = | A |   | E |   | C |   |   |   |   | G |   |   |<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  //                       D               B<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  //      replayOrderHead = C &lt;-&gt; B &lt;-&gt; E &lt;-&gt; D &lt;-&gt; A &lt;-&gt; G<a name="line.234"></a>
+<span class="sourceLineNo">235</span>  //<a name="line.235"></a>
+<span class="sourceLineNo">236</span>  //  We also have a lazy grouping by "root procedure", and a list of<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  //  unlinked procedure. If after reading all the WALs we have unlinked<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  //  procedures it means that we had a missing WAL or a corruption.<a name="line.238"></a>
+<span class="sourceLineNo">239</span>  //      rootHead = A &lt;-&gt; D &lt;-&gt; G<a name="line.239"></a>
+<span class="sourceLineNo">240</span>  //                 B     E<a name="line.240"></a>
+<span class="sourceLineNo">241</span>  //                 C<a name="line.241"></a>
+<span class="sourceLineNo">242</span>  //      unlinkFromLinkList = None<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  // ==========================================================================<a name="line.243"></a>
+<span class="sourceLineNo">244</span>  private static class Entry {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    // hash-table next<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    protected Entry hashNext;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    // child head<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    protected Entry childHead;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    // double-link for rootHead or childHead<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    protected Entry linkNext;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    protected Entry linkPrev;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    // replay double-linked-list<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    protected Entry replayNext;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    protected Entry replayPrev;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    // procedure-infos<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    protected Procedure procedure;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    protected ProcedureProtos.Procedure proto;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    protected boolean ready = false;<a name="line.258"></a>
+<span class="sourceLineNo">259</span><a name="line.259"></a>
+<span class="sourceLineNo">260</span>    public Entry(Entry hashNext) { this.hashNext = hashNext; }<a name="line.260"></a>
+<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">262</span>    public long getProcId() { return proto.getProcId(); }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    public long getParentId() { return proto.getParentId(); }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    public boolean hasParent() { return proto.hasParentId(); }<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    public boolean isReady() { return ready; }<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>    public boolean isCompleted() {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      if (!hasParent()) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        switch (proto.getState()) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          case ROLLEDBACK:<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            return true;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          case FINISHED:<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            return !proto.hasException();<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          default:<a name="line.274"></a>
+<span class="sourceLineNo">275</span>            break;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      }<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      return false;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>  private static class EntryIterator implements ProcedureIterator {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    private final Entry replayHead;<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    private Entry current;<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>    public EntryIterator(Entry replayHead) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      this.replayHead = replayHead;<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      this.current = replayHead;<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>    @Override<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    public void reset() {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      this.current = replayHead;<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>    @Override<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    public boolean hasNext() {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      return current != null;<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>    @Override<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    public Procedure next() throws IOException {<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      try {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        return current.convert();<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      } finally {<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        current = current.replayNext;<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>  }<a name="line.308"></a>
-<span class="sourceLineNo">309</span><a name="line.309"></a>
-<span class="sourceLineNo">310</span>  private static class WalProcedureMap {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    // procedure hash table<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    private Entry[] procedureMap;<a name="line.312"></a>
-<span class="sourceLineNo">313</span><a name="line.313"></a>
-<span class="sourceLineNo">314</span>    // replay-order double-linked-list<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    private Entry replayOrderHead;<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    private Entry replayOrderTail;<a name="line.316"></a>
-<span class="sourceLineNo">317</span><a name="line.317"></a>
-<span class="sourceLineNo">318</span>    // root linked-list<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    private Entry rootHead;<a name="line.319"></a>
-<span class="sourceLineNo">320</span><a name="line.320"></a>
-<span class="sourceLineNo">321</span>    // pending unlinked children (root not present yet)<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    private Entry childUnlinkedHead;<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span>    // Track ProcId range<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    private long minProcId = Long.MAX_VALUE;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    private long maxProcId = Long.MIN_VALUE;<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>    public WalProcedureMap(int size) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      procedureMap = new Entry[size];<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      replayOrderHead = null;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      replayOrderTail = null;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      rootHead = null;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      childUnlinkedHead = null;<a name="line.333"></a>
+<span class="sourceLineNo">281</span>    public Procedure convert() throws IOException {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      if (procedure == null) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        procedure = Procedure.convert(proto);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      return procedure;<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>    public ProcedureInfo convertToInfo() {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      return ProcedureInfo.convert(proto);<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>    @Override<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    public String toString() {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      return "Entry(" + getProcId() + ", parentId=" + getParentId() + ")";<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><a name="line.297"></a>
+<span class="sourceLineNo">298</span>  private static class EntryIterator implements ProcedureIterator {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    private final Entry replayHead;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    private Entry current;<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>    public EntryIterator(Entry replayHead) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      this.replayHead = replayHead;<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      this.current = replayHead;<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>    @Override<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    public void reset() {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      this.current = replayHead;<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>    @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    public boolean hasNext() {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      return current != null;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>    @Override<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    public boolean isNextCompleted() {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      return current != null &amp;&amp; current.isCompleted();<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>    @Override<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    public void skipNext() {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      current = current.replayNext;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    }<a name="line.325"></a>
+<span class="sourceLineNo">326</span><a name="line.326"></a>
+<span class="sourceLineNo">327</span>    @Override<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    public Procedure nextAsProcedure() throws IOException {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      try {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        return current.convert();<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      } finally {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        current = current.replayNext;<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><a name="line.335"></a>
-<span class="sourceLineNo">336</span>    public void add(ProcedureProtos.Procedure procProto) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      trackProcIds(procProto.getProcId());<a name="line.337"></a>
-<span class="sourceLineNo">338</span>      Entry entry = addToMap(procProto.getProcId(), procProto.hasParentId());<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      boolean isNew = entry.proto == null;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      entry.proto = procProto;<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      addToReplayList(entry);<a name="line.341"></a>
-<span class="sourceLineNo">342</span><a name="line.342"></a>
-<span class="sourceLineNo">343</span>      if (isNew) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>        if (procProto.hasParentId()) {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>          childUnlinkedHead = addToLinkList(entry, childUnlinkedHead);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>        } else {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>          rootHead = addToLinkList(entry, rootHead);<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><a name="line.351"></a>
-<span class="sourceLineNo">352</span>    public boolean remove(long procId) {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      trackProcIds(procId);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      Entry entry = removeFromMap(procId);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      if (entry != null) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>        unlinkFromReplayList(entry);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>        unlinkFromLinkList(entry);<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        return true;<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      }<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      return false;<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>    private void trackProcIds(long procId) {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      minProcId = Math.min(minProcId, procId);<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      maxProcId = Math.max(maxProcId, procId);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    }<a name="line.366"></a>
-<span class="sourceLineNo">367</span><a name="line.367"></a>
-<span class="sourceLineNo">368</span>    public long getMinProcId() {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      return minProcId;<a name="line.369"></a>
+<span class="sourceLineNo">336</span>    @Override<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    public ProcedureInfo nextAsProcedureInfo() {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      try {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>        return current.convertToInfo();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      } finally {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        current = current.replayNext;<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 class WalProcedureMap {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    // procedure hash table<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    private Entry[] procedureMap;<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>    // replay-order double-linked-list<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    private Entry replayOrderHead;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    private Entry replayOrderTail;<a name="line.352"></a>
+<span class="sourceLineNo">353</span><a name="line.353"></a>
+<span class="sourceLineNo">354</span>    // root linked-list<a name="line.354"></a>
+<span class="sourceLineNo">355</span>    private Entry rootHead;<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>    // pending unlinked children (root not present yet)<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    private Entry childUnlinkedHead;<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span>    // Track ProcId range<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    private long minProcId = Long.MAX_VALUE;<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    private long maxProcId = Long.MIN_VALUE;<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span>    public WalProcedureMap(int size) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      procedureMap = new Entry[size];<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      replayOrderHead = null;<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      replayOrderTail = null;<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      rootHead = null;<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      childUnlinkedHead = null;<a name="line.369"></a>
 <span class="sourceLineNo">370</span>    }<a name="line.370"></a>
 <span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>    public long getMaxProcId() {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      return maxProcId;<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>    public boolean contains(long procId) {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      return getProcedure(procId) != null;<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>    public boolean isEmpty() {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      return replayOrderHead == null;<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>    public void clear() {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      for (int i = 0; i &lt; procedureMap.length; ++i) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>        procedureMap[i] = null;<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      }<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      replayOrderHead = null;<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      replayOrderTail = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      rootHead = null;<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      childUnlinkedHead = null;<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      minProcId = Long.MAX_VALUE;<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      maxProcId = Long.MIN_VALUE;<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>     * Merges two WalProcedureMap,<a name="line.397"></a>
-<span class="sourceLineNo">398</span>     * the target is the "global" map, the source is the "local" map.<a name="line.398"></a>
-<span class="sourceLineNo">399</span>     *  - The entries in the hashtables are guaranteed to be unique.<a name="line.399"></a>
-<span class="sourceLineNo">400</span>     *    On replay we don't load procedures that already exist in the "global"<a name="line.400"></a>
-<span class="sourceLineNo">401</span>     *    map (the one we are merging the "local" in to).<a name="line.401"></a>
-<span class="sourceLineNo">402</span>     *  - The replayOrderList of the "local" nao will be appended to the "global"<a name="line.402"></a>
-<span class="sourceLineNo">403</span>     *    map replay list.<a name="line.403"></a>
-<span class="sourceLineNo">404</span>     *  - The "local" map will be cleared at the end of the operation.<a name="line.404"></a>
-<span class="sourceLineNo">405</span>     */<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    public void mergeTail(WalProcedureMap other) {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      for (Entry p = other.replayOrderHead; p != null; p = p.replayNext) {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>        int slotIndex = getMapSlot(p.getProcId());<a name="line.408"></a>
-<span class="sourceLineNo">409</span>        p.hashNext = procedureMap[slotIndex];<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        procedureMap[slotIndex] = p;<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      }<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>      if (replayOrderHead == null) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>        replayOrderHead = other.replayOrderHead;<a name="line.414"></a>
-<span class="sourceLineNo">415</span>        replayOrderTail = other.replayOrderTail;<a name="line.415"></a>
-<span class="sourceLineNo">416</span>        rootHead = other.rootHead;<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        childUnlinkedHead = other.childUnlinkedHead;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      } else {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>        // append replay list<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        assert replayOrderTail.replayNext == null;<a name="line.420"></a>
-<span class="sourceLineNo">421</span>        assert other.replayOrderHead.replayPrev == null;<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        replayOrderTail.replayNext = other.replayOrderHead;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>        other.replayOrderHead.replayPrev = replayOrderTail;<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        replayOrderTail = other.replayOrderTail;<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>        // merge rootHead<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        if (rootHead == null) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>          rootHead = other.rootHead;<a name="line.428"></a>
-<span class="sourceLineNo">429</span>        } else if (other.rootHead != null) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span>          Entry otherTail = findLinkListTail(other.rootHead);<a name="line.430"></a>
-<span class="sourceLineNo">431</span>          otherTail.linkNext = rootHead;<a name="line.431"></a>
-<span class="sourceLineNo">432</span>          rootHead.linkPrev = otherTail;<a name="line.432"></a>
-<span class="sourceLineNo">433</span>          rootHead = other.rootHead;<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>        // merge childUnlinkedHead<a name="line.436"></a>
-<span class="sourceLineNo">437</span>        if (childUnlinkedHead == null) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>          childUnlinkedHead = other.childUnlinkedHead;<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        } else if (other.childUnlinkedHead != null) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          Entry otherTail = findLinkListTail(other.childUnlinkedHead);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          otherTail.linkNext = childUnlinkedHead;<a name="line.441"></a>
-<span class="sourceLineNo">442</span>          childUnlinkedHead.linkPrev = otherTail;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>          childUnlinkedHead = other.childUnlinkedHead;<a name="line.443"></a>
-<span class="sourceLineNo">444</span>        }<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      }<a name="line.445"></a>
-<span class="sourceLineNo">446</span><a name="line.446"></a>
-<span class="sourceLineNo">447</span>      other.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>     * Returns an EntryIterator with the list of procedures ready<a name="line.451"></a>
-<span class="sourceLineNo">452</span>     * to be added to the executor.<a name="line.452"></a>
-<span class="sourceLineNo">453</span>     * A Procedure is ready if its children and parent are ready.<a name="line.453"></a>
-<span class="sourceLineNo">454</span>     */<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    public EntryIterator fetchReady() {<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      buildGraph();<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>      Entry readyHead = null;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      Entry readyTail = null;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      Entry p = replayOrderHead;<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      while (p != null) {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>        Entry next = p.replayNext;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>        if (p.isReady()) {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>          unlinkFromReplayList(p);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>          if (readyTail != null) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>            readyTail.replayNext = p;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>            p.replayPrev = readyTail;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>          } else {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>            p.replayPrev = null;<a name="line.469"></a>
-<span class="sourceLineNo">470</span>            readyHead = p;<a name="line.470"></a>
-<span class="sourceLineNo">471</span>          }<a name="line.471"></a>
-<span class="sourceLineNo">472</span>          readyTail = p;<a name="line.472"></a>
-<span class="sourceLineNo">473</span>          p.replayNext = null;<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        }<a name="line.474"></a>
-<span class="sourceLineNo">475</span>        p = next;<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      }<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      // we need the hash-table lookups for parents, so this must be done<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      // out of the loop where we check isReadyToRun()<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      for (p = readyHead; p != null; p = p.replayNext) {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        removeFromMap(p.getProcId());<a name="line.480"></a>
-<span class="sourceLineNo">481</span>        unlinkFromLinkList(p);<a name="line.481"></a>
-<span class="sourceLineNo">482</span>      }<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      return readyHead != null ? new EntryIterator(readyHead) : null;<a name="line.483"></a>
+<span class="sourceLineNo">372</span>    public void add(ProcedureProtos.Procedure procProto) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      trackProcIds(procProto.getProcId());<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      Entry entry = addToMap(procProto.getProcId(), procProto.hasParentId());<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      boolean isNew = entry.proto == null;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      entry.proto = procProto;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      addToReplayList(entry);<a name="line.377"></a>
+<span class="sourceLineNo">378</span><a name="line.378"></a>
+<span class="sourceLineNo">379</span>      if (isNew) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        if (procProto.hasParentId()) {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>          childUnlinkedHead = addToLinkList(entry, childUnlinkedHead);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        } else {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>          rootHead = addToLinkList(entry, rootHead);<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><a name="line.387"></a>
+<span class="sourceLineNo">388</span>    public boolean remove(long procId) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      trackProcIds(procId);<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      Entry entry = removeFromMap(procId);<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      if (entry != null) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        unlinkFromReplayList(entry);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        unlinkFromLinkList(entry);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        return true;<a name="line.394"></a>
+<span class="sourceLineNo">395</span>      }<a name="line.395"></a>
+<span class="sourceLineNo">396</span>      return false;<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>    private void trackProcIds(long procId) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>      minProcId = Math.min(minProcId, procId);<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      maxProcId = Math.max(maxProcId, procId);<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    }<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>    public long getMinProcId() {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      return minProcId;<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>    public long getMaxProcId() {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>      return maxProcId;<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>    public boolean contains(long procId) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      return getProcedure(procId) != null;<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 isEmpty() {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>      return replayOrderHead == null;<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>    public void clear() {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      for (int i = 0; i &lt; procedureMap.length; ++i) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        procedureMap[i] = null;<a name="line.422"></a>
+<span class="sourceLineNo">423</span>      }<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      replayOrderHead = null;<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      replayOrderTail = null;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      rootHead = null;<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      childUnlinkedHead = null;<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      minProcId = Long.MAX_VALUE;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      maxProcId = Long.MIN_VALUE;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    }<a name="line.430"></a>
+<span class="sourceLineNo">431</span><a name="line.431"></a>
+<span class="sourceLineNo">432</span>    /*<a name="line.432"></a>
+<span class="sourceLineNo">433</span>     * Merges two WalProcedureMap,<a name="line.433"></a>
+<span class="sourceLineNo">434</span>     * the target is the "global" map, the source is the "local" map.<a name="line.434"></a>
+<span class="sourceLineNo">435</span>     *  - The entries in the hashtables are guaranteed to be unique.<a name="line.435"></a>
+<span class="sourceLineNo">436</span>     *    On replay we don't load procedures that already exist in the "global"<a name="line.436"></a>
+<span class="sourceLineNo">437</span>     *    map (the one we are merging the "local" in to).<a name="line.437"></a>
+<span class="sourceLineNo">438</span>     *  - The replayOrderList of the "local" nao will be appended to the "global"<a name="line.438"></a>
+<span class="sourceLineNo">439</span>     *    map replay list.<a name="line.439"></a>
+<span class="sourceLineNo">440</span>     *  - The "local" map will be cleared at the end of the operation.<a name="line.440"></a>
+<span class="sourceLineNo">441</span>     */<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    public void mergeTail(WalProcedureMap other) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      for (Entry p = other.replayOrderHead; p != null; p = p.replayNext) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        int slotIndex = getMapSlot(p.getProcId());<a name="line.444"></a>
+<span class="sourceLineNo">445</span>        p.hashNext = procedureMap[slotIndex];<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        procedureMap[slotIndex] = p;<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>      if (replayOrderHead == null) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        replayOrderHead = other.replayOrderHead;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>        replayOrderTail = other.replayOrderTail;<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        rootHead = other.rootHead;<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        childUnlinkedHead = other.childUnlinkedHead;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        // append replay list<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        assert replayOrderTail.replayNext == null;<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        assert other.replayOrderHead.replayPrev == null;<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        replayOrderTail.replayNext = other.replayOrderHead;<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        other.replayOrderHead.replayPrev = replayOrderTail;<a name="line.459"></a>
+<span class="sourceLineNo">460</span>        replayOrderTail = other.replayOrderTail;<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>        // merge rootHead<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        if (rootHead == null) {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>          rootHead = other.rootHead;<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        } else if (other.rootHead != null) {<a name="line.465"></a>
+<span class="sourceLineNo">466</span>          Entry otherTail = findLinkListTail(other.rootHead);<a name="line.466"></a>
+<span class="sourceLineNo">467</span>          otherTail.linkNext = rootHead;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>          rootHead.linkPrev = otherTail;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>          rootHead = other.rootHead;<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>        // merge childUnlinkedHead<a name="line.472"></a>
+<span class="sourceLineNo">473</span>        if (childUnlinkedHead == null) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>          childUnlinkedHead = other.childUnlinkedHead;<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        } else if (other.childUnlinkedHead != null) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>          Entry otherTail = findLinkListTail(other.childUnlinkedHead);<a name="line.476"></a>
+<span class="sourceLineNo">477</span>          otherTail.linkNext = childUnlinkedHead;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>          childUnlinkedHead.linkPrev = otherTail;<a name="line.478"></a>
+<span class="sourceLineNo">479</s

<TRUNCATED>

[25/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html
index b64c029..b4de8ca 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html
@@ -737,426 +737,448 @@
 <span class="sourceLineNo">729</span>    });<a name="line.729"></a>
 <span class="sourceLineNo">730</span>  }<a name="line.730"></a>
 <span class="sourceLineNo">731</span><a name="line.731"></a>
-<span class="sourceLineNo">732</span>  public boolean preBalance() throws IOException {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    return execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.733"></a>
-<span class="sourceLineNo">734</span>      @Override<a name="line.734"></a>
-<span class="sourceLineNo">735</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.735"></a>
-<span class="sourceLineNo">736</span>          throws IOException {<a name="line.736"></a>
-<span class="sourceLineNo">737</span>        oserver.preBalance(ctx);<a name="line.737"></a>
-<span class="sourceLineNo">738</span>      }<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    });<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  }<a name="line.740"></a>
-<span class="sourceLineNo">741</span><a name="line.741"></a>
-<span class="sourceLineNo">742</span>  public void postBalance(final List&lt;RegionPlan&gt; plans) throws IOException {<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.743"></a>
-<span class="sourceLineNo">744</span>      @Override<a name="line.744"></a>
-<span class="sourceLineNo">745</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.745"></a>
-<span class="sourceLineNo">746</span>          throws IOException {<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        oserver.postBalance(ctx, plans);<a name="line.747"></a>
-<span class="sourceLineNo">748</span>      }<a name="line.748"></a>
-<span class="sourceLineNo">749</span>    });<a name="line.749"></a>
-<span class="sourceLineNo">750</span>  }<a name="line.750"></a>
-<span class="sourceLineNo">751</span><a name="line.751"></a>
-<span class="sourceLineNo">752</span>  public boolean preBalanceSwitch(final boolean b) throws IOException {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    return execOperationWithResult(b, coprocessors.isEmpty() ? null :<a name="line.753"></a>
-<span class="sourceLineNo">754</span>        new CoprocessorOperationWithResult&lt;Boolean&gt;() {<a name="line.754"></a>
-<span class="sourceLineNo">755</span>      @Override<a name="line.755"></a>
-<span class="sourceLineNo">756</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          throws IOException {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>        setResult(oserver.preBalanceSwitch(ctx, getResult()));<a name="line.758"></a>
-<span class="sourceLineNo">759</span>      }<a name="line.759"></a>
-<span class="sourceLineNo">760</span>    });<a name="line.760"></a>
-<span class="sourceLineNo">761</span>  }<a name="line.761"></a>
-<span class="sourceLineNo">762</span><a name="line.762"></a>
-<span class="sourceLineNo">763</span>  public void postBalanceSwitch(final boolean oldValue, final boolean newValue)<a name="line.763"></a>
-<span class="sourceLineNo">764</span>      throws IOException {<a name="line.764"></a>
+<span class="sourceLineNo">732</span>  public void preDispatchMerge(final HRegionInfo regionInfoA, final HRegionInfo regionInfoB)<a name="line.732"></a>
+<span class="sourceLineNo">733</span>      throws IOException {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>      @Override<a name="line.735"></a>
+<span class="sourceLineNo">736</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.736"></a>
+<span class="sourceLineNo">737</span>          throws IOException {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>        oserver.preDispatchMerge(ctx, regionInfoA, regionInfoB);<a name="line.738"></a>
+<span class="sourceLineNo">739</span>      }<a name="line.739"></a>
+<span class="sourceLineNo">740</span>    });<a name="line.740"></a>
+<span class="sourceLineNo">741</span>  }<a name="line.741"></a>
+<span class="sourceLineNo">742</span><a name="line.742"></a>
+<span class="sourceLineNo">743</span>  public void postDispatchMerge(final HRegionInfo regionInfoA, final HRegionInfo regionInfoB)<a name="line.743"></a>
+<span class="sourceLineNo">744</span>      throws IOException {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>      @Override<a name="line.746"></a>
+<span class="sourceLineNo">747</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.747"></a>
+<span class="sourceLineNo">748</span>          throws IOException {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>        oserver.postDispatchMerge(ctx, regionInfoA, regionInfoB);<a name="line.749"></a>
+<span class="sourceLineNo">750</span>      }<a name="line.750"></a>
+<span class="sourceLineNo">751</span>    });<a name="line.751"></a>
+<span class="sourceLineNo">752</span>  }<a name="line.752"></a>
+<span class="sourceLineNo">753</span><a name="line.753"></a>
+<span class="sourceLineNo">754</span>  public boolean preBalance() throws IOException {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>    return execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>      @Override<a name="line.756"></a>
+<span class="sourceLineNo">757</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.757"></a>
+<span class="sourceLineNo">758</span>          throws IOException {<a name="line.758"></a>
+<span class="sourceLineNo">759</span>        oserver.preBalance(ctx);<a name="line.759"></a>
+<span class="sourceLineNo">760</span>      }<a name="line.760"></a>
+<span class="sourceLineNo">761</span>    });<a name="line.761"></a>
+<span class="sourceLineNo">762</span>  }<a name="line.762"></a>
+<span class="sourceLineNo">763</span><a name="line.763"></a>
+<span class="sourceLineNo">764</span>  public void postBalance(final List&lt;RegionPlan&gt; plans) throws IOException {<a name="line.764"></a>
 <span class="sourceLineNo">765</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.765"></a>
 <span class="sourceLineNo">766</span>      @Override<a name="line.766"></a>
 <span class="sourceLineNo">767</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.767"></a>
 <span class="sourceLineNo">768</span>          throws IOException {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>        oserver.postBalanceSwitch(ctx, oldValue, newValue);<a name="line.769"></a>
+<span class="sourceLineNo">769</span>        oserver.postBalance(ctx, plans);<a name="line.769"></a>
 <span class="sourceLineNo">770</span>      }<a name="line.770"></a>
 <span class="sourceLineNo">771</span>    });<a name="line.771"></a>
 <span class="sourceLineNo">772</span>  }<a name="line.772"></a>
 <span class="sourceLineNo">773</span><a name="line.773"></a>
-<span class="sourceLineNo">774</span>  public void preShutdown() throws IOException {<a name="line.774"></a>
-<span class="sourceLineNo">775</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.775"></a>
-<span class="sourceLineNo">776</span>      @Override<a name="line.776"></a>
-<span class="sourceLineNo">777</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.777"></a>
-<span class="sourceLineNo">778</span>          throws IOException {<a name="line.778"></a>
-<span class="sourceLineNo">779</span>        oserver.preShutdown(ctx);<a name="line.779"></a>
-<span class="sourceLineNo">780</span>      }<a name="line.780"></a>
-<span class="sourceLineNo">781</span>      @Override<a name="line.781"></a>
-<span class="sourceLineNo">782</span>      public void postEnvCall(MasterEnvironment env) {<a name="line.782"></a>
-<span class="sourceLineNo">783</span>        // invoke coprocessor stop method<a name="line.783"></a>
-<span class="sourceLineNo">784</span>        shutdown(env);<a name="line.784"></a>
-<span class="sourceLineNo">785</span>      }<a name="line.785"></a>
-<span class="sourceLineNo">786</span>    });<a name="line.786"></a>
-<span class="sourceLineNo">787</span>  }<a name="line.787"></a>
-<span class="sourceLineNo">788</span><a name="line.788"></a>
-<span class="sourceLineNo">789</span>  public void preStopMaster() throws IOException {<a name="line.789"></a>
-<span class="sourceLineNo">790</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.790"></a>
-<span class="sourceLineNo">791</span>      @Override<a name="line.791"></a>
-<span class="sourceLineNo">792</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.792"></a>
-<span class="sourceLineNo">793</span>          throws IOException {<a name="line.793"></a>
-<span class="sourceLineNo">794</span>        oserver.preStopMaster(ctx);<a name="line.794"></a>
-<span class="sourceLineNo">795</span>      }<a name="line.795"></a>
-<span class="sourceLineNo">796</span>      @Override<a name="line.796"></a>
-<span class="sourceLineNo">797</span>      public void postEnvCall(MasterEnvironment env) {<a name="line.797"></a>
-<span class="sourceLineNo">798</span>        // invoke coprocessor stop method<a name="line.798"></a>
-<span class="sourceLineNo">799</span>        shutdown(env);<a name="line.799"></a>
-<span class="sourceLineNo">800</span>      }<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    });<a name="line.801"></a>
-<span class="sourceLineNo">802</span>  }<a name="line.802"></a>
-<span class="sourceLineNo">803</span><a name="line.803"></a>
-<span class="sourceLineNo">804</span>  public void preMasterInitialization() throws IOException {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>      @Override<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.807"></a>
-<span class="sourceLineNo">808</span>          throws IOException {<a name="line.808"></a>
-<span class="sourceLineNo">809</span>        oserver.preMasterInitialization(ctx);<a name="line.809"></a>
-<span class="sourceLineNo">810</span>      }<a name="line.810"></a>
-<span class="sourceLineNo">811</span>    });<a name="line.811"></a>
-<span class="sourceLineNo">812</span>  }<a name="line.812"></a>
-<span class="sourceLineNo">813</span><a name="line.813"></a>
-<span class="sourceLineNo">814</span>  public void postStartMaster() throws IOException {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.815"></a>
-<span class="sourceLineNo">816</span>      @Override<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.817"></a>
-<span class="sourceLineNo">818</span>          throws IOException {<a name="line.818"></a>
-<span class="sourceLineNo">819</span>        oserver.postStartMaster(ctx);<a name="line.819"></a>
-<span class="sourceLineNo">820</span>      }<a name="line.820"></a>
-<span class="sourceLineNo">821</span>    });<a name="line.821"></a>
-<span class="sourceLineNo">822</span>  }<a name="line.822"></a>
-<span class="sourceLineNo">823</span><a name="line.823"></a>
-<span class="sourceLineNo">824</span>  public void preSnapshot(final SnapshotDescription snapshot,<a name="line.824"></a>
-<span class="sourceLineNo">825</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.825"></a>
-<span class="sourceLineNo">826</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.826"></a>
-<span class="sourceLineNo">827</span>      @Override<a name="line.827"></a>
-<span class="sourceLineNo">828</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.828"></a>
-<span class="sourceLineNo">829</span>          throws IOException {<a name="line.829"></a>
-<span class="sourceLineNo">830</span>        oserver.preSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      }<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    });<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  }<a name="line.833"></a>
-<span class="sourceLineNo">834</span><a name="line.834"></a>
-<span class="sourceLineNo">835</span>  public void postSnapshot(final SnapshotDescription snapshot,<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.836"></a>
+<span class="sourceLineNo">774</span>  public boolean preBalanceSwitch(final boolean b) throws IOException {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>    return execOperationWithResult(b, coprocessors.isEmpty() ? null :<a name="line.775"></a>
+<span class="sourceLineNo">776</span>        new CoprocessorOperationWithResult&lt;Boolean&gt;() {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>      @Override<a name="line.777"></a>
+<span class="sourceLineNo">778</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.778"></a>
+<span class="sourceLineNo">779</span>          throws IOException {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>        setResult(oserver.preBalanceSwitch(ctx, getResult()));<a name="line.780"></a>
+<span class="sourceLineNo">781</span>      }<a name="line.781"></a>
+<span class="sourceLineNo">782</span>    });<a name="line.782"></a>
+<span class="sourceLineNo">783</span>  }<a name="line.783"></a>
+<span class="sourceLineNo">784</span><a name="line.784"></a>
+<span class="sourceLineNo">785</span>  public void postBalanceSwitch(final boolean oldValue, final boolean newValue)<a name="line.785"></a>
+<span class="sourceLineNo">786</span>      throws IOException {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>      @Override<a name="line.788"></a>
+<span class="sourceLineNo">789</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.789"></a>
+<span class="sourceLineNo">790</span>          throws IOException {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>        oserver.postBalanceSwitch(ctx, oldValue, newValue);<a name="line.791"></a>
+<span class="sourceLineNo">792</span>      }<a name="line.792"></a>
+<span class="sourceLineNo">793</span>    });<a name="line.793"></a>
+<span class="sourceLineNo">794</span>  }<a name="line.794"></a>
+<span class="sourceLineNo">795</span><a name="line.795"></a>
+<span class="sourceLineNo">796</span>  public void preShutdown() throws IOException {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>      @Override<a name="line.798"></a>
+<span class="sourceLineNo">799</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.799"></a>
+<span class="sourceLineNo">800</span>          throws IOException {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>        oserver.preShutdown(ctx);<a name="line.801"></a>
+<span class="sourceLineNo">802</span>      }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>      @Override<a name="line.803"></a>
+<span class="sourceLineNo">804</span>      public void postEnvCall(MasterEnvironment env) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>        // invoke coprocessor stop method<a name="line.805"></a>
+<span class="sourceLineNo">806</span>        shutdown(env);<a name="line.806"></a>
+<span class="sourceLineNo">807</span>      }<a name="line.807"></a>
+<span class="sourceLineNo">808</span>    });<a name="line.808"></a>
+<span class="sourceLineNo">809</span>  }<a name="line.809"></a>
+<span class="sourceLineNo">810</span><a name="line.810"></a>
+<span class="sourceLineNo">811</span>  public void preStopMaster() throws IOException {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.812"></a>
+<span class="sourceLineNo">813</span>      @Override<a name="line.813"></a>
+<span class="sourceLineNo">814</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.814"></a>
+<span class="sourceLineNo">815</span>          throws IOException {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>        oserver.preStopMaster(ctx);<a name="line.816"></a>
+<span class="sourceLineNo">817</span>      }<a name="line.817"></a>
+<span class="sourceLineNo">818</span>      @Override<a name="line.818"></a>
+<span class="sourceLineNo">819</span>      public void postEnvCall(MasterEnvironment env) {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>        // invoke coprocessor stop method<a name="line.820"></a>
+<span class="sourceLineNo">821</span>        shutdown(env);<a name="line.821"></a>
+<span class="sourceLineNo">822</span>      }<a name="line.822"></a>
+<span class="sourceLineNo">823</span>    });<a name="line.823"></a>
+<span class="sourceLineNo">824</span>  }<a name="line.824"></a>
+<span class="sourceLineNo">825</span><a name="line.825"></a>
+<span class="sourceLineNo">826</span>  public void preMasterInitialization() throws IOException {<a name="line.826"></a>
+<span class="sourceLineNo">827</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>      @Override<a name="line.828"></a>
+<span class="sourceLineNo">829</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.829"></a>
+<span class="sourceLineNo">830</span>          throws IOException {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>        oserver.preMasterInitialization(ctx);<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      }<a name="line.832"></a>
+<span class="sourceLineNo">833</span>    });<a name="line.833"></a>
+<span class="sourceLineNo">834</span>  }<a name="line.834"></a>
+<span class="sourceLineNo">835</span><a name="line.835"></a>
+<span class="sourceLineNo">836</span>  public void postStartMaster() throws IOException {<a name="line.836"></a>
 <span class="sourceLineNo">837</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.837"></a>
 <span class="sourceLineNo">838</span>      @Override<a name="line.838"></a>
 <span class="sourceLineNo">839</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.839"></a>
 <span class="sourceLineNo">840</span>          throws IOException {<a name="line.840"></a>
-<span class="sourceLineNo">841</span>        oserver.postSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.841"></a>
+<span class="sourceLineNo">841</span>        oserver.postStartMaster(ctx);<a name="line.841"></a>
 <span class="sourceLineNo">842</span>      }<a name="line.842"></a>
 <span class="sourceLineNo">843</span>    });<a name="line.843"></a>
 <span class="sourceLineNo">844</span>  }<a name="line.844"></a>
 <span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  public void preListSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.846"></a>
-<span class="sourceLineNo">847</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.847"></a>
-<span class="sourceLineNo">848</span>      @Override<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      public void call(MasterObserver observer, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.849"></a>
-<span class="sourceLineNo">850</span>          throws IOException {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        observer.preListSnapshot(ctx, snapshot);<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      }<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    });<a name="line.853"></a>
-<span class="sourceLineNo">854</span>  }<a name="line.854"></a>
-<span class="sourceLineNo">855</span><a name="line.855"></a>
-<span class="sourceLineNo">856</span>  public void postListSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      @Override<a name="line.858"></a>
-<span class="sourceLineNo">859</span>      public void call(MasterObserver observer, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.859"></a>
-<span class="sourceLineNo">860</span>          throws IOException {<a name="line.860"></a>
-<span class="sourceLineNo">861</span>        observer.postListSnapshot(ctx, snapshot);<a name="line.861"></a>
-<span class="sourceLineNo">862</span>      }<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    });<a name="line.863"></a>
-<span class="sourceLineNo">864</span>  }<a name="line.864"></a>
-<span class="sourceLineNo">865</span><a name="line.865"></a>
-<span class="sourceLineNo">866</span>  public void preCloneSnapshot(final SnapshotDescription snapshot,<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      @Override<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.870"></a>
-<span class="sourceLineNo">871</span>          throws IOException {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>        oserver.preCloneSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.872"></a>
-<span class="sourceLineNo">873</span>      }<a name="line.873"></a>
-<span class="sourceLineNo">874</span>    });<a name="line.874"></a>
-<span class="sourceLineNo">875</span>  }<a name="line.875"></a>
-<span class="sourceLineNo">876</span><a name="line.876"></a>
-<span class="sourceLineNo">877</span>  public void postCloneSnapshot(final SnapshotDescription snapshot,<a name="line.877"></a>
-<span class="sourceLineNo">878</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.878"></a>
+<span class="sourceLineNo">846</span>  public void preSnapshot(final SnapshotDescription snapshot,<a name="line.846"></a>
+<span class="sourceLineNo">847</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>      @Override<a name="line.849"></a>
+<span class="sourceLineNo">850</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.850"></a>
+<span class="sourceLineNo">851</span>          throws IOException {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        oserver.preSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.852"></a>
+<span class="sourceLineNo">853</span>      }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>    });<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  }<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>  public void postSnapshot(final SnapshotDescription snapshot,<a name="line.857"></a>
+<span class="sourceLineNo">858</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>      @Override<a name="line.860"></a>
+<span class="sourceLineNo">861</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.861"></a>
+<span class="sourceLineNo">862</span>          throws IOException {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>        oserver.postSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>      }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>    });<a name="line.865"></a>
+<span class="sourceLineNo">866</span>  }<a name="line.866"></a>
+<span class="sourceLineNo">867</span><a name="line.867"></a>
+<span class="sourceLineNo">868</span>  public void preListSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>      @Override<a name="line.870"></a>
+<span class="sourceLineNo">871</span>      public void call(MasterObserver observer, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.871"></a>
+<span class="sourceLineNo">872</span>          throws IOException {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>        observer.preListSnapshot(ctx, snapshot);<a name="line.873"></a>
+<span class="sourceLineNo">874</span>      }<a name="line.874"></a>
+<span class="sourceLineNo">875</span>    });<a name="line.875"></a>
+<span class="sourceLineNo">876</span>  }<a name="line.876"></a>
+<span class="sourceLineNo">877</span><a name="line.877"></a>
+<span class="sourceLineNo">878</span>  public void postListSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.878"></a>
 <span class="sourceLineNo">879</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.879"></a>
 <span class="sourceLineNo">880</span>      @Override<a name="line.880"></a>
-<span class="sourceLineNo">881</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.881"></a>
+<span class="sourceLineNo">881</span>      public void call(MasterObserver observer, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.881"></a>
 <span class="sourceLineNo">882</span>          throws IOException {<a name="line.882"></a>
-<span class="sourceLineNo">883</span>        oserver.postCloneSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.883"></a>
+<span class="sourceLineNo">883</span>        observer.postListSnapshot(ctx, snapshot);<a name="line.883"></a>
 <span class="sourceLineNo">884</span>      }<a name="line.884"></a>
 <span class="sourceLineNo">885</span>    });<a name="line.885"></a>
 <span class="sourceLineNo">886</span>  }<a name="line.886"></a>
 <span class="sourceLineNo">887</span><a name="line.887"></a>
-<span class="sourceLineNo">888</span>  public void preRestoreSnapshot(final SnapshotDescription snapshot,<a name="line.888"></a>
+<span class="sourceLineNo">888</span>  public void preCloneSnapshot(final SnapshotDescription snapshot,<a name="line.888"></a>
 <span class="sourceLineNo">889</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.889"></a>
 <span class="sourceLineNo">890</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.890"></a>
 <span class="sourceLineNo">891</span>      @Override<a name="line.891"></a>
 <span class="sourceLineNo">892</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.892"></a>
 <span class="sourceLineNo">893</span>          throws IOException {<a name="line.893"></a>
-<span class="sourceLineNo">894</span>        oserver.preRestoreSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.894"></a>
+<span class="sourceLineNo">894</span>        oserver.preCloneSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.894"></a>
 <span class="sourceLineNo">895</span>      }<a name="line.895"></a>
 <span class="sourceLineNo">896</span>    });<a name="line.896"></a>
 <span class="sourceLineNo">897</span>  }<a name="line.897"></a>
 <span class="sourceLineNo">898</span><a name="line.898"></a>
-<span class="sourceLineNo">899</span>  public void postRestoreSnapshot(final SnapshotDescription snapshot,<a name="line.899"></a>
+<span class="sourceLineNo">899</span>  public void postCloneSnapshot(final SnapshotDescription snapshot,<a name="line.899"></a>
 <span class="sourceLineNo">900</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.900"></a>
 <span class="sourceLineNo">901</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.901"></a>
 <span class="sourceLineNo">902</span>      @Override<a name="line.902"></a>
 <span class="sourceLineNo">903</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.903"></a>
 <span class="sourceLineNo">904</span>          throws IOException {<a name="line.904"></a>
-<span class="sourceLineNo">905</span>        oserver.postRestoreSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.905"></a>
+<span class="sourceLineNo">905</span>        oserver.postCloneSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.905"></a>
 <span class="sourceLineNo">906</span>      }<a name="line.906"></a>
 <span class="sourceLineNo">907</span>    });<a name="line.907"></a>
 <span class="sourceLineNo">908</span>  }<a name="line.908"></a>
 <span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>  public void preDeleteSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.910"></a>
-<span class="sourceLineNo">911</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      @Override<a name="line.912"></a>
-<span class="sourceLineNo">913</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.913"></a>
-<span class="sourceLineNo">914</span>          throws IOException {<a name="line.914"></a>
-<span class="sourceLineNo">915</span>        oserver.preDeleteSnapshot(ctx, snapshot);<a name="line.915"></a>
-<span class="sourceLineNo">916</span>      }<a name="line.916"></a>
-<span class="sourceLineNo">917</span>    });<a name="line.917"></a>
-<span class="sourceLineNo">918</span>  }<a name="line.918"></a>
-<span class="sourceLineNo">919</span><a name="line.919"></a>
-<span class="sourceLineNo">920</span>  public void postDeleteSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.920"></a>
-<span class="sourceLineNo">921</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      @Override<a name="line.922"></a>
-<span class="sourceLineNo">923</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.923"></a>
-<span class="sourceLineNo">924</span>          throws IOException {<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        oserver.postDeleteSnapshot(ctx, snapshot);<a name="line.925"></a>
-<span class="sourceLineNo">926</span>      }<a name="line.926"></a>
-<span class="sourceLineNo">927</span>    });<a name="line.927"></a>
-<span class="sourceLineNo">928</span>  }<a name="line.928"></a>
-<span class="sourceLineNo">929</span><a name="line.929"></a>
-<span class="sourceLineNo">930</span>  public boolean preGetTableDescriptors(final List&lt;TableName&gt; tableNamesList,<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      final List&lt;HTableDescriptor&gt; descriptors, final String regex) throws IOException {<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    return execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      @Override<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.934"></a>
-<span class="sourceLineNo">935</span>          throws IOException {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>        oserver.preGetTableDescriptors(ctx, tableNamesList, descriptors, regex);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>      }<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    });<a name="line.938"></a>
-<span class="sourceLineNo">939</span>  }<a name="line.939"></a>
-<span class="sourceLineNo">940</span><a name="line.940"></a>
-<span class="sourceLineNo">941</span>  public void postGetTableDescriptors(final List&lt;TableName&gt; tableNamesList,<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      final List&lt;HTableDescriptor&gt; descriptors, final String regex) throws IOException {<a name="line.942"></a>
+<span class="sourceLineNo">910</span>  public void preRestoreSnapshot(final SnapshotDescription snapshot,<a name="line.910"></a>
+<span class="sourceLineNo">911</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.911"></a>
+<span class="sourceLineNo">912</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>      @Override<a name="line.913"></a>
+<span class="sourceLineNo">914</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.914"></a>
+<span class="sourceLineNo">915</span>          throws IOException {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>        oserver.preRestoreSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.916"></a>
+<span class="sourceLineNo">917</span>      }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>    });<a name="line.918"></a>
+<span class="sourceLineNo">919</span>  }<a name="line.919"></a>
+<span class="sourceLineNo">920</span><a name="line.920"></a>
+<span class="sourceLineNo">921</span>  public void postRestoreSnapshot(final SnapshotDescription snapshot,<a name="line.921"></a>
+<span class="sourceLineNo">922</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>      @Override<a name="line.924"></a>
+<span class="sourceLineNo">925</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.925"></a>
+<span class="sourceLineNo">926</span>          throws IOException {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>        oserver.postRestoreSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      }<a name="line.928"></a>
+<span class="sourceLineNo">929</span>    });<a name="line.929"></a>
+<span class="sourceLineNo">930</span>  }<a name="line.930"></a>
+<span class="sourceLineNo">931</span><a name="line.931"></a>
+<span class="sourceLineNo">932</span>  public void preDeleteSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      @Override<a name="line.934"></a>
+<span class="sourceLineNo">935</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.935"></a>
+<span class="sourceLineNo">936</span>          throws IOException {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>        oserver.preDeleteSnapshot(ctx, snapshot);<a name="line.937"></a>
+<span class="sourceLineNo">938</span>      }<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    });<a name="line.939"></a>
+<span class="sourceLineNo">940</span>  }<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>  public void postDeleteSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.942"></a>
 <span class="sourceLineNo">943</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.943"></a>
 <span class="sourceLineNo">944</span>      @Override<a name="line.944"></a>
 <span class="sourceLineNo">945</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.945"></a>
 <span class="sourceLineNo">946</span>          throws IOException {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>        oserver.postGetTableDescriptors(ctx, tableNamesList, descriptors, regex);<a name="line.947"></a>
+<span class="sourceLineNo">947</span>        oserver.postDeleteSnapshot(ctx, snapshot);<a name="line.947"></a>
 <span class="sourceLineNo">948</span>      }<a name="line.948"></a>
 <span class="sourceLineNo">949</span>    });<a name="line.949"></a>
 <span class="sourceLineNo">950</span>  }<a name="line.950"></a>
 <span class="sourceLineNo">951</span><a name="line.951"></a>
-<span class="sourceLineNo">952</span>  public boolean preGetTableNames(final List&lt;HTableDescriptor&gt; descriptors,<a name="line.952"></a>
-<span class="sourceLineNo">953</span>      final String regex) throws IOException {<a name="line.953"></a>
+<span class="sourceLineNo">952</span>  public boolean preGetTableDescriptors(final List&lt;TableName&gt; tableNamesList,<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      final List&lt;HTableDescriptor&gt; descriptors, final String regex) throws IOException {<a name="line.953"></a>
 <span class="sourceLineNo">954</span>    return execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.954"></a>
 <span class="sourceLineNo">955</span>      @Override<a name="line.955"></a>
 <span class="sourceLineNo">956</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.956"></a>
 <span class="sourceLineNo">957</span>          throws IOException {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>        oserver.preGetTableNames(ctx, descriptors, regex);<a name="line.958"></a>
+<span class="sourceLineNo">958</span>        oserver.preGetTableDescriptors(ctx, tableNamesList, descriptors, regex);<a name="line.958"></a>
 <span class="sourceLineNo">959</span>      }<a name="line.959"></a>
 <span class="sourceLineNo">960</span>    });<a name="line.960"></a>
 <span class="sourceLineNo">961</span>  }<a name="line.961"></a>
 <span class="sourceLineNo">962</span><a name="line.962"></a>
-<span class="sourceLineNo">963</span>  public void postGetTableNames(final List&lt;HTableDescriptor&gt; descriptors,<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      final String regex) throws IOException {<a name="line.964"></a>
+<span class="sourceLineNo">963</span>  public void postGetTableDescriptors(final List&lt;TableName&gt; tableNamesList,<a name="line.963"></a>
+<span class="sourceLineNo">964</span>      final List&lt;HTableDescriptor&gt; descriptors, final String regex) throws IOException {<a name="line.964"></a>
 <span class="sourceLineNo">965</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.965"></a>
 <span class="sourceLineNo">966</span>      @Override<a name="line.966"></a>
 <span class="sourceLineNo">967</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.967"></a>
 <span class="sourceLineNo">968</span>          throws IOException {<a name="line.968"></a>
-<span class="sourceLineNo">969</span>        oserver.postGetTableNames(ctx, descriptors, regex);<a name="line.969"></a>
+<span class="sourceLineNo">969</span>        oserver.postGetTableDescriptors(ctx, tableNamesList, descriptors, regex);<a name="line.969"></a>
 <span class="sourceLineNo">970</span>      }<a name="line.970"></a>
 <span class="sourceLineNo">971</span>    });<a name="line.971"></a>
 <span class="sourceLineNo">972</span>  }<a name="line.972"></a>
 <span class="sourceLineNo">973</span><a name="line.973"></a>
-<span class="sourceLineNo">974</span>  public void preTableFlush(final TableName tableName) throws IOException {<a name="line.974"></a>
-<span class="sourceLineNo">975</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>      @Override<a name="line.976"></a>
-<span class="sourceLineNo">977</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.977"></a>
-<span class="sourceLineNo">978</span>          throws IOException {<a name="line.978"></a>
-<span class="sourceLineNo">979</span>        oserver.preTableFlush(ctx, tableName);<a name="line.979"></a>
-<span class="sourceLineNo">980</span>      }<a name="line.980"></a>
-<span class="sourceLineNo">981</span>    });<a name="line.981"></a>
-<span class="sourceLineNo">982</span>  }<a name="line.982"></a>
-<span class="sourceLineNo">983</span><a name="line.983"></a>
-<span class="sourceLineNo">984</span>  public void postTableFlush(final TableName tableName) throws IOException {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      @Override<a name="line.986"></a>
-<span class="sourceLineNo">987</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.987"></a>
-<span class="sourceLineNo">988</span>          throws IOException {<a name="line.988"></a>
-<span class="sourceLineNo">989</span>        oserver.postTableFlush(ctx, tableName);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>      }<a name="line.990"></a>
-<span class="sourceLineNo">991</span>    });<a name="line.991"></a>
-<span class="sourceLineNo">992</span>  }<a name="line.992"></a>
-<span class="sourceLineNo">993</span><a name="line.993"></a>
-<span class="sourceLineNo">994</span>  public void preSetUserQuota(final String user, final Quotas quotas) throws IOException {<a name="line.994"></a>
-<span class="sourceLineNo">995</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.995"></a>
-<span class="sourceLineNo">996</span>      @Override<a name="line.996"></a>
-<span class="sourceLineNo">997</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.997"></a>
-<span class="sourceLineNo">998</span>          throws IOException {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>        oserver.preSetUserQuota(ctx, user, quotas);<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>      }<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    });<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>  }<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>  public void postSetUserQuota(final String user, final Quotas quotas) throws IOException {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      @Override<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>          throws IOException {<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>        oserver.postSetUserQuota(ctx, user, quotas);<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      }<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>    });<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>  }<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span><a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  public void preSetUserQuota(final String user, final TableName table, final Quotas quotas)<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      throws IOException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>      @Override<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>          throws IOException {<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        oserver.preSetUserQuota(ctx, user, table, quotas);<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    });<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>  }<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span><a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>  public void postSetUserQuota(final String user, final TableName table, final Quotas quotas)<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>      throws IOException {<a name="line.1026"></a>
+<span class="sourceLineNo">974</span>  public boolean preGetTableNames(final List&lt;HTableDescriptor&gt; descriptors,<a name="line.974"></a>
+<span class="sourceLineNo">975</span>      final String regex) throws IOException {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>    return execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      @Override<a name="line.977"></a>
+<span class="sourceLineNo">978</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.978"></a>
+<span class="sourceLineNo">979</span>          throws IOException {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>        oserver.preGetTableNames(ctx, descriptors, regex);<a name="line.980"></a>
+<span class="sourceLineNo">981</span>      }<a name="line.981"></a>
+<span class="sourceLineNo">982</span>    });<a name="line.982"></a>
+<span class="sourceLineNo">983</span>  }<a name="line.983"></a>
+<span class="sourceLineNo">984</span><a name="line.984"></a>
+<span class="sourceLineNo">985</span>  public void postGetTableNames(final List&lt;HTableDescriptor&gt; descriptors,<a name="line.985"></a>
+<span class="sourceLineNo">986</span>      final String regex) throws IOException {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      @Override<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.989"></a>
+<span class="sourceLineNo">990</span>          throws IOException {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>        oserver.postGetTableNames(ctx, descriptors, regex);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>      }<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    });<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  }<a name="line.994"></a>
+<span class="sourceLineNo">995</span><a name="line.995"></a>
+<span class="sourceLineNo">996</span>  public void preTableFlush(final TableName tableName) throws IOException {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>      @Override<a name="line.998"></a>
+<span class="sourceLineNo">999</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>          throws IOException {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>        oserver.preTableFlush(ctx, tableName);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>      }<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>    });<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>  }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span><a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>  public void postTableFlush(final TableName tableName) throws IOException {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>      @Override<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>          throws IOException {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>        oserver.postTableFlush(ctx, tableName);<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>      }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>    });<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>  }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>  public void preSetUserQuota(final String user, final Quotas quotas) throws IOException {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>      @Override<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          throws IOException {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>        oserver.preSetUserQuota(ctx, user, quotas);<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>      }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>    });<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>  }<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span><a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>  public void postSetUserQuota(final String user, final Quotas quotas) throws IOException {<a name="line.1026"></a>
 <span class="sourceLineNo">1027</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1027"></a>
 <span class="sourceLineNo">1028</span>      @Override<a name="line.1028"></a>
 <span class="sourceLineNo">1029</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1029"></a>
 <span class="sourceLineNo">1030</span>          throws IOException {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>        oserver.postSetUserQuota(ctx, user, table, quotas);<a name="line.1031"></a>
+<span class="sourceLineNo">1031</span>        oserver.postSetUserQuota(ctx, user, quotas);<a name="line.1031"></a>
 <span class="sourceLineNo">1032</span>      }<a name="line.1032"></a>
 <span class="sourceLineNo">1033</span>    });<a name="line.1033"></a>
 <span class="sourceLineNo">1034</span>  }<a name="line.1034"></a>
 <span class="sourceLineNo">1035</span><a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>  public void preSetUserQuota(final String user, final String namespace, final Quotas quotas)<a name="line.1036"></a>
+<span class="sourceLineNo">1036</span>  public void preSetUserQuota(final String user, final TableName table, final Quotas quotas)<a name="line.1036"></a>
 <span class="sourceLineNo">1037</span>      throws IOException {<a name="line.1037"></a>
 <span class="sourceLineNo">1038</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1038"></a>
 <span class="sourceLineNo">1039</span>      @Override<a name="line.1039"></a>
 <span class="sourceLineNo">1040</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1040"></a>
 <span class="sourceLineNo">1041</span>          throws IOException {<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        oserver.preSetUserQuota(ctx, user, namespace, quotas);<a name="line.1042"></a>
+<span class="sourceLineNo">1042</span>        oserver.preSetUserQuota(ctx, user, table, quotas);<a name="line.1042"></a>
 <span class="sourceLineNo">1043</span>      }<a name="line.1043"></a>
 <span class="sourceLineNo">1044</span>    });<a name="line.1044"></a>
 <span class="sourceLineNo">1045</span>  }<a name="line.1045"></a>
 <span class="sourceLineNo">1046</span><a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>  public void postSetUserQuota(final String user, final String namespace, final Quotas quotas)<a name="line.1047"></a>
+<span class="sourceLineNo">1047</span>  public void postSetUserQuota(final String user, final TableName table, final Quotas quotas)<a name="line.1047"></a>
 <span class="sourceLineNo">1048</span>      throws IOException {<a name="line.1048"></a>
 <span class="sourceLineNo">1049</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1049"></a>
 <span class="sourceLineNo">1050</span>      @Override<a name="line.1050"></a>
 <span class="sourceLineNo">1051</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1051"></a>
 <span class="sourceLineNo">1052</span>          throws IOException {<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>        oserver.postSetUserQuota(ctx, user, namespace, quotas);<a name="line.1053"></a>
+<span class="sourceLineNo">1053</span>        oserver.postSetUserQuota(ctx, user, table, quotas);<a name="line.1053"></a>
 <span class="sourceLineNo">1054</span>      }<a name="line.1054"></a>
 <span class="sourceLineNo">1055</span>    });<a name="line.1055"></a>
 <span class="sourceLineNo">1056</span>  }<a name="line.1056"></a>
 <span class="sourceLineNo">1057</span><a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>  public void preSetTableQuota(final TableName table, final Quotas quotas) throws IOException {<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>      @Override<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>          throws IOException {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>        oserver.preSetTableQuota(ctx, table, quotas);<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>      }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>    });<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>  }<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span><a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>  public void postSetTableQuota(final TableName table, final Quotas quotas) throws IOException {<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      @Override<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>          throws IOException {<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>        oserver.postSetTableQuota(ctx, table, quotas);<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      }<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    });<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>  }<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span><a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>  public void preSetNamespaceQuota(final String namespace, final Quotas quotas) throws IOException {<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>      @Override<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>          throws IOException {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>        oserver.preSetNamespaceQuota(ctx, namespace, quotas);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>      }<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>    });<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>  }<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span><a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>  public void postSetNamespaceQuota(final String namespace, final Quotas quotas) throws IOException{<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>      @Override<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>          throws IOException {<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>        oserver.postSetNamespaceQuota(ctx, namespace, quotas);<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>      }<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    });<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>  }<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span><a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>  private static abstract class CoprocessorOperation<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>      extends ObserverContext&lt;MasterCoprocessorEnvironment&gt; {<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>    public CoprocessorOperation() {<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span><a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    public abstract void call(MasterObserver oserver,<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>        ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx) throws IOException;<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span><a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>    public void postEnvCall(MasterEnvironment env) {<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    }<a name="line.1107"></a>
+<span class="sourceLineNo">1058</span>  public void preSetUserQuota(final String user, final String namespace, final Quotas quotas)<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      throws IOException {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>      @Override<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>          throws IOException {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        oserver.preSetUserQuota(ctx, user, namespace, quotas);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>      }<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>    });<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>  }<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span><a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>  public void postSetUserQuota(final String user, final String namespace, final Quotas quotas)<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      throws IOException {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      @Override<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>          throws IOException {<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>        oserver.postSetUserQuota(ctx, user, namespace, quotas);<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>      }<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>    });<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>  }<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span><a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>  public void preSetTableQuota(final TableName table, final Quotas quotas) throws IOException {<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      @Override<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>          throws IOException {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>        oserver.preSetTableQuota(ctx, table, quotas);<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>      }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>    });<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>  }<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span><a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>  public void postSetTableQuota(final TableName table, final Quotas quotas) throws IOException {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>      @Override<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>          throws IOException {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>        oserver.postSetTableQuota(ctx, table, quotas);<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>      }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>    });<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>  }<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span><a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>  public void preSetNamespaceQuota(final String namespace, final Quotas quotas) throws IOException {<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      @Override<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>          throws IOException {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>        oserver.preSetNamespaceQuota(ctx, namespace, quotas);<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>      }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    });<a name="line.1107"></a>
 <span class="sourceLineNo">1108</span>  }<a name="line.1108"></a>
 <span class="sourceLineNo">1109</span><a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>  private static abstract class CoprocessorOperationWithResult&lt;T&gt; extends CoprocessorOperation {<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>    private T result = null;<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    public void setResult(final T result) { this.result = result; }<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    public T getResult() { return this.result; }<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>  }<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span><a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>  private &lt;T&gt; T execOperationWithResult(final T defaultValue,<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>      final CoprocessorOperationWithResult&lt;T&gt; ctx) throws IOException {<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>    if (ctx == null) return defaultValue;<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    ctx.setResult(defaultValue);<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    execOperation(ctx);<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    return ctx.getResult();<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>  }<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span><a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>  private boolean execOperation(final CoprocessorOperation ctx) throws IOException {<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    if (ctx == null) return false;<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>    boolean bypass = false;<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>    List&lt;MasterEnvironment&gt; envs = coprocessors.get();<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>    for (int i = 0; i &lt; envs.size(); i++) {<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>      MasterEnvironment env = envs.get(i);<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>      if (env.getInstance() instanceof MasterObserver) {<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>        ctx.prepare(env);<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>        Thread currentThread = Thread.currentThread();<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>        ClassLoader cl = currentThread.getContextClassLoader();<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>        try {<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>          currentThread.setContextClassLoader(env.getClassLoader());<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>          ctx.call((MasterObserver)env.getInstance(), ctx);<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>        } catch (Throwable e) {<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>          handleCoprocessorThrowable(env, e);<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>        } finally {<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>          currentThread.setContextClassLoader(cl);<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>        }<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>        bypass |= ctx.shouldBypass();<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>        if (ctx.shouldComplete()) {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>          break;<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>        }<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>      }<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>      ctx.postEnvCall(env);<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    }<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>    return bypass;<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>  }<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>}<a name="line.1151"></a>
+<span class="sourceLineNo">1110</span>  public void postSetNamespaceQuota(final String namespace, final Quotas quotas) throws IOException{<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      @Override<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>          throws IOException {<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>        oserver.postSetNamespaceQuota(ctx, namespace, quotas);<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>      }<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>    });<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>  }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span><a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>  private static abstract class CoprocessorOperation<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      extends ObserverContext&lt;MasterCoprocessorEnvironment&gt; {<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>    public CoprocessorOperation() {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>    }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>    public abstract void call(MasterObserver oserver,<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>        ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx) throws IOException;<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span><a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>    public void postEnvCall(MasterEnvironment env) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>    }<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>  }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span><a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>  private static abstract class CoprocessorOperationWithResult&lt;T&gt; extends CoprocessorOperation {<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>    private T result = null;<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>    public void setResult(final T result) { this.result = result; }<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>    public T getResult() { return this.result; }<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>  }<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span><a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>  private &lt;T&gt; T execOperationWithResult(final T defaultValue,<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>      final CoprocessorOperationWithResult&lt;T&gt; ctx) throws IOException {<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>    if (ctx == null) return defaultValue;<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>    ctx.setResult(defaultValue);<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    execOperation(ctx);<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>    return ctx.getResult();<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>  }<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span><a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>  private boolean execOperation(final CoprocessorOperation ctx) throws IOException {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>    if (ctx == null) return false;<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>    boolean bypass = false;<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>    List&lt;MasterEnvironment&gt; envs = coprocessors.get();<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>    for (int i = 0; i &lt; envs.size(); i++) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>      MasterEnvironment env = envs.get(i);<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>      if (env.getInstance() instanceof MasterObserver) {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        ctx.prepare(env);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>        Thread currentThread = Thread.currentThread();<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>        ClassLoader cl = currentThread.getContextClassLoader();<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>        try {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>          currentThread.setContextClassLoader(env.getClassLoader());<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>          ctx.call((MasterObserver)env.getInstance(), ctx);<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>        } catch (Throwable e) {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>          handleCoprocessorThrowable(env, e);<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>        } finally {<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>          currentThread.setContextClassLoader(cl);<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>        }<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>        bypass |= ctx.shouldBypass();<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>        if (ctx.shouldComplete()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>          break;<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>        }<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>      }<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>      ctx.postEnvCall(env);<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    }<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    return bypass;<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>  }<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>}<a name="line.1173"></a>
 
 
 


[05/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.LeaseRecovery.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.LeaseRecovery.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.LeaseRecovery.html
index fc06682..f81d2d3 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.LeaseRecovery.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.LeaseRecovery.html
@@ -244,734 +244,730 @@
 <span class="sourceLineNo">236</span>    return storeTracker;<a name="line.236"></a>
 <span class="sourceLineNo">237</span>  }<a name="line.237"></a>
 <span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>  public LinkedList&lt;ProcedureWALFile&gt; getActiveLogs() {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    return logs;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  }<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>  public Set&lt;ProcedureWALFile&gt; getCorruptedLogs() {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    return corruptedLogs;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  }<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>  @Override<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  public void recoverLease() throws IOException {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    lock.lock();<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    try {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      LOG.info("Starting WAL Procedure Store lease recovery");<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      FileStatus[] oldLogs = getLogFiles();<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      while (isRunning()) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>        // Get Log-MaxID and recover lease on old logs<a name="line.254"></a>
-<span class="sourceLineNo">255</span>        flushLogId = initOldLogs(oldLogs);<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>        // Create new state-log<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        if (!rollWriter(flushLogId + 1)) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>          // someone else has already created this log<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          LOG.debug("someone else has already created log " + flushLogId);<a name="line.260"></a>
-<span class="sourceLineNo">261</span>          continue;<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>        // We have the lease on the log<a name="line.264"></a>
-<span class="sourceLineNo">265</span>        oldLogs = getLogFiles();<a name="line.265"></a>
-<span class="sourceLineNo">266</span>        if (getMaxLogId(oldLogs) &gt; flushLogId) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>          if (LOG.isDebugEnabled()) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>            LOG.debug("Someone else created new logs. Expected maxLogId &lt; " + flushLogId);<a name="line.268"></a>
-<span class="sourceLineNo">269</span>          }<a name="line.269"></a>
-<span class="sourceLineNo">270</span>          logs.getLast().removeFile();<a name="line.270"></a>
-<span class="sourceLineNo">271</span>          continue;<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>        LOG.info("Lease acquired for flushLogId: " + flushLogId);<a name="line.274"></a>
-<span class="sourceLineNo">275</span>        break;<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    } finally {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      lock.unlock();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    }<a name="line.279"></a>
-<span class="sourceLineNo">280</span>  }<a name="line.280"></a>
-<span class="sourceLineNo">281</span><a name="line.281"></a>
-<span class="sourceLineNo">282</span>  @Override<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  public void load(final ProcedureLoader loader) throws IOException {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    if (logs.isEmpty()) {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      throw new RuntimeException("recoverLease() must be called before loading data");<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>    // Nothing to do, If we have only the current log.<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    if (logs.size() == 1) {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      if (LOG.isDebugEnabled()) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        LOG.debug("No state logs to replay.");<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>      loader.setMaxProcId(0);<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      loading.set(false);<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      return;<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>    // Load the old logs<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    final ArrayList&lt;ProcedureWALFile&gt; toRemove = new ArrayList&lt;ProcedureWALFile&gt;();<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    Iterator&lt;ProcedureWALFile&gt; it = logs.descendingIterator();<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    it.next(); // Skip the current log<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    try {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      ProcedureWALFormat.load(it, storeTracker, new ProcedureWALFormat.Loader() {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>        @Override<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        public void setMaxProcId(long maxProcId) {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>          loader.setMaxProcId(maxProcId);<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<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        public void load(ProcedureIterator procIter) throws IOException {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>          loader.load(procIter);<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 void handleCorrupted(ProcedureIterator procIter) throws IOException {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>          loader.handleCorrupted(procIter);<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 void removeLog(ProcedureWALFile log) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          toRemove.add(log);<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>        @Override<a name="line.324"></a>
-<span class="sourceLineNo">325</span>        public void markCorruptedWAL(ProcedureWALFile log, IOException e) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>          if (corruptedLogs == null) {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>            corruptedLogs = new HashSet&lt;ProcedureWALFile&gt;();<a name="line.327"></a>
-<span class="sourceLineNo">328</span>          }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>          corruptedLogs.add(log);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>          // TODO: sideline corrupted log<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>    } finally {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      if (!toRemove.isEmpty()) {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        for (ProcedureWALFile log: toRemove) {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>          removeLogFile(log);<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>      loading.set(false);<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">239</span>  public ArrayList&lt;ProcedureWALFile&gt; getActiveLogs() {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    lock.lock();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    try {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      return new ArrayList&lt;ProcedureWALFile&gt;(logs);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    } finally {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      lock.unlock();<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><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  public Set&lt;ProcedureWALFile&gt; getCorruptedLogs() {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    return corruptedLogs;<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>  @Override<a name="line.252"></a>
+<span class="sourceLineNo">253</span>  public void recoverLease() throws IOException {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    lock.lock();<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    try {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      LOG.info("Starting WAL Procedure Store lease recovery");<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      FileStatus[] oldLogs = getLogFiles();<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      while (isRunning()) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        // Get Log-MaxID and recover lease on old logs<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        flushLogId = initOldLogs(oldLogs);<a name="line.260"></a>
+<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">262</span>        // Create new state-log<a name="line.262"></a>
+<span class="sourceLineNo">263</span>        if (!rollWriter(flushLogId + 1)) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>          // someone else has already created this log<a name="line.264"></a>
+<span class="sourceLineNo">265</span>          LOG.debug("someone else has already created log " + flushLogId);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>          continue;<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>        // We have the lease on the log<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        oldLogs = getLogFiles();<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        if (getMaxLogId(oldLogs) &gt; flushLogId) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          if (LOG.isDebugEnabled()) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            LOG.debug("Someone else created new logs. Expected maxLogId &lt; " + flushLogId);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>          logs.getLast().removeFile();<a name="line.275"></a>
+<span class="sourceLineNo">276</span>          continue;<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        }<a name="line.277"></a>
+<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">279</span>        LOG.info("Lease acquired for flushLogId: " + flushLogId);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>        break;<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      }<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    } finally {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      lock.unlock();<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  }<a name="line.285"></a>
+<span class="sourceLineNo">286</span><a name="line.286"></a>
+<span class="sourceLineNo">287</span>  @Override<a name="line.287"></a>
+<span class="sourceLineNo">288</span>  public void load(final ProcedureLoader loader) throws IOException {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    if (logs.isEmpty()) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      throw new RuntimeException("recoverLease() must be called before loading data");<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>    // Nothing to do, If we have only the current log.<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    if (logs.size() == 1) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>      if (LOG.isDebugEnabled()) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>        LOG.debug("No state logs to replay.");<a name="line.296"></a>
+<span class="sourceLineNo">297</span>      }<a name="line.297"></a>
+<span class="sourceLineNo">298</span>      loader.setMaxProcId(0);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      loading.set(false);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      return;<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>    // Load the old logs<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    Iterator&lt;ProcedureWALFile&gt; it = logs.descendingIterator();<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    it.next(); // Skip the current log<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    try {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureWALFormat.load(it, storeTracker, new ProcedureWALFormat.Loader() {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        @Override<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        public void setMaxProcId(long maxProcId) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>          loader.setMaxProcId(maxProcId);<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>        @Override<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        public void load(ProcedureIterator procIter) throws IOException {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>          loader.load(procIter);<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>        @Override<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        public void handleCorrupted(ProcedureIterator procIter) throws IOException {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>          loader.handleCorrupted(procIter);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        }<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>        @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>        public void markCorruptedWAL(ProcedureWALFile log, IOException e) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>          if (corruptedLogs == null) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>            corruptedLogs = new HashSet&lt;ProcedureWALFile&gt;();<a name="line.326"></a>
+<span class="sourceLineNo">327</span>          }<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          corruptedLogs.add(log);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          // TODO: sideline corrupted log<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      });<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    } finally {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      loading.set(false);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
+<span class="sourceLineNo">338</span>  public void insert(final Procedure proc, final Procedure[] subprocs) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    if (LOG.isTraceEnabled()) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      LOG.trace("Insert " + proc + ", subproc=" + Arrays.toString(subprocs));<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    }<a name="line.341"></a>
 <span class="sourceLineNo">342</span><a name="line.342"></a>
-<span class="sourceLineNo">343</span>  @Override<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  public void insert(final Procedure proc, final Procedure[] subprocs) {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    if (LOG.isTraceEnabled()) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      LOG.trace("Insert " + proc + ", subproc=" + Arrays.toString(subprocs));<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    }<a name="line.347"></a>
-<span class="sourceLineNo">348</span><a name="line.348"></a>
-<span class="sourceLineNo">349</span>    ByteSlot slot = acquireSlot();<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    try {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      // Serialize the insert<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      long[] subProcIds = null;<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      if (subprocs != null) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>        ProcedureWALFormat.writeInsert(slot, proc, subprocs);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>        subProcIds = new long[subprocs.length];<a name="line.355"></a>
-<span class="sourceLineNo">356</span>        for (int i = 0; i &lt; subprocs.length; ++i) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>          subProcIds[i] = subprocs[i].getProcId();<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        }<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      } else {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        assert !proc.hasParent();<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        ProcedureWALFormat.writeInsert(slot, proc);<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>      // Push the transaction data and wait until it is persisted<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      pushData(PushType.INSERT, slot, proc.getProcId(), subProcIds);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    } catch (IOException e) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      // We are not able to serialize the procedure.<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      // this is a code error, and we are not able to go on.<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      LOG.fatal("Unable to serialize one of the procedure: proc=" + proc +<a name="line.369"></a>
-<span class="sourceLineNo">370</span>                ", subprocs=" + Arrays.toString(subprocs), e);<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      throw new RuntimeException(e);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    } finally {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      releaseSlot(slot);<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">343</span>    ByteSlot slot = acquireSlot();<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    try {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>      // Serialize the insert<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      long[] subProcIds = null;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      if (subprocs != null) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        ProcedureWALFormat.writeInsert(slot, proc, subprocs);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>        subProcIds = new long[subprocs.length];<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        for (int i = 0; i &lt; subprocs.length; ++i) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>          subProcIds[i] = subprocs[i].getProcId();<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      } else {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        assert !proc.hasParent();<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        ProcedureWALFormat.writeInsert(slot, proc);<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      }<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span>      // Push the transaction data and wait until it is persisted<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      pushData(PushType.INSERT, slot, proc.getProcId(), subProcIds);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    } catch (IOException e) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      // We are not able to serialize the procedure.<a name="line.361"></a>
+<span class="sourceLineNo">362</span>      // this is a code error, and we are not able to go on.<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      LOG.fatal("Unable to serialize one of the procedure: proc=" + proc +<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                ", subprocs=" + Arrays.toString(subprocs), e);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      throw new RuntimeException(e);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    } finally {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      releaseSlot(slot);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>  @Override<a name="line.371"></a>
+<span class="sourceLineNo">372</span>  public void update(final Procedure proc) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    if (LOG.isTraceEnabled()) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      LOG.trace("Update " + proc);<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
 <span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
-<span class="sourceLineNo">378</span>  public void update(final Procedure proc) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    if (LOG.isTraceEnabled()) {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      LOG.trace("Update " + proc);<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>    ByteSlot slot = acquireSlot();<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    try {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      // Serialize the update<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      ProcedureWALFormat.writeUpdate(slot, proc);<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>      // Push the transaction data and wait until it is persisted<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      pushData(PushType.UPDATE, slot, proc.getProcId(), null);<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    } catch (IOException e) {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      // We are not able to serialize the procedure.<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      // this is a code error, and we are not able to go on.<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      LOG.fatal("Unable to serialize the procedure: " + proc, e);<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      throw new RuntimeException(e);<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    } finally {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      releaseSlot(slot);<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">377</span>    ByteSlot slot = acquireSlot();<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    try {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      // Serialize the update<a name="line.379"></a>
+<span class="sourceLineNo">380</span>      ProcedureWALFormat.writeUpdate(slot, proc);<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>      // Push the transaction data and wait until it is persisted<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      pushData(PushType.UPDATE, slot, proc.getProcId(), null);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    } catch (IOException e) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      // We are not able to serialize the procedure.<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      // this is a code error, and we are not able to go on.<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      LOG.fatal("Unable to serialize the procedure: " + proc, e);<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      throw new RuntimeException(e);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    } finally {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      releaseSlot(slot);<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    }<a name="line.391"></a>
+<span class="sourceLineNo">392</span>  }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>  @Override<a name="line.394"></a>
+<span class="sourceLineNo">395</span>  public void delete(final long procId) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    if (LOG.isTraceEnabled()) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>      LOG.trace("Delete " + procId);<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>  @Override<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  public void delete(final long procId) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    if (LOG.isTraceEnabled()) {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      LOG.trace("Delete " + procId);<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>    ByteSlot slot = acquireSlot();<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    try {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      // Serialize the delete<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      ProcedureWALFormat.writeDelete(slot, procId);<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>      // Push the transaction data and wait until it is persisted<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      pushData(PushType.DELETE, slot, procId, null);<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    } catch (IOException e) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      // We are not able to serialize the procedure.<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      // this is a code error, and we are not able to go on.<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      LOG.fatal("Unable to serialize the procedure: " + procId, e);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      throw new RuntimeException(e);<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    } finally {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      releaseSlot(slot);<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>  private ByteSlot acquireSlot() {<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    ByteSlot slot = slotsCache.poll();<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    return slot != null ? slot : new ByteSlot();<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>  private void releaseSlot(final ByteSlot slot) {<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    slot.reset();<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    slotsCache.offer(slot);<a name="line.430"></a>
-<span class="sourceLineNo">431</span>  }<a name="line.431"></a>
-<span class="sourceLineNo">432</span><a name="line.432"></a>
-<span class="sourceLineNo">433</span>  private enum PushType { INSERT, UPDATE, DELETE };<a name="line.433"></a>
-<span class="sourceLineNo">434</span><a name="line.434"></a>
-<span class="sourceLineNo">435</span>  private long pushData(final PushType type, final ByteSlot slot,<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      final long procId, final long[] subProcIds) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    if (!isRunning()) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      throw new RuntimeException("the store must be running before inserting data");<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    }<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    if (logs.isEmpty()) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      throw new RuntimeException("recoverLease() must be called before inserting data");<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>    long logId = -1;<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    lock.lock();<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    try {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      // Wait for the sync to be completed<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      while (true) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>        if (!isRunning()) {<a name="line.449"></a>
-<span class="sourceLineNo">450</span>          throw new RuntimeException("store no longer running");<a name="line.450"></a>
-<span class="sourceLineNo">451</span>        } else if (isSyncAborted()) {<a name="line.451"></a>
-<span class="sourceLineNo">452</span>          throw new RuntimeException("sync aborted", syncException.get());<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        } else if (inSync.get()) {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>          syncCond.await();<a name="line.454"></a>
-<span class="sourceLineNo">455</span>        } else if (slotIndex == slots.length) {<a name="line.455"></a>
-<span class="sourceLineNo">456</span>          slotCond.signal();<a name="line.456"></a>
-<span class="sourceLineNo">457</span>          syncCond.await();<a name="line.457"></a>
-<span class="sourceLineNo">458</span>        } else {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>          break;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>        }<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      }<a name="line.461"></a>
-<span class="sourceLineNo">462</span><a name="line.462"></a>
-<span class="sourceLineNo">463</span>      updateStoreTracker(type, procId, subProcIds);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      slots[slotIndex++] = slot;<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      logId = flushLogId;<a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>      // Notify that there is new data<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      if (slotIndex == 1) {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>        waitCond.signal();<a name="line.469"></a>
+<span class="sourceLineNo">400</span>    ByteSlot slot = acquireSlot();<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    try {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>      // Serialize the delete<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      ProcedureWALFormat.writeDelete(slot, procId);<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>      // Push the transaction data and wait until it is persisted<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      pushData(PushType.DELETE, slot, procId, null);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    } catch (IOException e) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>      // We are not able to serialize the procedure.<a name="line.408"></a>
+<span class="sourceLineNo">409</span>      // this is a code error, and we are not able to go on.<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      LOG.fatal("Unable to serialize the procedure: " + procId, e);<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      throw new RuntimeException(e);<a name="line.411"></a>
+<span class="sourceLineNo">412</span>    } finally {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      releaseSlot(slot);<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    }<a name="line.414"></a>
+<span class="sourceLineNo">415</span>  }<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span>  private ByteSlot acquireSlot() {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    ByteSlot slot = slotsCache.poll();<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    return slot != null ? slot : new ByteSlot();<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>  private void releaseSlot(final ByteSlot slot) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    slot.reset();<a name="line.423"></a>
+<span class="sourceLineNo">424</span>    slotsCache.offer(slot);<a name="line.424"></a>
+<span class="sourceLineNo">425</span>  }<a name="line.425"></a>
+<span class="sourceLineNo">426</span><a name="line.426"></a>
+<span class="sourceLineNo">427</span>  private enum PushType { INSERT, UPDATE, DELETE };<a name="line.427"></a>
+<span class="sourceLineNo">428</span><a name="line.428"></a>
+<span class="sourceLineNo">429</span>  private long pushData(final PushType type, final ByteSlot slot,<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      final long procId, final long[] subProcIds) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    if (!isRunning()) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      throw new RuntimeException("the store must be running before inserting data");<a name="line.432"></a>
+<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    if (logs.isEmpty()) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      throw new RuntimeException("recoverLease() must be called before inserting data");<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    }<a name="line.436"></a>
+<span class="sourceLineNo">437</span><a name="line.437"></a>
+<span class="sourceLineNo">438</span>    long logId = -1;<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    lock.lock();<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    try {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      // Wait for the sync to be completed<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      while (true) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        if (!isRunning()) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>          throw new RuntimeException("store no longer running");<a name="line.444"></a>
+<span class="sourceLineNo">445</span>        } else if (isSyncAborted()) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>          throw new RuntimeException("sync aborted", syncException.get());<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        } else if (inSync.get()) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>          syncCond.await();<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        } else if (slotIndex == slots.length) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>          slotCond.signal();<a name="line.450"></a>
+<span class="sourceLineNo">451</span>          syncCond.await();<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        } else {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>          break;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        }<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>      updateStoreTracker(type, procId, subProcIds);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>      slots[slotIndex++] = slot;<a name="line.458"></a>
+<span class="sourceLineNo">459</span>      logId = flushLogId;<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>      // Notify that there is new data<a name="line.461"></a>
+<span class="sourceLineNo">462</span>      if (slotIndex == 1) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        waitCond.signal();<a name="line.463"></a>
+<span class="sourceLineNo">464</span>      }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>      // Notify that the slots are full<a name="line.466"></a>
+<span class="sourceLineNo">467</span>      if (slotIndex == slots.length) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>        waitCond.signal();<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        slotCond.signal();<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>      // Notify that the slots are full<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      if (slotIndex == slots.length) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        waitCond.signal();<a name="line.474"></a>
-<span class="sourceLineNo">475</span>        slotCond.signal();<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>      syncCond.await();<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    } catch (InterruptedException e) {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      Thread.currentThread().interrupt();<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      sendAbortProcessSignal();<a name="line.481"></a>
-<span class="sourceLineNo">482</span>      throw new RuntimeException(e);<a name="line.482"></a>
-<span class="sourceLineNo">483</span>    } finally {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      lock.unlock();<a name="line.484"></a>
-<span class="sourceLineNo">485</span>      if (isSyncAborted()) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>        throw new RuntimeException("sync aborted", syncException.get());<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      }<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    }<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    return logId;<a name="line.489"></a>
-<span class="sourceLineNo">490</span>  }<a name="line.490"></a>
-<span class="sourceLineNo">491</span><a name="line.491"></a>
-<span class="sourceLineNo">492</span>  private void updateStoreTracker(final PushType type,<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      final long procId, final long[] subProcIds) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    switch (type) {<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      case INSERT:<a name="line.495"></a>
-<span class="sourceLineNo">496</span>        if (subProcIds == null) {<a name="line.496"></a>
-<span class="sourceLineNo">497</span>          storeTracker.insert(procId);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>        } else {<a name="line.498"></a>
-<span class="sourceLineNo">499</span>          storeTracker.insert(procId, subProcIds);<a name="line.499"></a>
-<span class="sourceLineNo">500</span>        }<a name="line.500"></a>
+<span class="sourceLineNo">472</span>      syncCond.await();<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    } catch (InterruptedException e) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>      Thread.currentThread().interrupt();<a name="line.474"></a>
+<span class="sourceLineNo">475</span>      sendAbortProcessSignal();<a name="line.475"></a>
+<span class="sourceLineNo">476</span>      throw new RuntimeException(e);<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    } finally {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>      lock.unlock();<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      if (isSyncAborted()) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        throw new RuntimeException("sync aborted", syncException.get());<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      }<a name="line.481"></a>
+<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
+<span class="sourceLineNo">483</span>    return logId;<a name="line.483"></a>
+<span class="sourceLineNo">484</span>  }<a name="line.484"></a>
+<span class="sourceLineNo">485</span><a name="line.485"></a>
+<span class="sourceLineNo">486</span>  private void updateStoreTracker(final PushType type,<a name="line.486"></a>
+<span class="sourceLineNo">487</span>      final long procId, final long[] subProcIds) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>    switch (type) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>      case INSERT:<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        if (subProcIds == null) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>          storeTracker.insert(procId);<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        } else {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>          storeTracker.insert(procId, subProcIds);<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        }<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        break;<a name="line.495"></a>
+<span class="sourceLineNo">496</span>      case UPDATE:<a name="line.496"></a>
+<span class="sourceLineNo">497</span>        storeTracker.update(procId);<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        break;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>      case DELETE:<a name="line.499"></a>
+<span class="sourceLineNo">500</span>        storeTracker.delete(procId);<a name="line.500"></a>
 <span class="sourceLineNo">501</span>        break;<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      case UPDATE:<a name="line.502"></a>
-<span class="sourceLineNo">503</span>        storeTracker.update(procId);<a name="line.503"></a>
-<span class="sourceLineNo">504</span>        break;<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      case DELETE:<a name="line.505"></a>
-<span class="sourceLineNo">506</span>        storeTracker.delete(procId);<a name="line.506"></a>
-<span class="sourceLineNo">507</span>        break;<a name="line.507"></a>
-<span class="sourceLineNo">508</span>      default:<a name="line.508"></a>
-<span class="sourceLineNo">509</span>        throw new RuntimeException("invalid push type " + type);<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    }<a name="line.510"></a>
-<span class="sourceLineNo">511</span>  }<a name="line.511"></a>
-<span class="sourceLineNo">512</span><a name="line.512"></a>
-<span class="sourceLineNo">513</span>  private boolean isSyncAborted() {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>    return syncException.get() != null;<a name="line.514"></a>
-<span class="sourceLineNo">515</span>  }<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>  private void syncLoop() throws Throwable {<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    inSync.set(false);<a name="line.518"></a>
-<span class="sourceLineNo">519</span>    lock.lock();<a name="line.519"></a>
-<span class="sourceLineNo">520</span>    try {<a name="line.520"></a>
-<span class="sourceLineNo">521</span>      while (isRunning()) {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>        try {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>          // Wait until new data is available<a name="line.523"></a>
-<span class="sourceLineNo">524</span>          if (slotIndex == 0) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>            if (!loading.get()) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>              periodicRoll();<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>            if (LOG.isTraceEnabled()) {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>              float rollTsSec = getMillisFromLastRoll() / 1000.0f;<a name="line.530"></a>
-<span class="sourceLineNo">531</span>              LOG.trace(String.format("Waiting for data. flushed=%s (%s/sec)",<a name="line.531"></a>
-<span class="sourceLineNo">532</span>                        StringUtils.humanSize(totalSynced.get()),<a name="line.532"></a>
-<span class="sourceLineNo">533</span>                        StringUtils.humanSize(totalSynced.get() / rollTsSec)));<a name="line.533"></a>
+<span class="sourceLineNo">502</span>      default:<a name="line.502"></a>
+<span class="sourceLineNo">503</span>        throw new RuntimeException("invalid push type " + type);<a name="line.503"></a>
+<span class="sourceLineNo">504</span>    }<a name="line.504"></a>
+<span class="sourceLineNo">505</span>  }<a name="line.505"></a>
+<span class="sourceLineNo">506</span><a name="line.506"></a>
+<span class="sourceLineNo">507</span>  private boolean isSyncAborted() {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>    return syncException.get() != null;<a name="line.508"></a>
+<span class="sourceLineNo">509</span>  }<a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span>  private void syncLoop() throws Throwable {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>    inSync.set(false);<a name="line.512"></a>
+<span class="sourceLineNo">513</span>    lock.lock();<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    try {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>      while (isRunning()) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        try {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>          // Wait until new data is available<a name="line.517"></a>
+<span class="sourceLineNo">518</span>          if (slotIndex == 0) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>            if (!loading.get()) {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>              periodicRoll();<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>            if (LOG.isTraceEnabled()) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>              float rollTsSec = getMillisFromLastRoll() / 1000.0f;<a name="line.524"></a>
+<span class="sourceLineNo">525</span>              LOG.trace(String.format("Waiting for data. flushed=%s (%s/sec)",<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                        StringUtils.humanSize(totalSynced.get()),<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                        StringUtils.humanSize(totalSynced.get() / rollTsSec)));<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>            waitCond.await(getMillisToNextPeriodicRoll(), TimeUnit.MILLISECONDS);<a name="line.530"></a>
+<span class="sourceLineNo">531</span>            if (slotIndex == 0) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>              // no data.. probably a stop() or a periodic roll<a name="line.532"></a>
+<span class="sourceLineNo">533</span>              continue;<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>            waitCond.await(getMillisToNextPeriodicRoll(), TimeUnit.MILLISECONDS);<a name="line.536"></a>
-<span class="sourceLineNo">537</span>            if (slotIndex == 0) {<a name="line.537"></a>
-<span class="sourceLineNo">538</span>              // no data.. probably a stop() or a periodic roll<a name="line.538"></a>
-<span class="sourceLineNo">539</span>              continue;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>            }<a name="line.540"></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>          // Wait SYNC_WAIT_MSEC or the signal of "slots full" before flushing<a name="line.537"></a>
+<span class="sourceLineNo">538</span>          long syncWaitSt = System.currentTimeMillis();<a name="line.538"></a>
+<span class="sourceLineNo">539</span>          if (slotIndex != slots.length) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>            slotCond.await(syncWaitMsec, TimeUnit.MILLISECONDS);<a name="line.540"></a>
 <span class="sourceLineNo">541</span>          }<a name="line.541"></a>
-<span class="sourceLineNo">542</span><a name="line.542"></a>
-<span class="sourceLineNo">543</span>          // Wait SYNC_WAIT_MSEC or the signal of "slots full" before flushing<a name="line.543"></a>
-<span class="sourceLineNo">544</span>          long syncWaitSt = System.currentTimeMillis();<a name="line.544"></a>
-<span class="sourceLineNo">545</span>          if (slotIndex != slots.length) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>            slotCond.await(syncWaitMsec, TimeUnit.MILLISECONDS);<a name="line.546"></a>
-<span class="sourceLineNo">547</span>          }<a name="line.547"></a>
-<span class="sourceLineNo">548</span>          long syncWaitMs = System.currentTimeMillis() - syncWaitSt;<a name="line.548"></a>
-<span class="sourceLineNo">549</span>          if (LOG.isTraceEnabled() &amp;&amp; (syncWaitMs &gt; 10 || slotIndex &lt; slots.length)) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>            float rollSec = getMillisFromLastRoll() / 1000.0f;<a name="line.550"></a>
-<span class="sourceLineNo">551</span>            LOG.trace(String.format("Sync wait %s, slotIndex=%s , totalSynced=%s (%s/sec)",<a name="line.551"></a>
-<span class="sourceLineNo">552</span>                      StringUtils.humanTimeDiff(syncWaitMs), slotIndex,<a name="line.552"></a>
-<span class="sourceLineNo">553</span>                      StringUtils.humanSize(totalSynced.get()),<a name="line.553"></a>
-<span class="sourceLineNo">554</span>                      StringUtils.humanSize(totalSynced.get() / rollSec)));<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>          inSync.set(true);<a name="line.557"></a>
-<span class="sourceLineNo">558</span>          totalSynced.addAndGet(syncSlots());<a name="line.558"></a>
-<span class="sourceLineNo">559</span>          slotIndex = 0;<a name="line.559"></a>
-<span class="sourceLineNo">560</span>          inSync.set(false);<a name="line.560"></a>
-<span class="sourceLineNo">561</span>        } catch (InterruptedException e) {<a name="line.561"></a>
-<span class="sourceLineNo">562</span>          Thread.currentThread().interrupt();<a name="line.562"></a>
-<span class="sourceLineNo">563</span>          sendAbortProcessSignal();<a name="line.563"></a>
-<span class="sourceLineNo">564</span>          syncException.compareAndSet(null, e);<a name="line.564"></a>
-<span class="sourceLineNo">565</span>          throw e;<a name="line.565"></a>
-<span class="sourceLineNo">566</span>        } catch (Throwable t) {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>          syncException.compareAndSet(null, t);<a name="line.567"></a>
-<span class="sourceLineNo">568</span>          throw t;<a name="line.568"></a>
-<span class="sourceLineNo">569</span>        } finally {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>          syncCond.signalAll();<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        }<a name="line.571"></a>
-<span class="sourceLineNo">572</span>      }<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    } finally {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      lock.unlock();<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>  }<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>  private long syncSlots() throws Throwable {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    int retry = 0;<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    int logRolled = 0;<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    long totalSynced = 0;<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    do {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      try {<a name="line.583"></a>
-<span class="sourceLineNo">584</span>        totalSynced = syncSlots(stream, slots, 0, slotIndex);<a name="line.584"></a>
-<span class="sourceLineNo">585</span>        break;<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      } catch (Throwable e) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>        if (++retry &gt;= maxRetriesBeforeRoll) {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>          if (logRolled &gt;= maxSyncFailureRoll) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>            LOG.error("Sync slots after log roll failed, abort.", e);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>            sendAbortProcessSignal();<a name="line.590"></a>
-<span class="sourceLineNo">591</span>            throw e;<a name="line.591"></a>
-<span class="sourceLineNo">592</span>          }<a name="line.592"></a>
-<span class="sourceLineNo">593</span><a name="line.593"></a>
-<span class="sourceLineNo">594</span>          if (!rollWriterOrDie()) {<a name="line.594"></a>
-<span class="sourceLineNo">595</span>            throw e;<a name="line.595"></a>
-<span class="sourceLineNo">596</span>          }<a name="line.596"></a>
-<span class="sourceLineNo">597</span><a name="line.597"></a>
-<span class="sourceLineNo">598</span>          logRolled++;<a name="line.598"></a>
-<span class="sourceLineNo">599</span>          retry = 0;<a name="line.599"></a>
-<span class="sourceLineNo">600</span>        }<a name="line.600"></a>
-<span class="sourceLineNo">601</span>      }<a name="line.601"></a>
-<span class="sourceLineNo">602</span>    } while (isRunning());<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    return totalSynced;<a name="line.603"></a>
-<span class="sourceLineNo">604</span>  }<a name="line.604"></a>
-<span class="sourceLineNo">605</span><a name="line.605"></a>
-<span class="sourceLineNo">606</span>  protected long syncSlots(FSDataOutputStream stream, ByteSlot[] slots, int offset, int count)<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      throws IOException {<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    long totalSynced = 0;<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    for (int i = 0; i &lt; count; ++i) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      ByteSlot data = slots[offset + i];<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      data.writeTo(stream);<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      totalSynced += data.size();<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    }<a name="line.613"></a>
-<span class="sourceLineNo">614</span><a name="line.614"></a>
-<span class="sourceLineNo">615</span>    if (useHsync) {<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      stream.hsync();<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    } else {<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      stream.hflush();<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    }<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    sendPostSyncSignal();<a name="line.620"></a>
-<span class="sourceLineNo">621</span><a name="line.621"></a>
-<span class="sourceLineNo">622</span>    if (LOG.isTraceEnabled()) {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      LOG.trace("Sync slots=" + count + '/' + slots.length +<a name="line.623"></a>
-<span class="sourceLineNo">624</span>                ", flushed=" + StringUtils.humanSize(totalSynced));<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    }<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    return totalSynced;<a name="line.626"></a>
-<span class="sourceLineNo">627</span>  }<a name="line.627"></a>
-<span class="sourceLineNo">628</span><a name="line.628"></a>
-<span class="sourceLineNo">629</span>  private boolean rollWriterOrDie() {<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    for (int i = 1; i &lt;= rollRetries; ++i) {<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      try {<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        if (rollWriter()) {<a name="line.632"></a>
-<span class="sourceLineNo">633</span>          return true;<a name="line.633"></a>
-<span class="sourceLineNo">634</span>        }<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      } catch (IOException e) {<a name="line.635"></a>
-<span class="sourceLineNo">636</span>        LOG.warn("Unable to roll the log, attempt=" + i, e);<a name="line.636"></a>
-<span class="sourceLineNo">637</span>        Threads.sleepWithoutInterrupt(waitBeforeRoll);<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      }<a name="line.638"></a>
-<span class="sourceLineNo">639</span>    }<a name="line.639"></a>
-<span class="sourceLineNo">640</span>    LOG.fatal("Unable to roll the log");<a name="line.640"></a>
-<span class="sourceLineNo">641</span>    sendAbortProcessSignal();<a name="line.641"></a>
-<span class="sourceLineNo">642</span>    throw new RuntimeException("unable to roll the log");<a name="line.642"></a>
-<span class="sourceLineNo">643</span>  }<a name="line.643"></a>
-<span class="sourceLineNo">644</span><a name="line.644"></a>
-<span class="sourceLineNo">645</span>  private boolean tryRollWriter() {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    try {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>      return rollWriter();<a name="line.647"></a>
-<span class="sourceLineNo">648</span>    } catch (IOException e) {<a name="line.648"></a>
-<span class="sourceLineNo">649</span>      LOG.warn("Unable to roll the log", e);<a name="line.649"></a>
-<span class="sourceLineNo">650</span>      return false;<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    }<a name="line.651"></a>
-<span class="sourceLineNo">652</span>  }<a name="line.652"></a>
-<span class="sourceLineNo">653</span><a name="line.653"></a>
-<span class="sourceLineNo">654</span>  private long getMillisToNextPeriodicRoll() {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    if (lastRollTs.get() &gt; 0 &amp;&amp; periodicRollMsec &gt; 0) {<a name="line.655"></a>
-<span class="sourceLineNo">656</span>      return periodicRollMsec - getMillisFromLastRoll();<a name="line.656"></a>
-<span class="sourceLineNo">657</span>    }<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    return Long.MAX_VALUE;<a name="line.658"></a>
+<span class="sourceLineNo">542</span>          long syncWaitMs = System.currentTimeMillis() - syncWaitSt;<a name="line.542"></a>
+<span class="sourceLineNo">543</span>          if (LOG.isTraceEnabled() &amp;&amp; (syncWaitMs &gt; 10 || slotIndex &lt; slots.length)) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>            float rollSec = getMillisFromLastRoll() / 1000.0f;<a name="line.544"></a>
+<span class="sourceLineNo">545</span>            LOG.trace(String.format("Sync wait %s, slotIndex=%s , totalSynced=%s (%s/sec)",<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                      StringUtils.humanTimeDiff(syncWaitMs), slotIndex,<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                      StringUtils.humanSize(totalSynced.get()),<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                      StringUtils.humanSize(totalSynced.get() / rollSec)));<a name="line.548"></a>
+<span class="sourceLineNo">549</span>          }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>          inSync.set(true);<a name="line.551"></a>
+<span class="sourceLineNo">552</span>          totalSynced.addAndGet(syncSlots());<a name="line.552"></a>
+<span class="sourceLineNo">553</span>          slotIndex = 0;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>          inSync.set(false);<a name="line.554"></a>
+<span class="sourceLineNo">555</span>        } catch (InterruptedException e) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>          Thread.currentThread().interrupt();<a name="line.556"></a>
+<span class="sourceLineNo">557</span>          sendAbortProcessSignal();<a name="line.557"></a>
+<span class="sourceLineNo">558</span>          syncException.compareAndSet(null, e);<a name="line.558"></a>
+<span class="sourceLineNo">559</span>          throw e;<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        } catch (Throwable t) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>          syncException.compareAndSet(null, t);<a name="line.561"></a>
+<span class="sourceLineNo">562</span>          throw t;<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        } finally {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>          syncCond.signalAll();<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>    } finally {<a name="line.567"></a>
+<span class="sourceLineNo">568</span>      lock.unlock();<a name="line.568"></a>
+<span class="sourceLineNo">569</span>    }<a name="line.569"></a>
+<span class="sourceLineNo">570</span>  }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>  private long syncSlots() throws Throwable {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>    int retry = 0;<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    int logRolled = 0;<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    long totalSynced = 0;<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    do {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>      try {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>        totalSynced = syncSlots(stream, slots, 0, slotIndex);<a name="line.578"></a>
+<span class="sourceLineNo">579</span>        break;<a name="line.579"></a>
+<span class="sourceLineNo">580</span>      } catch (Throwable e) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>        LOG.warn("unable to sync slots, retry=" + retry);<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        if (++retry &gt;= maxRetriesBeforeRoll) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>          if (logRolled &gt;= maxSyncFailureRoll) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>            LOG.error("Sync slots after log roll failed, abort.", e);<a name="line.584"></a>
+<span class="sourceLineNo">585</span>            sendAbortProcessSignal();<a name="line.585"></a>
+<span class="sourceLineNo">586</span>            throw e;<a name="line.586"></a>
+<span class="sourceLineNo">587</span>          }<a name="line.587"></a>
+<span class="sourceLineNo">588</span><a name="line.588"></a>
+<span class="sourceLineNo">589</span>          if (!rollWriterOrDie()) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>            throw e;<a name="line.590"></a>
+<span class="sourceLineNo">591</span>          }<a name="line.591"></a>
+<span class="sourceLineNo">592</span><a name="line.592"></a>
+<span class="sourceLineNo">593</span>          logRolled++;<a name="line.593"></a>
+<span class="sourceLineNo">594</span>          retry = 0;<a name="line.594"></a>
+<span class="sourceLineNo">595</span>        }<a name="line.595"></a>
+<span class="sourceLineNo">596</span>      }<a name="line.596"></a>
+<span class="sourceLineNo">597</span>    } while (isRunning());<a name="line.597"></a>
+<span class="sourceLineNo">598</span>    return totalSynced;<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>  protected long syncSlots(FSDataOutputStream stream, ByteSlot[] slots, int offset, int count)<a name="line.601"></a>
+<span class="sourceLineNo">602</span>      throws IOException {<a name="line.602"></a>
+<span class="sourceLineNo">603</span>    long totalSynced = 0;<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    for (int i = 0; i &lt; count; ++i) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      ByteSlot data = slots[offset + i];<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      data.writeTo(stream);<a name="line.606"></a>
+<span class="sourceLineNo">607</span>      totalSynced += data.size();<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>    if (useHsync) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>      stream.hsync();<a name="line.611"></a>
+<span class="sourceLineNo">612</span>    } else {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>      stream.hflush();<a name="line.613"></a>
+<span class="sourceLineNo">614</span>    }<a name="line.614"></a>
+<span class="sourceLineNo">615</span>    sendPostSyncSignal();<a name="line.615"></a>
+<span class="sourceLineNo">616</span><a name="line.616"></a>
+<span class="sourceLineNo">617</span>    if (LOG.isTraceEnabled()) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>      LOG.trace("Sync slots=" + count + '/' + slots.length +<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                ", flushed=" + StringUtils.humanSize(totalSynced));<a name="line.619"></a>
+<span class="sourceLineNo">620</span>    }<a name="line.620"></a>
+<span class="sourceLineNo">621</span>    return totalSynced;<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>  private boolean rollWriterOrDie() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>    for (int i = 0; i &lt; rollRetries; ++i) {<a name="line.625"></a>
+<span class="sourceLineNo">626</span>      if (i &gt; 0) Threads.sleepWithoutInterrupt(waitBeforeRoll * i);<a name="line.626"></a>
+<span class="sourceLineNo">627</span><a name="line.627"></a>
+<span class="sourceLineNo">628</span>      try {<a name="line.628"></a>
+<span class="sourceLineNo">629</span>        if (rollWriter()) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>          return true;<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        }<a name="line.631"></a>
+<span class="sourceLineNo">632</span>      } catch (IOException e) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>        LOG.warn("Unable to roll the log, attempt=" + (i + 1), e);<a name="line.633"></a>
+<span class="sourceLineNo">634</span>      }<a name="line.634"></a>
+<span class="sourceLineNo">635</span>    }<a name="line.635"></a>
+<span class="sourceLineNo">636</span>    LOG.fatal("Unable to roll the log");<a name="line.636"></a>
+<span class="sourceLineNo">637</span>    sendAbortProcessSignal();<a name="line.637"></a>
+<span class="sourceLineNo">638</span>    throw new RuntimeException("unable to roll the log");<a name="line.638"></a>
+<span class="sourceLineNo">639</span>  }<a name="line.639"></a>
+<span class="sourceLineNo">640</span><a name="line.640"></a>
+<span class="sourceLineNo">641</span>  private boolean tryRollWriter() {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    try {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>      return rollWriter();<a name="line.643"></a>
+<span class="sourceLineNo">644</span>    } catch (IOException e) {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      LOG.warn("Unable to roll the log", e);<a name="line.645"></a>
+<span class="sourceLineNo">646</span>      return false;<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>  private long getMillisToNextPeriodicRoll() {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>    if (lastRollTs.get() &gt; 0 &amp;&amp; periodicRollMsec &gt; 0) {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>      return periodicRollMsec - getMillisFromLastRoll();<a name="line.652"></a>
+<span class="sourceLineNo">653</span>    }<a name="line.653"></a>
+<span class="sourceLineNo">654</span>    return Long.MAX_VALUE;<a name="line.654"></a>
+<span class="sourceLineNo">655</span>  }<a name="line.655"></a>
+<span class="sourceLineNo">656</span><a name="line.656"></a>
+<span class="sourceLineNo">657</span>  private long getMillisFromLastRoll() {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>    return (System.currentTimeMillis() - lastRollTs.get());<a name="line.658"></a>
 <span class="sourceLineNo">659</span>  }<a name="line.659"></a>
 <span class="sourceLineNo">660</span><a name="line.660"></a>
-<span class="sourceLineNo">661</span>  private long getMillisFromLastRoll() {<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    return (System.currentTimeMillis() - lastRollTs.get());<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>  @VisibleForTesting<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  protected void periodicRollForTesting() throws IOException {<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    lock.lock();<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    try {<a name="line.668"></a>
-<span class="sourceLineNo">669</span>      periodicRoll();<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    } finally {<a name="line.670"></a>
-<span class="sourceLineNo">671</span>      lock.unlock();<a name="line.671"></a>
-<span class="sourceLineNo">672</span>    }<a name="line.672"></a>
-<span class="sourceLineNo">673</span>  }<a name="line.673"></a>
-<span class="sourceLineNo">674</span><a name="line.674"></a>
-<span class="sourceLineNo">675</span>  @VisibleForTesting<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  protected boolean rollWriterForTesting() throws IOException {<a name="line.676"></a>
-<span class="sourceLineNo">677</span>    lock.lock();<a name="line.677"></a>
-<span class="sourceLineNo">678</span>    try {<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      return rollWriter();<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    } finally {<a name="line.680"></a>
-<span class="sourceLineNo">681</span>      lock.unlock();<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    }<a name="line.682"></a>
-<span class="sourceLineNo">683</span>  }<a name="line.683"></a>
-<span class="sourceLineNo">684</span><a name="line.684"></a>
-<span class="sourceLineNo">685</span>  private void periodicRoll() throws IOException {<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    if (storeTracker.isEmpty()) {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>      if (LOG.isTraceEnabled()) {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>        LOG.trace("no active procedures");<a name="line.688"></a>
-<span class="sourceLineNo">689</span>      }<a name="line.689"></a>
-<span class="sourceLineNo">690</span>      tryRollWriter();<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      removeAllLogs(flushLogId - 1);<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    } else {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>      if (storeTracker.isUpdated()) {<a name="line.693"></a>
-<span class="sourceLineNo">694</span>        if (LOG.isTraceEnabled()) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>          LOG.trace("all the active procedures are in the latest log");<a name="line.695"></a>
-<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        removeAllLogs(flushLogId - 1);<a name="line.697"></a>
-<span class="sourceLineNo">698</span>      }<a name="line.698"></a>
-<span class="sourceLineNo">699</span><a name="line.699"></a>
-<span class="sourceLineNo">700</span>      // if the log size has exceeded the roll threshold<a name="line.700"></a>
-<span class="sourceLineNo">701</span>      // or the periodic roll timeout is expired, try to roll the wal.<a name="line.701"></a>
-<span class="sourceLineNo">702</span>      if (totalSynced.get() &gt; rollThreshold || getMillisToNextPeriodicRoll() &lt;= 0) {<a name="line.702"></a>
-<span class="sourceLineNo">703</span>        tryRollWriter();<a name="line.703"></a>
-<span class="sourceLineNo">704</span>      }<a name="line.704"></a>
+<span class="sourceLineNo">661</span>  @VisibleForTesting<a name="line.661"></a>
+<span class="sourceLineNo">662</span>  protected void periodicRollForTesting() throws IOException {<a name="line.662"></a>
+<span class="sourceLineNo">663</span>    lock.lock();<a name="line.663"></a>
+<span class="sourceLineNo">664</span>    try {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>      periodicRoll();<a name="line.665"></a>
+<span class="sourceLineNo">666</span>    } finally {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>      lock.unlock();<a name="line.667"></a>
+<span class="sourceLineNo">668</span>    }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>  }<a name="line.669"></a>
+<span class="sourceLineNo">670</span><a name="line.670"></a>
+<span class="sourceLineNo">671</span>  @VisibleForTesting<a name="line.671"></a>
+<span class="sourceLineNo">672</span>  protected boolean rollWriterForTesting() throws IOException {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>    lock.lock();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>    try {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>      return rollWriter();<a name="line.675"></a>
+<span class="sourceLineNo">676</span>    } finally {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>      lock.unlock();<a name="line.677"></a>
+<span class="sourceLineNo">678</span>    }<a name="line.678"></a>
+<span class="sourceLineNo">679</span>  }<a name="line.679"></a>
+<span class="sourceLineNo">680</span><a name="line.680"></a>
+<span class="sourceLineNo">681</span>  private void periodicRoll() throws IOException {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>    if (storeTracker.isEmpty()) {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>      if (LOG.isTraceEnabled()) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>        LOG.trace("no active procedures");<a name="line.684"></a>
+<span class="sourceLineNo">685</span>      }<a name="line.685"></a>
+<span class="sourceLineNo">686</span>      tryRollWriter();<a name="line.686"></a>
+<span class="sourceLineNo">687</span>      removeAllLogs(flushLogId - 1);<a name="line.687"></a>
+<span class="sourceLineNo">688</span>    } else {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>      if (storeTracker.isUpdated()) {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>        if (LOG.isTraceEnabled()) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>          LOG.trace("all the active procedures are in the latest log");<a name="line.691"></a>
+<span class="sourceLineNo">692</span>        }<a name="line.692"></a>
+<span class="sourceLineNo">693</span>        removeAllLogs(flushLogId - 1);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>      }<a name="line.694"></a>
+<span class="sourceLineNo">695</span><a name="line.695"></a>
+<span class="sourceLineNo">696</span>      // if the log size has exceeded the roll threshold<a name="line.696"></a>
+<span class="sourceLineNo">697</span>      // or the periodic roll timeout is expired, try to roll the wal.<a name="line.697"></a>
+<span class="sourceLineNo">698</span>      if (totalSynced.get() &gt; rollThreshold || getMillisToNextPeriodicRoll() &lt;= 0) {<a name="line.698"></a>
+<span class="sourceLineNo">699</span>        tryRollWriter();<a name="line.699"></a>
+<span class="sourceLineNo">700</span>      }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>      removeInactiveLogs();<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>      removeInactiveLogs();<a name="line.706"></a>
-<span class="sourceLineNo">707</span>    }<a name="line.707"></a>
-<span class="sourceLineNo">708</span>  }<a name="line.708"></a>
-<span class="sourceLineNo">709</span><a name="line.709"></a>
-<span class="sourceLineNo">710</span>  private boolean rollWriter() throws IOException {<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    // Create new state-log<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    if (!rollWriter(flushLogId + 1)) {<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      LOG.warn("someone else has already created log " + flushLogId);<a name="line.713"></a>
-<span class="sourceLineNo">714</span>      return false;<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    }<a name="line.715"></a>
-<span class="sourceLineNo">716</span><a name="line.716"></a>
-<span class="sourceLineNo">717</span>    // We have the lease on the log,<a name="line.717"></a>
-<span class="sourceLineNo">718</span>    // but we should check if someone else has created new files<a name="line.718"></a>
-<span class="sourceLineNo">719</span>    if (getMaxLogId(getLogFiles()) &gt; flushLogId) {<a name="line.719"></a>
-<span class="sourceLineNo">720</span>      LOG.warn("Someone else created new logs. Expected maxLogId &lt; " + flushLogId);<a name="line.720"></a>
-<span class="sourceLineNo">721</span>      logs.getLast().removeFile();<a name="line.721"></a>
-<span class="sourceLineNo">722</span>      return false;<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    }<a name="line.723"></a>
+<span class="sourceLineNo">706</span>  private boolean rollWriter() throws IOException {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>    // Create new state-log<a name="line.707"></a>
+<span class="sourceLineNo">708</span>    if (!rollWriter(flushLogId + 1)) {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>      LOG.warn("someone else has already created log " + flushLogId);<a name="line.709"></a>
+<span class="sourceLineNo">710</span>      return false;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>    }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>    // We have the lease on the log,<a name="line.713"></a>
+<span class="sourceLineNo">714</span>    // but we should check if someone else has created new files<a name="line.714"></a>
+<span class="sourceLineNo">715</span>    if (getMaxLogId(getLogFiles()) &gt; flushLogId) {<a name="line.715"></a>
+<span class="sourceLineNo">716</span>      LOG.warn("Someone else created new logs. Expected maxLogId &lt; " + flushLogId);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>      logs.getLast().removeFile();<a name="line.717"></a>
+<span class="sourceLineNo">718</span>      return false;<a name="line.718"></a>
+<span class="sourceLineNo">719</span>    }<a name="line.719"></a>
+<span class="sourceLineNo">720</span><a name="line.720"></a>
+<span class="sourceLineNo">721</span>    // We have the lease on the log<a name="line.721"></a>
+<span class="sourceLineNo">722</span>    return true;<a name="line.722"></a>
+<span class="sourceLineNo">723</span>  }<a name="line.723"></a>
 <span class="sourceLineNo">724</span><a name="line.724"></a>
-<span class="sourceLineNo">725</span>    // We have the lease on the log<a name="line.725"></a>
-<span class="sourceLineNo">726</span>    return true;<a name="line.726"></a>
-<span class="sourceLineNo">727</span>  }<a name="line.727"></a>
+<span class="sourceLineNo">725</span>  private boolean rollWriter(final long logId) throws IOException {<a name="line.725"></a>
+<span class="sourceLineNo">726</span>    assert logId &gt; flushLogId : "logId=" + logId + " flushLogId=" + flushLogId;<a name="line.726"></a>
+<span class="sourceLineNo">727</span>    assert lock.isHeldByCurrentThread() : "expected to be the lock owner. " + lock.isLocked();<a name="line.727"></a>
 <span class="sourceLineNo">728</span><a name="line.728"></a>
-<span class="sourceLineNo">729</span>  private boolean rollWriter(final long logId) throws IOException {<a name="line.729"></a>
-<span class="sourceLineNo">730</span>    assert logId &gt; flushLogId : "logId=" + logId + " flushLogId=" + flushLogId;<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    assert lock.isHeldByCurrentThread() : "expected to be the lock owner. " + lock.isLocked();<a name="line.731"></a>
-<span class="sourceLineNo">732</span><a name="line.732"></a>
-<span class="sourceLineNo">733</span>    ProcedureWALHeader header = ProcedureWALHeader.newBuilder()<a name="line.733"></a>
-<span class="sourceLineNo">734</span>      .setVersion(ProcedureWALFormat.HEADER_VERSION)<a name="line.734"></a>
-<span class="sourceLineNo">735</span>      .setType(ProcedureWALFormat.LOG_TYPE_STREAM)<a name="line.735"></a>
-<span class="sourceLineNo">736</span>      .setMinProcId(storeTracker.getMinProcId())<a name="line.736"></a>
-<span class="sourceLineNo">737</span>      .setLogId(logId)<a name="line.737"></a>
-<span class="sourceLineNo">738</span>      .build();<a name="line.738"></a>
-<span class="sourceLineNo">739</span><a name

<TRUNCATED>

[18/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html
index 2ab8ebc..10be916 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html
@@ -316,7 +316,7 @@
 <span class="sourceLineNo">308</span>      public void handleCorrupted(ProcedureIterator procIter) throws IOException {<a name="line.308"></a>
 <span class="sourceLineNo">309</span>        int corruptedCount = 0;<a name="line.309"></a>
 <span class="sourceLineNo">310</span>        while (procIter.hasNext()) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>          Procedure proc = procIter.next();<a name="line.311"></a>
+<span class="sourceLineNo">311</span>          ProcedureInfo proc = procIter.nextAsProcedureInfo();<a name="line.311"></a>
 <span class="sourceLineNo">312</span>          LOG.error("corrupted procedure: " + proc);<a name="line.312"></a>
 <span class="sourceLineNo">313</span>          corruptedCount++;<a name="line.313"></a>
 <span class="sourceLineNo">314</span>        }<a name="line.314"></a>
@@ -329,972 +329,989 @@
 <span class="sourceLineNo">321</span><a name="line.321"></a>
 <span class="sourceLineNo">322</span>  private void loadProcedures(final ProcedureIterator procIter,<a name="line.322"></a>
 <span class="sourceLineNo">323</span>      final boolean abortOnCorruption) throws IOException {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    // 1. Build the rollback stack<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    int runnablesCount = 0;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    while (procIter.hasNext()) {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      Procedure proc = procIter.next();<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      if (!proc.hasParent() &amp;&amp; !proc.isFinished()) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>        rollbackStack.put(proc.getProcId(), new RootProcedureState());<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      // add the procedure to the map<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      proc.beforeReplay(getEnvironment());<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      procedures.put(proc.getProcId(), proc);<a name="line.333"></a>
-<span class="sourceLineNo">334</span><a name="line.334"></a>
-<span class="sourceLineNo">335</span>      // add the nonce to the map<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      if (proc.getNonceKey() != null) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>        nonceKeysToProcIdsMap.put(proc.getNonceKey(), proc.getProcId());<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>      if (proc.getState() == ProcedureState.RUNNABLE) {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>        runnablesCount++;<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">324</span>    final boolean isDebugEnabled = LOG.isDebugEnabled();<a name="line.324"></a>
+<span class="sourceLineNo">325</span><a name="line.325"></a>
+<span class="sourceLineNo">326</span>    // 1. Build the rollback stack<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    int runnablesCount = 0;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    while (procIter.hasNext()) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      final NonceKey nonceKey;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      final long procId;<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>      if (procIter.isNextCompleted()) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        ProcedureInfo proc = procIter.nextAsProcedureInfo();<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        nonceKey = proc.getNonceKey();<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        procId = proc.getProcId();<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        completed.put(proc.getProcId(), proc);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        if (isDebugEnabled) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>          LOG.debug("The procedure is completed: " + proc);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>        }<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      } else {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        Procedure proc = procIter.nextAsProcedure();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        nonceKey = proc.getNonceKey();<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        procId = proc.getProcId();<a name="line.343"></a>
 <span class="sourceLineNo">344</span><a name="line.344"></a>
-<span class="sourceLineNo">345</span>    // 2. Initialize the stacks<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    ArrayList&lt;Procedure&gt; runnableList = new ArrayList(runnablesCount);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    HashSet&lt;Procedure&gt; waitingSet = null;<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    procIter.reset();<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    while (procIter.hasNext()) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      Procedure proc = procIter.next();<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      if (LOG.isDebugEnabled()) {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>        LOG.debug(String.format("Loading procedure state=%s isFailed=%s: %s",<a name="line.352"></a>
-<span class="sourceLineNo">353</span>                    proc.getState(), proc.hasException(), proc));<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      }<a name="line.354"></a>
-<span class="sourceLineNo">355</span><a name="line.355"></a>
-<span class="sourceLineNo">356</span>      Long rootProcId = getRootProcedureId(proc);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      if (rootProcId == null) {<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        // The 'proc' was ready to run but the root procedure was rolledback?<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        runnables.addBack(proc);<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        continue;<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>      if (!proc.hasParent() &amp;&amp; proc.isFinished()) {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>        if (LOG.isDebugEnabled()) {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>          LOG.debug(String.format("The procedure is completed state=%s isFailed=%s",<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    proc.getState(), proc.hasException()));<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>        assert !rollbackStack.containsKey(proc.getProcId());<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        procedures.remove(proc.getProcId());<a name="line.369"></a>
-<span class="sourceLineNo">370</span>        completed.put(proc.getProcId(), Procedure.createProcedureInfo(proc, proc.getNonceKey()));<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">345</span>        if (!proc.hasParent()) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>          assert !proc.isFinished() : "unexpected finished procedure";<a name="line.346"></a>
+<span class="sourceLineNo">347</span>          rollbackStack.put(proc.getProcId(), new RootProcedureState());<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>        // add the procedure to the map<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        proc.beforeReplay(getEnvironment());<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        procedures.put(proc.getProcId(), proc);<a name="line.352"></a>
+<span class="sourceLineNo">353</span><a name="line.353"></a>
+<span class="sourceLineNo">354</span>        if (proc.getState() == ProcedureState.RUNNABLE) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          runnablesCount++;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>      // add the nonce to the map<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      if (nonceKey != null) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>        nonceKeysToProcIdsMap.put(nonceKey, procId);<a name="line.361"></a>
+<span class="sourceLineNo">362</span>      }<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>    // 2. Initialize the stacks<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    ArrayList&lt;Procedure&gt; runnableList = new ArrayList(runnablesCount);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    HashSet&lt;Procedure&gt; waitingSet = null;<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    procIter.reset();<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    while (procIter.hasNext()) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>      if (procIter.isNextCompleted()) {<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        procIter.skipNext();<a name="line.371"></a>
 <span class="sourceLineNo">372</span>        continue;<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>      if (proc.hasParent() &amp;&amp; !proc.isFinished()) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>        Procedure parent = procedures.get(proc.getParentProcId());<a name="line.376"></a>
-<span class="sourceLineNo">377</span>        // corrupted procedures are handled later at step 3<a name="line.377"></a>
-<span class="sourceLineNo">378</span>        if (parent != null) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>          parent.incChildrenLatch();<a name="line.379"></a>
-<span class="sourceLineNo">380</span>        }<a name="line.380"></a>
+<span class="sourceLineNo">375</span>      Procedure proc = procIter.nextAsProcedure();<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      assert !(proc.isFinished() &amp;&amp; !proc.hasParent()) : "unexpected completed proc=" + proc;<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>      if (isDebugEnabled) {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        LOG.debug(String.format("Loading procedure state=%s isFailed=%s: %s",<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                    proc.getState(), proc.hasException(), proc));<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>      RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      procStack.loadStack(proc);<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>      switch (proc.getState()) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>        case RUNNABLE:<a name="line.387"></a>
-<span class="sourceLineNo">388</span>          runnableList.add(proc);<a name="line.388"></a>
-<span class="sourceLineNo">389</span>          break;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        case WAITING_TIMEOUT:<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          if (waitingSet == null) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>            waitingSet = new HashSet&lt;Procedure&gt;();<a name="line.392"></a>
-<span class="sourceLineNo">393</span>          }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>          waitingSet.add(proc);<a name="line.394"></a>
-<span class="sourceLineNo">395</span>          break;<a name="line.395"></a>
-<span class="sourceLineNo">396</span>        case FINISHED:<a name="line.396"></a>
-<span class="sourceLineNo">397</span>          if (proc.hasException()) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>            // add the proc to the runnables to perform the rollback<a name="line.398"></a>
-<span class="sourceLineNo">399</span>            runnables.addBack(proc);<a name="line.399"></a>
-<span class="sourceLineNo">400</span>            break;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          }<a name="line.401"></a>
-<span class="sourceLineNo">402</span>        case ROLLEDBACK:<a name="line.402"></a>
-<span class="sourceLineNo">403</span>        case INITIALIZING:<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          String msg = "Unexpected " + proc.getState() + " state for " + proc;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          LOG.error(msg);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          throw new UnsupportedOperationException(msg);<a name="line.406"></a>
-<span class="sourceLineNo">407</span>        default:<a name="line.407"></a>
-<span class="sourceLineNo">408</span>          break;<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    }<a name="line.410"></a>
-<span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>    // 3. Validate the stacks<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    int corruptedCount = 0;<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    Iterator&lt;Map.Entry&lt;Long, RootProcedureState&gt;&gt; itStack = rollbackStack.entrySet().iterator();<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    while (itStack.hasNext()) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      Map.Entry&lt;Long, RootProcedureState&gt; entry = itStack.next();<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      RootProcedureState procStack = entry.getValue();<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      if (procStack.isValid()) continue;<a name="line.418"></a>
-<span class="sourceLineNo">419</span><a name="line.419"></a>
-<span class="sourceLineNo">420</span>      for (Procedure proc: procStack.getSubprocedures()) {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>        LOG.error("corrupted procedure: " + proc);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        procedures.remove(proc.getProcId());<a name="line.422"></a>
-<span class="sourceLineNo">423</span>        runnableList.remove(proc);<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        if (waitingSet != null) waitingSet.remove(proc);<a name="line.424"></a>
-<span class="sourceLineNo">425</span>        corruptedCount++;<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      itStack.remove();<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>    if (abortOnCorruption &amp;&amp; corruptedCount &gt; 0) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      throw new IOException("found " + corruptedCount + " procedures on replay");<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
-<span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span>    // 4. Push the runnables<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    if (!runnableList.isEmpty()) {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // TODO: See ProcedureWALFormatReader#hasFastStartSupport<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      // some procedure may be started way before this stuff.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (int i = runnableList.size() - 1; i &gt;= 0; --i) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        Procedure proc = runnableList.get(i);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        if (!proc.hasParent()) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          sendProcedureLoadedNotification(proc.getProcId());<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (proc.wasExecuted()) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          runnables.addFront(proc);<a name="line.444"></a>
-<span class="sourceLineNo">445</span>        } else {<a name="line.445"></a>
-<span class="sourceLineNo">446</span>          // if it was not in execution, it can wait.<a name="line.446"></a>
-<span class="sourceLineNo">447</span>          runnables.addBack(proc);<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>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  /**<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * Start the procedure executor.<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * It calls ProcedureStore.recoverLease() and ProcedureStore.load() to<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * recover the lease, and ensure a single executor, and start the procedure<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * replay to resume and recover the previous pending and in-progress perocedures.<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   *<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   * @param numThreads number of threads available for procedure execution.<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   * @param abortOnCorruption true if you want to abort your service in case<a name="line.460"></a>
-<span class="sourceLineNo">461</span>   *          a corrupted procedure is found on replay. otherwise false.<a name="line.461"></a>
-<span class="sourceLineNo">462</span>   */<a name="line.462"></a>
-<span class="sourceLineNo">463</span>  public void start(int numThreads, boolean abortOnCorruption) throws IOException {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    if (running.getAndSet(true)) {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      LOG.warn("Already running");<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      return;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
-<span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>    // We have numThreads executor + one timer thread used for timing out<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    // procedures and triggering periodic procedures.<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    threads = new Thread[numThreads + 1];<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    LOG.info("Starting procedure executor threads=" + threads.length);<a name="line.472"></a>
-<span class="sourceLineNo">473</span><a name="line.473"></a>
-<span class="sourceLineNo">474</span>    // Initialize procedures executor<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    for (int i = 0; i &lt; numThreads; ++i) {<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      threads[i] = new Thread("ProcedureExecutor-" + i) {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>        @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span>        public void run() {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>          execLoop();<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        }<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      };<a name="line.481"></a>
+<span class="sourceLineNo">383</span>      Long rootProcId = getRootProcedureId(proc);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      if (rootProcId == null) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        // The 'proc' was ready to run but the root procedure was rolledback?<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        runnables.addBack(proc);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        continue;<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>      if (proc.hasParent() &amp;&amp; !proc.isFinished()) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        Procedure parent = procedures.get(proc.getParentProcId());<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        // corrupted procedures are handled later at step 3<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        if (parent != null) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>          parent.incChildrenLatch();<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>      RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.398"></a>
+<span class="sourceLineNo">399</span>      procStack.loadStack(proc);<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>      switch (proc.getState()) {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        case RUNNABLE:<a name="line.402"></a>
+<span class="sourceLineNo">403</span>          runnableList.add(proc);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>          break;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        case WAITING_TIMEOUT:<a name="line.405"></a>
+<span class="sourceLineNo">406</span>          if (waitingSet == null) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>            waitingSet = new HashSet&lt;Procedure&gt;();<a name="line.407"></a>
+<span class="sourceLineNo">408</span>          }<a name="line.408"></a>
+<span class="sourceLineNo">409</span>          waitingSet.add(proc);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>          break;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        case FINISHED:<a name="line.411"></a>
+<span class="sourceLineNo">412</span>          if (proc.hasException()) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>            // add the proc to the runnables to perform the rollback<a name="line.413"></a>
+<span class="sourceLineNo">414</span>            runnables.addBack(proc);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>            break;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>          }<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        case ROLLEDBACK:<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        case INITIALIZING:<a name="line.418"></a>
+<span class="sourceLineNo">419</span>          String msg = "Unexpected " + proc.getState() + " state for " + proc;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>          LOG.error(msg);<a name="line.420"></a>
+<span class="sourceLineNo">421</span>          throw new UnsupportedOperationException(msg);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        default:<a name="line.422"></a>
+<span class="sourceLineNo">423</span>          break;<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      }<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    }<a name="line.425"></a>
+<span class="sourceLineNo">426</span><a name="line.426"></a>
+<span class="sourceLineNo">427</span>    // 3. Validate the stacks<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    int corruptedCount = 0;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    Iterator&lt;Map.Entry&lt;Long, RootProcedureState&gt;&gt; itStack = rollbackStack.entrySet().iterator();<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    while (itStack.hasNext()) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      Map.Entry&lt;Long, RootProcedureState&gt; entry = itStack.next();<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      RootProcedureState procStack = entry.getValue();<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      if (procStack.isValid()) continue;<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>      for (Procedure proc: procStack.getSubprocedures()) {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        LOG.error("corrupted procedure: " + proc);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        procedures.remove(proc.getProcId());<a name="line.437"></a>
+<span class="sourceLineNo">438</span>        runnableList.remove(proc);<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        if (waitingSet != null) waitingSet.remove(proc);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        corruptedCount++;<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      }<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      itStack.remove();<a name="line.442"></a>
+<span class="sourceLineNo">443</span>    }<a name="line.443"></a>
+<span class="sourceLineNo">444</span><a name="line.444"></a>
+<span class="sourceLineNo">445</span>    if (abortOnCorruption &amp;&amp; corruptedCount &gt; 0) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      throw new IOException("found " + corruptedCount + " procedures on replay");<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>    // 4. Push the runnables<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    if (!runnableList.isEmpty()) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      // TODO: See ProcedureWALFormatReader#hasFastStartSupport<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      // some procedure may be started way before this stuff.<a name="line.452"></a>
+<span class="sourceLineNo">453</span>      for (int i = runnableList.size() - 1; i &gt;= 0; --i) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        Procedure proc = runnableList.get(i);<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        if (!proc.hasParent()) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>          sendProcedureLoadedNotification(proc.getProcId());<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        }<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        if (proc.wasExecuted()) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>          runnables.addFront(proc);<a name="line.459"></a>
+<span class="sourceLineNo">460</span>        } else {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>          // if it was not in execution, it can wait.<a name="line.461"></a>
+<span class="sourceLineNo">462</span>          runnables.addBack(proc);<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        }<a name="line.463"></a>
+<span class="sourceLineNo">464</span>      }<a name="line.464"></a>
+<span class="sourceLineNo">465</span>    }<a name="line.465"></a>
+<span class="sourceLineNo">466</span>  }<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>  /**<a name="line.468"></a>
+<span class="sourceLineNo">469</span>   * Start the procedure executor.<a name="line.469"></a>
+<span class="sourceLineNo">470</span>   * It calls ProcedureStore.recoverLease() and ProcedureStore.load() to<a name="line.470"></a>
+<span class="sourceLineNo">471</span>   * recover the lease, and ensure a single executor, and start the procedure<a name="line.471"></a>
+<span class="sourceLineNo">472</span>   * replay to resume and recover the previous pending and in-progress perocedures.<a name="line.472"></a>
+<span class="sourceLineNo">473</span>   *<a name="line.473"></a>
+<span class="sourceLineNo">474</span>   * @param numThreads number of threads available for procedure execution.<a name="line.474"></a>
+<span class="sourceLineNo">475</span>   * @param abortOnCorruption true if you want to abort your service in case<a name="line.475"></a>
+<span class="sourceLineNo">476</span>   *          a corrupted procedure is found on replay. otherwise false.<a name="line.476"></a>
+<span class="sourceLineNo">477</span>   */<a name="line.477"></a>
+<span class="sourceLineNo">478</span>  public void start(int numThreads, boolean abortOnCorruption) throws IOException {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>    if (running.getAndSet(true)) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>      LOG.warn("Already running");<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      return;<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>    // Initialize procedures timeout handler (this is the +1 thread)<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    threads[numThreads] = new Thread("ProcedureExecutorTimeoutThread") {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      @Override<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      public void run() {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>        timeoutLoop();<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      }<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    };<a name="line.490"></a>
-<span class="sourceLineNo">491</span><a name="line.491"></a>
-<span class="sourceLineNo">492</span>    // Acquire the store lease.<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    store.recoverLease();<a name="line.493"></a>
-<span class="sourceLineNo">494</span><a name="line.494"></a>
-<span class="sourceLineNo">495</span>    // TODO: Split in two steps.<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    // TODO: Handle corrupted procedures (currently just a warn)<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    // The first one will make sure that we have the latest id,<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    // so we can start the threads and accept new procedures.<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    // The second step will do the actual load of old procedures.<a name="line.499"></a>
-<span class="sourceLineNo">500</span>    load(abortOnCorruption);<a name="line.500"></a>
-<span class="sourceLineNo">501</span><a name="line.501"></a>
-<span class="sourceLineNo">502</span>    // Start the executors. Here we must have the lastProcId set.<a name="line.502"></a>
-<span class="sourceLineNo">503</span>    for (int i = 0; i &lt; threads.length; ++i) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      threads[i].start();<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    }<a name="line.505"></a>
+<span class="sourceLineNo">484</span>    // We have numThreads executor + one timer thread used for timing out<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    // procedures and triggering periodic procedures.<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    threads = new Thread[numThreads + 1];<a name="line.486"></a>
+<span class="sourceLineNo">487</span>    LOG.info("Starting procedure executor threads=" + threads.length);<a name="line.487"></a>
+<span class="sourceLineNo">488</span><a name="line.488"></a>
+<span class="sourceLineNo">489</span>    // Initialize procedures executor<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    for (int i = 0; i &lt; numThreads; ++i) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>      threads[i] = new Thread("ProcedureExecutor-" + i) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        public void run() {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>          execLoop();<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        }<a name="line.495"></a>
+<span class="sourceLineNo">496</span>      };<a name="line.496"></a>
+<span class="sourceLineNo">497</span>    }<a name="line.497"></a>
+<span class="sourceLineNo">498</span><a name="line.498"></a>
+<span class="sourceLineNo">499</span>    // Initialize procedures timeout handler (this is the +1 thread)<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    threads[numThreads] = new Thread("ProcedureExecutorTimeoutThread") {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>      @Override<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      public void run() {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>        timeoutLoop();<a name="line.503"></a>
+<span class="sourceLineNo">504</span>      }<a name="line.504"></a>
+<span class="sourceLineNo">505</span>    };<a name="line.505"></a>
 <span class="sourceLineNo">506</span><a name="line.506"></a>
-<span class="sourceLineNo">507</span>    // Add completed cleaner<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    waitingTimeout.add(<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      new CompletedProcedureCleaner(conf, store, completed, nonceKeysToProcIdsMap));<a name="line.509"></a>
-<span class="sourceLineNo">510</span>  }<a name="line.510"></a>
-<span class="sourceLineNo">511</span><a name="line.511"></a>
-<span class="sourceLineNo">512</span>  public void stop() {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    if (!running.getAndSet(false)) {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      return;<a name="line.514"></a>
-<span class="sourceLineNo">515</span>    }<a name="line.515"></a>
+<span class="sourceLineNo">507</span>    // Acquire the store lease.<a name="line.507"></a>
+<span class="sourceLineNo">508</span>    store.recoverLease();<a name="line.508"></a>
+<span class="sourceLineNo">509</span><a name="line.509"></a>
+<span class="sourceLineNo">510</span>    // TODO: Split in two steps.<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    // TODO: Handle corrupted procedures (currently just a warn)<a name="line.511"></a>
+<span class="sourceLineNo">512</span>    // The first one will make sure that we have the latest id,<a name="line.512"></a>
+<span class="sourceLineNo">513</span>    // so we can start the threads and accept new procedures.<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    // The second step will do the actual load of old procedures.<a name="line.514"></a>
+<span class="sourceLineNo">515</span>    load(abortOnCorruption);<a name="line.515"></a>
 <span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>    LOG.info("Stopping the procedure executor");<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    runnables.signalAll();<a name="line.518"></a>
-<span class="sourceLineNo">519</span>    waitingTimeout.signalAll();<a name="line.519"></a>
-<span class="sourceLineNo">520</span>  }<a name="line.520"></a>
+<span class="sourceLineNo">517</span>    // Start the executors. Here we must have the lastProcId set.<a name="line.517"></a>
+<span class="sourceLineNo">518</span>    for (int i = 0; i &lt; threads.length; ++i) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>      threads[i].start();<a name="line.519"></a>
+<span class="sourceLineNo">520</span>    }<a name="line.520"></a>
 <span class="sourceLineNo">521</span><a name="line.521"></a>
-<span class="sourceLineNo">522</span>  public void join() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    boolean interrupted = false;<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>    for (int i = 0; i &lt; threads.length; ++i) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      try {<a name="line.526"></a>
-<span class="sourceLineNo">527</span>        threads[i].join();<a name="line.527"></a>
-<span class="sourceLineNo">528</span>      } catch (InterruptedException ex) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        interrupted = true;<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><a name="line.532"></a>
-<span class="sourceLineNo">533</span>    if (interrupted) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      Thread.currentThread().interrupt();<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
+<span class="sourceLineNo">522</span>    // Add completed cleaner<a name="line.522"></a>
+<span class="sourceLineNo">523</span>    waitingTimeout.add(<a name="line.523"></a>
+<span class="sourceLineNo">524</span>      new CompletedProcedureCleaner(conf, store, completed, nonceKeysToProcIdsMap));<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 stop() {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>    if (!running.getAndSet(false)) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>      return;<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>    LOG.info("Stopping the procedure executor");<a name="line.532"></a>
+<span class="sourceLineNo">533</span>    runnables.signalAll();<a name="line.533"></a>
+<span class="sourceLineNo">534</span>    waitingTimeout.signalAll();<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>    completed.clear();<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    rollbackStack.clear();<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    procedures.clear();<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    nonceKeysToProcIdsMap.clear();<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    waitingTimeout.clear();<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    runnables.clear();<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    lastProcId.set(-1);<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>  public boolean isRunning() {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    return running.get();<a name="line.547"></a>
-<span class="sourceLineNo">548</span>  }<a name="line.548"></a>
-<span class="sourceLineNo">549</span><a name="line.549"></a>
-<span class="sourceLineNo">550</span>  /**<a name="line.550"></a>
-<span class="sourceLineNo">551</span>   * @return the number of execution threads.<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   */<a name="line.552"></a>
-<span class="sourceLineNo">553</span>  public int getNumThreads() {<a name="line.553"></a>
-<span class="sourceLineNo">554</span>    return threads == null ? 0 : (threads.length - 1);<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>  public int getActiveExecutorCount() {<a name="line.557"></a>
-<span class="sourceLineNo">558</span>    return activeExecutorCount.get();<a name="line.558"></a>
+<span class="sourceLineNo">537</span>  public void join() {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    boolean interrupted = false;<a name="line.538"></a>
+<span class="sourceLineNo">539</span><a name="line.539"></a>
+<span class="sourceLineNo">540</span>    for (int i = 0; i &lt; threads.length; ++i) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>      try {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>        threads[i].join();<a name="line.542"></a>
+<span class="sourceLineNo">543</span>      } catch (InterruptedException ex) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        interrupted = true;<a name="line.544"></a>
+<span class="sourceLineNo">545</span>      }<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    }<a name="line.546"></a>
+<span class="sourceLineNo">547</span><a name="line.547"></a>
+<span class="sourceLineNo">548</span>    if (interrupted) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      Thread.currentThread().interrupt();<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>    completed.clear();<a name="line.552"></a>
+<span class="sourceLineNo">553</span>    rollbackStack.clear();<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    procedures.clear();<a name="line.554"></a>
+<span class="sourceLineNo">555</span>    nonceKeysToProcIdsMap.clear();<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    waitingTimeout.clear();<a name="line.556"></a>
+<span class="sourceLineNo">557</span>    runnables.clear();<a name="line.557"></a>
+<span class="sourceLineNo">558</span>    lastProcId.set(-1);<a name="line.558"></a>
 <span class="sourceLineNo">559</span>  }<a name="line.559"></a>
 <span class="sourceLineNo">560</span><a name="line.560"></a>
-<span class="sourceLineNo">561</span>  public TEnvironment getEnvironment() {<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    return this.environment;<a name="line.562"></a>
+<span class="sourceLineNo">561</span>  public boolean isRunning() {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    return running.get();<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>  public ProcedureStore getStore() {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    return this.store;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>  }<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    this.listeners.add(listener);<a name="line.570"></a>
-<span class="sourceLineNo">571</span>  }<a name="line.571"></a>
-<span class="sourceLineNo">572</span><a name="line.572"></a>
-<span class="sourceLineNo">573</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    return this.listeners.remove(listener);<a name="line.574"></a>
-<span class="sourceLineNo">575</span>  }<a name="line.575"></a>
-<span class="sourceLineNo">576</span><a name="line.576"></a>
-<span class="sourceLineNo">577</span>  /**<a name="line.577"></a>
-<span class="sourceLineNo">578</span>   * List procedures.<a name="line.578"></a>
-<span class="sourceLineNo">579</span>   * @return the procedures in a list<a name="line.579"></a>
-<span class="sourceLineNo">580</span>   */<a name="line.580"></a>
-<span class="sourceLineNo">581</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    List&lt;ProcedureInfo&gt; procedureLists =<a name="line.582"></a>
-<span class="sourceLineNo">583</span>        new ArrayList&lt;ProcedureInfo&gt;(procedures.size() + completed.size());<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    for (java.util.Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      procedureLists.add(Procedure.createProcedureInfo(p.getValue(), null));<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    for (java.util.Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.588"></a>
-<span class="sourceLineNo">589</span>      // it could complete after we walk through procedures list and insert into<a name="line.589"></a>
-<span class="sourceLineNo">590</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      procedureLists.add(e.getValue());<a name="line.592"></a>
-<span class="sourceLineNo">593</span>    }<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    return procedureLists;<a name="line.594"></a>
-<span class="sourceLineNo">595</span>  }<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>  /**<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * Add a new root-procedure to the executor.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * @param proc the new procedure to execute.<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   */<a name="line.601"></a>
-<span class="sourceLineNo">602</span>  public long submitProcedure(final Procedure proc) {<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    return submitProcedure(proc, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.603"></a>
-<span class="sourceLineNo">604</span>  }<a name="line.604"></a>
-<span class="sourceLineNo">605</span><a name="line.605"></a>
-<span class="sourceLineNo">606</span>  /**<a name="line.606"></a>
-<span class="sourceLineNo">607</span>   * Add a new root-procedure to the executor.<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   * @param proc the new procedure to execute.<a name="line.608"></a>
-<span class="sourceLineNo">609</span>   * @param nonceGroup<a name="line.609"></a>
-<span class="sourceLineNo">610</span>   * @param nonce<a name="line.610"></a>
-<span class="sourceLineNo">611</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.611"></a>
-<span class="sourceLineNo">612</span>   */<a name="line.612"></a>
-<span class="sourceLineNo">613</span>  public long submitProcedure(<a name="line.613"></a>
-<span class="sourceLineNo">614</span>      final Procedure proc,<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      final long nonceGroup,<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      final long nonce) {<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    Preconditions.checkArgument(isRunning());<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    Preconditions.checkArgument(!proc.hasParent());<a name="line.620"></a>
-<span class="sourceLineNo">621</span><a name="line.621"></a>
-<span class="sourceLineNo">622</span>    Long currentProcId;<a name="line.622"></a>
-<span class="sourceLineNo">623</span><a name="line.623"></a>
-<span class="sourceLineNo">624</span>    // The following part of the code has to be synchronized to prevent multiple request<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    // with the same nonce to execute at the same time.<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    synchronized (this) {<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      // Check whether the proc exists.  If exist, just return the proc id.<a name="line.627"></a>
-<span class="sourceLineNo">628</span>      // This is to prevent the same proc to submit multiple times (it could happen<a name="line.628"></a>
-<span class="sourceLineNo">629</span>      // when client could not talk to server and resubmit the same request).<a name="line.629"></a>
-<span class="sourceLineNo">630</span>      NonceKey noncekey = null;<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      if (nonce != HConstants.NO_NONCE) {<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        noncekey = new NonceKey(nonceGroup, nonce);<a name="line.632"></a>
-<span class="sourceLineNo">633</span>        currentProcId = nonceKeysToProcIdsMap.get(noncekey);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>        if (currentProcId != null) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>          // Found the proc<a name="line.635"></a>
-<span class="sourceLineNo">636</span>          return currentProcId;<a name="line.636"></a>
-<span class="sourceLineNo">637</span>        }<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      }<a name="line.638"></a>
-<span class="sourceLineNo">639</span><a name="line.639"></a>
-<span class="sourceLineNo">640</span>      // Initialize the Procedure ID<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      currentProcId = nextProcId();<a name="line.641"></a>
-<span class="sourceLineNo">642</span>      proc.setProcId(currentProcId);<a name="line.642"></a>
-<span class="sourceLineNo">643</span><a name="line.643"></a>
-<span class="sourceLineNo">644</span>      // This is new procedure. Set the noncekey and insert into the map.<a name="line.644"></a>
-<span class="sourceLineNo">645</span>      if (noncekey != null) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>        proc.setNonceKey(noncekey);<a name="line.646"></a>
-<span class="sourceLineNo">647</span>        nonceKeysToProcIdsMap.put(noncekey, currentProcId);<a name="line.647"></a>
-<span class="sourceLineNo">648</span>      }<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    } // end of synchronized (this)<a name="line.649"></a>
-<span class="sourceLineNo">650</span><a name="line.650"></a>
-<span class="sourceLineNo">651</span>    // Commit the transaction<a name="line.651"></a>
-<span class="sourceLineNo">652</span>    store.insert(proc, null);<a name="line.652"></a>
-<span class="sourceLineNo">653</span>    if (LOG.isDebugEnabled()) {<a name="line.653"></a>
-<span class="sourceLineNo">654</span>      LOG.debug("Procedure " + proc + " added to the store.");<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    }<a name="line.655"></a>
-<span class="sourceLineNo">656</span><a name="line.656"></a>
-<span class="sourceLineNo">657</span>    // Create the rollback stack for the procedure<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    RootProcedureState stack = new RootProcedureState();<a name="line.658"></a>
-<span class="sourceLineNo">659</span>    rollbackStack.put(currentProcId, stack);<a name="line.659"></a>
-<span class="sourceLineNo">660</span><a name="line.660"></a>
-<span class="sourceLineNo">661</span>    // Submit the new subprocedures<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    assert !procedures.containsKey(currentProcId);<a name="line.662"></a>
-<span class="sourceLineNo">663</span>    procedures.put(currentProcId, proc);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    sendProcedureAddedNotification(currentProcId);<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    runnables.addBack(proc);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    return currentProcId;<a name="line.666"></a>
-<span class="sourceLineNo">667</span>  }<a name="line.667"></a>
-<span class="sourceLineNo">668</span><a name="line.668"></a>
-<span class="sourceLineNo">669</span>  public ProcedureInfo getResult(final long procId) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    return completed.get(procId);<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>  /**<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   * Return true if the procedure is finished.<a name="line.674"></a>
-<span class="sourceLineNo">675</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.675"></a>
-<span class="sourceLineNo">676</span>   * Use getResult() to check the state or get the result data.<a name="line.676"></a>
-<span class="sourceLineNo">677</span>   * @param procId the ID of the procedure to check<a name="line.677"></a>
-<span class="sourceLineNo">678</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>   */<a name="line.679"></a>
-<span class="sourceLineNo">680</span>  public boolean isFinished(final long procId) {<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    return completed.containsKey(procId);<a name="line.681"></a>
+<span class="sourceLineNo">565</span>  /**<a name="line.565"></a>
+<span class="sourceLineNo">566</span>   * @return the number of execution threads.<a name="line.566"></a>
+<span class="sourceLineNo">567</span>   */<a name="line.567"></a>
+<span class="sourceLineNo">568</span>  public int getNumThreads() {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>    return threads == null ? 0 : (threads.length - 1);<a name="line.569"></a>
+<span class="sourceLineNo">570</span>  }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>  public int getActiveExecutorCount() {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>    return activeExecutorCount.get();<a name="line.573"></a>
+<span class="sourceLineNo">574</span>  }<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>  public TEnvironment getEnvironment() {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    return this.environment;<a name="line.577"></a>
+<span class="sourceLineNo">578</span>  }<a name="line.578"></a>
+<span class="sourceLineNo">579</span><a name="line.579"></a>
+<span class="sourceLineNo">580</span>  public ProcedureStore getStore() {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>    return this.store;<a name="line.581"></a>
+<span class="sourceLineNo">582</span>  }<a name="line.582"></a>
+<span class="sourceLineNo">583</span><a name="line.583"></a>
+<span class="sourceLineNo">584</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>    this.listeners.add(listener);<a name="line.585"></a>
+<span class="sourceLineNo">586</span>  }<a name="line.586"></a>
+<span class="sourceLineNo">587</span><a name="line.587"></a>
+<span class="sourceLineNo">588</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>    return this.listeners.remove(listener);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>  }<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>  /**<a name="line.592"></a>
+<span class="sourceLineNo">593</span>   * List procedures.<a name="line.593"></a>
+<span class="sourceLineNo">594</span>   * @return the procedures in a list<a name="line.594"></a>
+<span class="sourceLineNo">595</span>   */<a name="line.595"></a>
+<span class="sourceLineNo">596</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>    List&lt;ProcedureInfo&gt; procedureLists =<a name="line.597"></a>
+<span class="sourceLineNo">598</span>        new ArrayList&lt;ProcedureInfo&gt;(procedures.size() + completed.size());<a name="line.598"></a>
+<span class="sourceLineNo">599</span>    for (java.util.Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>      procedureLists.add(Procedure.createProcedureInfo(p.getValue(), null));<a name="line.600"></a>
+<span class="sourceLineNo">601</span>    }<a name="line.601"></a>
+<span class="sourceLineNo">602</span>    for (java.util.Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.602"></a>
+<span class="sourceLineNo">603</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.603"></a>
+<span class="sourceLineNo">604</span>      // it could complete after we walk through procedures list and insert into<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.606"></a>
+<span class="sourceLineNo">607</span>      procedureLists.add(e.getValue());<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>    return procedureLists;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>  }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>  /**<a name="line.612"></a>
+<span class="sourceLineNo">613</span>   * Add a new root-procedure to the executor.<a name="line.613"></a>
+<span class="sourceLineNo">614</span>   * @param proc the new procedure to execute.<a name="line.614"></a>
+<span class="sourceLineNo">615</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.615"></a>
+<span class="sourceLineNo">616</span>   */<a name="line.616"></a>
+<span class="sourceLineNo">617</span>  public long submitProcedure(final Procedure proc) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>    return submitProcedure(proc, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.618"></a>
+<span class="sourceLineNo">619</span>  }<a name="line.619"></a>
+<span class="sourceLineNo">620</span><a name="line.620"></a>
+<span class="sourceLineNo">621</span>  /**<a name="line.621"></a>
+<span class="sourceLineNo">622</span>   * Add a new root-procedure to the executor.<a name="line.622"></a>
+<span class="sourceLineNo">623</span>   * @param proc the new procedure to execute.<a name="line.623"></a>
+<span class="sourceLineNo">624</span>   * @param nonceGroup<a name="line.624"></a>
+<span class="sourceLineNo">625</span>   * @param nonce<a name="line.625"></a>
+<span class="sourceLineNo">626</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.626"></a>
+<span class="sourceLineNo">627</span>   */<a name="line.627"></a>
+<span class="sourceLineNo">628</span>  public long submitProcedure(<a name="line.628"></a>
+<span class="sourceLineNo">629</span>      final Procedure proc,<a name="line.629"></a>
+<span class="sourceLineNo">630</span>      final long nonceGroup,<a name="line.630"></a>
+<span class="sourceLineNo">631</span>      final long nonce) {<a name="line.631"></a>
+<span class="sourceLineNo">632</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.632"></a>
+<span class="sourceLineNo">633</span>    Preconditions.checkArgument(isRunning());<a name="line.633"></a>
+<span class="sourceLineNo">634</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>    Preconditions.checkArgument(!proc.hasParent());<a name="line.635"></a>
+<span class="sourceLineNo">636</span><a name="line.636"></a>
+<span class="sourceLineNo">637</span>    Long currentProcId;<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>    // The following part of the code has to be synchronized to prevent multiple request<a name="line.639"></a>
+<span class="sourceLineNo">640</span>    // with the same nonce to execute at the same time.<a name="line.640"></a>
+<span class="sourceLineNo">641</span>    synchronized (this) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>      // Check whether the proc exists.  If exist, just return the proc id.<a name="line.642"></a>
+<span class="sourceLineNo">643</span>      // This is to prevent the same proc to submit multiple times (it could happen<a name="line.643"></a>
+<span class="sourceLineNo">644</span>      // when client could not talk to server and resubmit the same request).<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      NonceKey noncekey = null;<a name="line.645"></a>
+<span class="sourceLineNo">646</span>      if (nonce != HConstants.NO_NONCE) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>        noncekey = new NonceKey(nonceGroup, nonce);<a name="line.647"></a>
+<span class="sourceLineNo">648</span>        currentProcId = nonceKeysToProcIdsMap.get(noncekey);<a name="line.648"></a>
+<span class="sourceLineNo">649</span>        if (currentProcId != null) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>          // Found the proc<a name="line.650"></a>
+<span class="sourceLineNo">651</span>          return currentProcId;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>        }<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      }<a name="line.653"></a>
+<span class="sourceLineNo">654</span><a name="line.654"></a>
+<span class="sourceLineNo">655</span>      // Initialize the Procedure ID<a name="line.655"></a>
+<span class="sourceLineNo">656</span>      currentProcId = nextProcId();<a name="line.656"></a>
+<span class="sourceLineNo">657</span>      proc.setProcId(currentProcId);<a name="line.657"></a>
+<span class="sourceLineNo">658</span><a name="line.658"></a>
+<span class="sourceLineNo">659</span>      // This is new procedure. Set the noncekey and insert into the map.<a name="line.659"></a>
+<span class="sourceLineNo">660</span>      if (noncekey != null) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>        proc.setNonceKey(noncekey);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>        nonceKeysToProcIdsMap.put(noncekey, currentProcId);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>      }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>    } // end of synchronized (this)<a name="line.664"></a>
+<span class="sourceLineNo">665</span><a name="line.665"></a>
+<span class="sourceLineNo">666</span>    // Commit the transaction<a name="line.666"></a>
+<span class="sourceLineNo">667</span>    store.insert(proc, null);<a name="line.667"></a>
+<span class="sourceLineNo">668</span>    if (LOG.isDebugEnabled()) {<a name="line.668"></a>
+<span class="sourceLineNo">669</span>      LOG.debug("Procedure " + proc + " added to the store.");<a name="line.669"></a>
+<span class="sourceLineNo">670</span>    }<a name="line.670"></a>
+<span class="sourceLineNo">671</span><a name="line.671"></a>
+<span class="sourceLineNo">672</span>    // Create the rollback stack for the procedure<a name="line.672"></a>
+<span class="sourceLineNo">673</span>    RootProcedureState stack = new RootProcedureState();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>    rollbackStack.put(currentProcId, stack);<a name="line.674"></a>
+<span class="sourceLineNo">675</span><a name="line.675"></a>
+<span class="sourceLineNo">676</span>    // Submit the new subprocedures<a name="line.676"></a>
+<span class="sourceLineNo">677</span>    assert !procedures.containsKey(currentProcId);<a name="line.677"></a>
+<span class="sourceLineNo">678</span>    procedures.put(currentProcId, proc);<a name="line.678"></a>
+<span class="sourceLineNo">679</span>    sendProcedureAddedNotification(currentProcId);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>    runnables.addBack(proc);<a name="line.680"></a>
+<span class="sourceLineNo">681</span>    return currentProcId;<a name="line.681"></a>
 <span class="sourceLineNo">682</span>  }<a name="line.682"></a>
 <span class="sourceLineNo">683</span><a name="line.683"></a>
-<span class="sourceLineNo">684</span>  /**<a name="line.684"></a>
-<span class="sourceLineNo">685</span>   * Return true if the procedure is started.<a name="line.685"></a>
-<span class="sourceLineNo">686</span>   * @param procId the ID of the procedure to check<a name="line.686"></a>
-<span class="sourceLineNo">687</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.687"></a>
-<span class="sourceLineNo">688</span>   */<a name="line.688"></a>
-<span class="sourceLineNo">689</span>  public boolean isStarted(final long procId) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>    Procedure proc = procedures.get(procId);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    if (proc == null) {<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      return completed.get(procId) != null;<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    }<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    return proc.wasExecuted();<a name="line.694"></a>
-<span class="sourceLineNo">695</span>  }<a name="line.695"></a>
-<span class="sourceLineNo">696</span><a name="line.696"></a>
-<span class="sourceLineNo">697</span>  /**<a name="line.697"></a>
-<span class="sourceLineNo">698</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.698"></a>
-<span class="sourceLineNo">699</span>   * @param procId the ID of the procedure to remove<a name="line.699"></a>
-<span class="sourceLineNo">700</span>   */<a name="line.700"></a>
-<span class="sourceLineNo">701</span>  public void removeResult(final long procId) {<a name="line.701"></a>
-<span class="sourceLineNo">702</span>    ProcedureInfo result = completed.get(procId);<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    if (result == null) {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.704"></a>
-<span class="sourceLineNo">705</span>      if (LOG.isDebugEnabled()) {<a name="line.705"></a>
-<span class="sourceLineNo">706</span>        LOG.debug("Procedure procId=" + procId + " already removed by the cleaner.");<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      }<a name="line.707"></a>
-<span class="sourceLineNo">708</span>      return;<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    }<a name="line.709"></a>
-<span class="sourceLineNo">710</span><a name="line.710"></a>
-<span class="sourceLineNo">711</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.712"></a>
-<span class="sourceLineNo">713</span>  }<a name="line.713"></a>
-<span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>  /**<a name="line.715"></a>
-<span class="sourceLineNo">716</span>   * Send an abort notification the specified procedure.<a name="line.716"></a>
-<span class="sourceLineNo">717</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.717"></a>
-<span class="sourceLineNo">718</span>   * @param procId the procedure to abort<a name="line.718"></a>
-<span class="sourceLineNo">719</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.719"></a>
-<span class="sourceLineNo">720</span>   */<a name="line.720"></a>
-<span class="sourceLineNo">721</span>  public boolean abort(final long procId) {<a name="line.721"></a>
-<span class="sourceLineNo">722</span>    return abort(procId, true);<a name="line.722"></a>
-<span class="sourceLineNo">723</span>  }<a name="line.723"></a>
-<span class="sourceLineNo">724</span><a name="line.724"></a>
-<span class="sourceLineNo">725</span>  /**<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   * Send an abort notification the specified procedure.<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.727"></a>
-<span class="sourceLineNo">728</span>   * @param procId the procedure to abort<a name="line.728"></a>
-<span class="sourceLineNo">729</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.729"></a>
-<span class="sourceLineNo">730</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.730"></a>
-<span class="sourceLineNo">731</span>   */<a name="line.731"></a>
-<span class="sourceLineNo">732</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    Procedure proc = procedures.get(procId);<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    if (proc != null) {<a name="line.734"></a>
-<span class="sourceLineNo">735</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>        return false;<a name="line.736"></a>
-<span class="sourceLineNo">737</span>      } else {<a name="line.737"></a>
-<span class="sourceLineNo">738</span>        return proc.abort(getEnvironment());<a name="line.738"></a>
-<span class="sourceLineNo">739</span>      }<a name="line.739"></a>
-<span class="sourceLineNo">740</span>    }<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    return false;<a name="line.741"></a>
-<span class="sourceLineNo">742</span>  }<a name="line.742"></a>
-<span class="sourceLineNo">743</span><a name="line.743"></a>
-<span class="sourceLineNo">744</span>  /**<a name="line.744"></a>
-<span class="sourceLineNo">745</span>   * Check if the user is this procedure's owner<a name="line.745"></a>
-<span class="sourceLineNo">746</span>   * @param procId the target procedure<a name="line.746"></a>
-<span class="sourceLineNo">747</span>   * @param user the user<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   * @return true if the user is the owner of the procedure,<a name="line.748"></a>
-<span class="sourceLineNo">749</span>   *   false otherwise or the owner is unknown.<a name="line.749"></a>
-<span class="sourceLineNo">750</span>   */<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.751"></a>
-<span class="sourceLineNo">752</span>    if (user == null) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>      return false;<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    }<a name="line.754"></a>
-<span class="sourceLineNo">755</span><a name="line.755"></a>
-<span class="sourceLineNo">756</span>    Procedure proc = procedures.get(procId);<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    if (proc != null) {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>      return proc.getOwner().equals(user.getShortName());<a name="line.758"></a>
-<span class="sourceLineNo">759</span>    }<a name="line.759"></a>
-<span class="sourceLineNo">760</span>    ProcedureInfo procInfo = completed.get(procId);<a name="line.760"></a>
-<span class="sourceLineNo">761</span>    if (procInfo == null) {<a name="line.761"></a>
-<span class="sourceLineNo">762</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.762"></a>
-<span class="sourceLineNo">763</span>      // At this time, we cannot check the owner of the procedure<a name="line.763"></a>
-<span class="sourceLineNo">764</span>      return false;<a name="line.764"></a>
-<span class="sourceLineNo">765</span>    }<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<a name="line.766"></a>
-<span class="sourceLineNo">767</span>  }<a name="line.767"></a>
-<span class="sourceLineNo">768</span><a name="line.768"></a>
-<span class="sourceLineNo">769</span>  public Map&lt;Long, ProcedureInfo&gt; getResults() {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    return Collections.unmodifiableMap(completed);<a name="line.770"></a>
-<span class="sourceLineNo">771</span>  }<a name="line.771"></a>
-<span class="sourceLineNo">772</span><a name="line.772"></a>
-<span class="sourceLineNo">773</span>  public Procedure getProcedure(final long procId) {<a name="line.773"></a>
-<span class="sourceLineNo">774</span>    return procedures.get(procId);<a name="line.774"></a>
-<span class="sourceLineNo">775</span>  }<a name="line.775"></a>
-<span class="sourceLineNo">776</span><a name="line.776"></a>
-<span class="sourceLineNo">777</span>  protected ProcedureRunnableSet getRunnableSet() {<a name="line.777"></a>
-<span class="sourceLineNo">778</span>    return runnables;<a name="line.778"></a>
-<span class="sourceLineNo">779</span>  }<a name="line.779"></a>
-<span class="sourceLineNo">780</span><a name="line.780"></a>
-<span class="sourceLineNo">781</span>  /**<a name="line.781"></a>
-<span class="sourceLineNo">782</span>   * Execution loop (N threads)<a name="line.782"></a>
-<span class="sourceLineNo">783</span>   * while the executor is in a running state,<a name="line.783"></a>
-<span class="sourceLineNo">784</span>   * fetch a procedure from the runnables queue and start the execution.<a name="line.784"></a>
-<span class="sourceLineNo">785</span>   */<a name="line.785"></a>
-<span class="sourceLineNo">786</span>  private void execLoop() {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>    while (isRunning()) {<a name="line.787"></a>
-<span class="sourceLineNo">788</span>      Procedure proc = runnables.poll();<a name="line.788"></a>
-<span class="sourceLineNo">789</span>      if (proc == null) continue;<a name="line.789"></a>
-<span class="sourceLineNo">790</span><a name="line.790"></a>
-<span class="sourceLineNo">791</span>      try {<a name="line.791"></a>
-<span class="sourceLineNo">792</span>        activeExecutorCount.incrementAndGet();<a name="line.792"></a>
-<span class="sourceLineNo">793</span>        execLoop(proc);<a name="line.793"></a>
-<span class="sourceLineNo">794</span>      } finally {<a name="line.794"></a>
-<span class="sourceLineNo">795</span>        activeExecutorCount.decrementAndGet();<a name="line.795"></a>
-<span class="sourceLineNo">796</span>      }<a name="line.796"></a>
-<span class="sourceLineNo">797</span>    }<a name="line.797"></a>
-<span class="sourceLineNo">798</span>  }<a name="line.798"></a>
-<span class="sourceLineNo">799</span><a name="line.799"></a>
-<span class="sourceLineNo">800</span>  private void execLoop(Procedure proc) {<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    if (LOG.isTraceEnabled()) {<a name="line.801"></a>
-<span class="sourceLineNo">802</span>      LOG.trace("Trying to start the execution of " + proc);<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    }<a name="line.803"></a>
-<span class="sourceLineNo">804</span><a name="line.804"></a>
-<span class="sourceLineNo">805</span>    Long rootProcId = getRootProcedureId(proc);<a name="line.805"></a>
-<span class="sourceLineNo">806</span>    if (rootProcId == null) {<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.807"></a>
-<span class="sourceLineNo">808</span>      executeRollback(proc);<a name="line.808"></a>
-<span class="sourceLineNo">809</span>      return;<a name="line.809"></a>
-<span class="sourceLineNo">810</span>    }<a name="line.810"></a>
-<span class="sourceLineNo">811</span><a name="line.811"></a>
-<span class="sourceLineNo">812</span>    RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.812"></a>
-<span class="sourceLineNo">813</span>    if (procStack == null) return;<a name="line.813"></a>
+<span class="sourceLineNo">684</span>  public ProcedureInfo getResult(final long procId) {<a name="line.684"></a>
+<span class="sourceLineNo">685</span>    return completed.get(procId);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>  }<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>   * Return true if the procedure is finished.<a name="line.689"></a>
+<span class="sourceLineNo">690</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.690"></a>
+<span class="sourceLineNo">691</span>   * Use getResult() to check the state or get the result data.<a name="line.691"></a>
+<span class="sourceLineNo">692</span>   * @param procId the ID of the procedure to check<a name="line.692"></a>
+<span class="sourceLineNo">693</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.693"></a>
+<span class="sourceLineNo">694</span>   */<a name="line.694"></a>
+<span class="sourceLineNo">695</span>  public boolean isFinished(final long procId) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>    return completed.containsKey(procId);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>  }<a name="line.697"></a>
+<span class="sourceLineNo">698</span><a name="line.698"></a>
+<span class="sourceLineNo">699</span>  /**<a name="line.699"></a>
+<span class="sourceLineNo">700</span>   * Return true if the procedure is started.<a name="line.700"></a>
+<span class="sourceLineNo">701</span>   * @param procId the ID of the procedure to check<a name="line.701"></a>
+<span class="sourceLineNo">702</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.702"></a>
+<span class="sourceLineNo">703</span>   */<a name="line.703"></a>
+<span class="sourceLineNo">704</span>  public boolean isStarted(final long procId) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>    Procedure proc = procedures.get(procId);<a name="line.705"></a>
+<span class="sourceLineNo">706</span>    if (proc == null) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>      return completed.get(procId) != null;<a name="line.707"></a>
+<span class="sourceLineNo">708</span>    }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>    return proc.wasExecuted();<a name="line.709"></a>
+<span class="sourceLineNo">710</span>  }<a name="line.710"></a>
+<span class="sourceLineNo">711</span><a name="line.711"></a>
+<span class="sourceLineNo">712</span>  /**<a name="line.712"></a>
+<span class="sourceLineNo">713</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.713"></a>
+<span class="sourceLineNo">714</span>   * @param procId the ID of the procedure to remove<a name="line.714"></a>
+<span class="sourceLineNo">715</span>   */<a name="line.715"></a>
+<span class="sourceLineNo">716</span>  public void removeResult(final long procId) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>    ProcedureInfo result = completed.get(procId);<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    if (result == null) {<a name="line.718"></a>
+<span class="sourceLineNo">719</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.719"></a>
+<span class="sourceLineNo">720</span>      if (LOG.isDebugEnabled()) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>        LOG.debug("Procedure procId=" + procId + " already removed by the cleaner.");<a name="line.721"></a>
+<span class="sourceLineNo">722</span>      }<a name="line.722"></a>
+<span class="sourceLineNo">723</span>      return;<a name="line.723"></a>
+<span class="sourceLineNo">724</span>    }<a name="line.724"></a>
+<span class="sourceLineNo">725</span><a name="line.725"></a>
+<span class="sourceLineNo">726</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.726"></a>
+<span class="sourceLineNo">727</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.727"></a>
+<span class="sourceLineNo">728</span>  }<a name="line.728"></a>
+<span class="sourceLineNo">729</span><a name="line.729"></a>
+<span class="sourceLineNo">730</span>  /**<a name="line.730"></a>
+<span class="sourceLineNo">731</span>   * Send an abort notification the specified procedure.<a name="line.731"></a>
+<span class="sourceLineNo">732</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.732"></a>
+<span class="sourceLineNo">733</span>   * @param procId the procedure to abort<a name="line.733"></a>
+<span class="sourceLineNo">734</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.734"></a>
+<span class="sourceLineNo">735</span>   */<a name="line.735"></a>
+<span class="sourceLineNo">736</span>  public boolean abort(final long procId) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>    return abort(procId, true);<a name="line.737"></a>
+<span class="sourceLineNo">738</span>  }<a name="line.738"></a>
+<span class="sourceLineNo">739</span><a name="line.739"></a>
+<span class="sourceLineNo">740</span>  /**<a name="line.740"></a>
+<span class="sourceLineNo">741</span>   * Send an abort notification the specified procedure.<a name="line.741"></a>
+<span class="sourceLineNo">742</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.742"></a>
+<span class="sourceLineNo">743</span>   * @param procId the procedure to abort<a name="line.743"></a>
+<span class="sourceLineNo">744</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.744"></a>
+<span class="sourceLineNo">745</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.745"></a>
+<span class="sourceLineNo">746</span>   */<a name="line.746"></a>
+<span class="sourceLineNo">747</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>    Procedure proc = procedures.get(procId);<a name="line.748"></a>
+<span class="sourceLineNo">749</span>    if (proc != null) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>        return false;<a name="line.751"></a>
+<span class="sourceLineNo">752</span>      } else {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>        return proc.abort(getEnvironment());<a name="line.753"></a>
+<span class="sourceLineNo">754</span>      }<a name="line.754"></a>
+<span class="sourceLineNo">755</span>    }<a name="line.755"></a>
+<span class="sourceLineNo">756</span>    return false;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>  }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>  /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>   * Check if the user is this procedure's owner<a name="line.760"></a>
+<span class="sourceLineNo">761</span>   * @param procId the target procedure<a name="line.761"></a>
+<span class="sourceLineNo">762</span>   * @param user the user<a name="line.762"></a>
+<span class="sourceLineNo">763</span>   * @return true if the user is the owner of the procedure,<a name="line.763"></a>
+<span class="sourceLineNo">764</span>   *   false otherwise or the owner is unknown.<a name="line.764"></a>
+<span class="sourceLineNo">765</span>   */<a name="line.765"></a>
+<span class="sourceLineNo">766</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>    if (user == null) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>      return false;<a name="line.768"></a>
+<span class="sourceLineNo">769</span>    }<a name="line.769"></a>
+<span class="sourceLineNo">770</span><a name="line.770"></a>
+<span class="sourceLineNo">771</span>    Procedure proc = procedures.get(procId);<a name="line.771"></a>
+<span class="sourceLineNo">772</span>    if (proc != null) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>      return proc.getOwner().equals(user.getShortName());<a name="line.773"></a>
+<span class="sourceLineNo">774</span>    }<a name="line.774"></a>
+<span class="sourceLineNo">775</span>    ProcedureInfo procInfo = completed.get(procId);<a name="line.775"></a>
+<span class="sourceLineNo">776</span>    if (procInfo == null) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.777"></a>
+<span class="sourceLineNo">778</span>      // At this time, we cannot check the owner of the procedure<a name="line.778"></a>
+<span class="sourceLineNo">779</span>      return false;<a name="line.779"></a>
+<span class="sourceLineNo">780</span>    }<a name="line.780"></a>
+<span class="sourceLineNo">781</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<a name="line.781"></a>
+<span class="sourceLineNo">782</span>  }<a name="line.782"></a>
+<span class="

<TRUNCATED>

[37/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html b/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html
index 499a240..ca77a50 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html
@@ -97,7 +97,7 @@
 <br>
 <pre><a href="../../../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
 <a href="../../../../../../../org/apache/hadoop/hbase/classification/InterfaceStability.Evolving.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceStability.Evolving</a>
-public class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.39">ProcedureWALFormatReader</a>
+public class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.40">ProcedureWALFormatReader</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Helper class that loads the procedures stored in a WAL</div>
 </li>
@@ -267,7 +267,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <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/procedure2/store/wal/ProcedureWALFormatReader.html#line.40">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.41">LOG</a></pre>
 </li>
 </ul>
 <a name="localProcedureMap">
@@ -276,7 +276,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>localProcedureMap</h4>
-<pre>private final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.WalProcedureMap</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.97">localProcedureMap</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.WalProcedureMap</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.98">localProcedureMap</a></pre>
 </li>
 </ul>
 <a name="procedureMap">
@@ -285,7 +285,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>procedureMap</h4>
-<pre>private final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.WalProcedureMap</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.98">procedureMap</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.WalProcedureMap</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.99">procedureMap</a></pre>
 </li>
 </ul>
 <a name="maxProcId">
@@ -294,7 +294,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>maxProcId</h4>
-<pre>private&nbsp;long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.101">maxProcId</a></pre>
+<pre>private&nbsp;long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.102">maxProcId</a></pre>
 </li>
 </ul>
 <a name="tracker">
@@ -303,7 +303,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>tracker</h4>
-<pre>private final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.103">tracker</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.104">tracker</a></pre>
 </li>
 </ul>
 <a name="hasFastStartSupport">
@@ -312,7 +312,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hasFastStartSupport</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.104">hasFastStartSupport</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.105">hasFastStartSupport</a></pre>
 </li>
 </ul>
 </li>
@@ -329,7 +329,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ProcedureWALFormatReader</h4>
-<pre>public&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.106">ProcedureWALFormatReader</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker</a>&nbsp;tracker)</pre>
+<pre>public&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.107">ProcedureWALFormatReader</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker</a>&nbsp;tracker)</pre>
 </li>
 </ul>
 </li>
@@ -346,7 +346,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>read</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.112">read</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&nbsp;log,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.113">read</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&nbsp;log,
         <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html" title="interface in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormat.Loader</a>&nbsp;loader)
           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -359,7 +359,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>finalize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.166">finalize</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html" title="interface in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormat.Loader</a>&nbsp;loader)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.164">finalize</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html" title="interface in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormat.Loader</a>&nbsp;loader)
               throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -371,7 +371,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>loadProcedure</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.180">loadProcedure</a>(org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry&nbsp;entry,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.178">loadProcedure</a>(org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry&nbsp;entry,
                  org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.Procedure&nbsp;proc)</pre>
 </li>
 </ul>
@@ -381,7 +381,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>readInitEntry</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.191">readInitEntry</a>(org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry&nbsp;entry)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.189">readInitEntry</a>(org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry&nbsp;entry)
                     throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -393,7 +393,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>readInsertEntry</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.197">readInsertEntry</a>(org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry&nbsp;entry)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.195">readInsertEntry</a>(org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry&nbsp;entry)
                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -405,7 +405,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>readUpdateEntry</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.205">readUpdateEntry</a>(org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry&nbsp;entry)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.203">readUpdateEntry</a>(org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry&nbsp;entry)
                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -417,7 +417,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>readDeleteEntry</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.210">readDeleteEntry</a>(org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry&nbsp;entry)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.208">readDeleteEntry</a>(org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry&nbsp;entry)
                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -429,7 +429,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>isDeleted</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.221">isDeleted</a>(long&nbsp;procId)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.220">isDeleted</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="isRequired(long)">
@@ -438,7 +438,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isRequired</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.225">isRequired</a>(long&nbsp;procId)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.224">isRequired</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html b/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html
index e9b06aa..502dc70 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html
@@ -108,7 +108,7 @@
 </dl>
 <hr>
 <br>
-<pre>private static enum <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.433">WALProcedureStore.PushType</a>
+<pre>private static enum <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.427">WALProcedureStore.PushType</a>
 extends <a href="http://docs.oracle.com/javase/7/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/procedure2/store/wal/WALProcedureStore.PushType.html" title="enum in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore.PushType</a>&gt;</pre>
 </li>
 </ul>
@@ -199,7 +199,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>INSERT</h4>
-<pre>public static final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html" title="enum in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore.PushType</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html#line.433">INSERT</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html" title="enum in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore.PushType</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html#line.427">INSERT</a></pre>
 </li>
 </ul>
 <a name="UPDATE">
@@ -208,7 +208,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>UPDATE</h4>
-<pre>public static final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html" title="enum in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore.PushType</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html#line.433">UPDATE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html" title="enum in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore.PushType</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html#line.427">UPDATE</a></pre>
 </li>
 </ul>
 <a name="DELETE">
@@ -217,7 +217,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>DELETE</h4>
-<pre>public static final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html" title="enum in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore.PushType</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html#line.433">DELETE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html" title="enum in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore.PushType</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html#line.427">DELETE</a></pre>
 </li>
 </ul>
 </li>
@@ -234,7 +234,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/procedure2/store/wal/WALProcedureStore.PushType.html" title="enum in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore.PushType</a>[]&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html#line.433">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html" title="enum in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore.PushType</a>[]&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html#line.427">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:
@@ -251,7 +251,7 @@ for (WALProcedureStore.PushType c : WALProcedureStore.PushType.values())
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html" title="enum in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore.PushType</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html#line.433">valueOf</a>(<a href="http://docs.oracle.com/javase/7/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/procedure2/store/wal/WALProcedureStore.PushType.html" title="enum in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore.PushType</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html#line.427">valueOf</a>(<a href="http://docs.oracle.com/javase/7/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 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html b/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html
index 284cfbf..14fb625 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html
@@ -396,7 +396,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&gt;</code></td>
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/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/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#getActiveLogs()">getActiveLogs</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
@@ -424,7 +424,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <td class="colLast"><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#getLogIdFromName(java.lang.String)">getLogIdFromName</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>private long</code></td>
+<td class="colFirst"><code>private static long</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#getMaxLogId(org.apache.hadoop.fs.FileStatus[])">getMaxLogId</a></strong>(org.apache.hadoop.fs.FileStatus[]&nbsp;logFiles)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
@@ -1129,7 +1129,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveLogs</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&gt;&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.239">getActiveLogs</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&gt;&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.239">getActiveLogs</a>()</pre>
 </li>
 </ul>
 <a name="getCorruptedLogs()">
@@ -1138,7 +1138,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>getCorruptedLogs</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&gt;&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.243">getCorruptedLogs</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&gt;&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.248">getCorruptedLogs</a>()</pre>
 </li>
 </ul>
 <a name="recoverLease()">
@@ -1147,7 +1147,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>recoverLease</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.248">recoverLease</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.253">recoverLease</a>()
                   throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#recoverLease()">ProcedureStore</a></code></strong></div>
 <div class="block">Acquire the lease for the procedure store.</div>
@@ -1161,7 +1161,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>load</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.283">load</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureLoader</a>&nbsp;loader)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.288">load</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureLoader</a>&nbsp;loader)
           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#load(org.apache.hadoop.hbase.procedure2.store.ProcedureStore.ProcedureLoader)">ProcedureStore</a></code></strong></div>
 <div class="block">Load the Procedures in the store.</div>
@@ -1176,7 +1176,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>insert</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.344">insert</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;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.338">insert</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/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>[]&nbsp;subprocs)</pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#insert(org.apache.hadoop.hbase.procedure2.Procedure,%20org.apache.hadoop.hbase.procedure2.Procedure[])">ProcedureStore</a></code></strong></div>
 <div class="block">When a procedure is submitted to the executor insert(proc, null) will be called.
@@ -1194,7 +1194,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>update</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.378">update</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;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.372">update</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc)</pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#update(org.apache.hadoop.hbase.procedure2.Procedure)">ProcedureStore</a></code></strong></div>
 <div class="block">The specified procedure was executed,
  and the new state should be written to the store.</div>
@@ -1207,7 +1207,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>delete</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.401">delete</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.395">delete</a>(long&nbsp;procId)</pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#delete(long)">ProcedureStore</a></code></strong></div>
 <div class="block">The specified procId was removed from the executor,
  due to completion, abort or failure.
@@ -1221,7 +1221,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>acquireSlot</h4>
-<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/util/ByteSlot.html" title="class in org.apache.hadoop.hbase.procedure2.util">ByteSlot</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.423">acquireSlot</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/util/ByteSlot.html" title="class in org.apache.hadoop.hbase.procedure2.util">ByteSlot</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.417">acquireSlot</a>()</pre>
 </li>
 </ul>
 <a name="releaseSlot(org.apache.hadoop.hbase.procedure2.util.ByteSlot)">
@@ -1230,7 +1230,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>releaseSlot</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.428">releaseSlot</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/util/ByteSlot.html" title="class in org.apache.hadoop.hbase.procedure2.util">ByteSlot</a>&nbsp;slot)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.422">releaseSlot</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/util/ByteSlot.html" title="class in org.apache.hadoop.hbase.procedure2.util">ByteSlot</a>&nbsp;slot)</pre>
 </li>
 </ul>
 <a name="pushData(org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore.PushType, org.apache.hadoop.hbase.procedure2.util.ByteSlot, long, long[])">
@@ -1239,7 +1239,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>pushData</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.435">pushData</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html" title="enum in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore.PushType</a>&nbsp;type,
+<pre>private&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.429">pushData</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html" title="enum in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore.PushType</a>&nbsp;type,
             <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/util/ByteSlot.html" title="class in org.apache.hadoop.hbase.procedure2.util">ByteSlot</a>&nbsp;slot,
             long&nbsp;procId,
             long[]&nbsp;subProcIds)</pre>
@@ -1251,7 +1251,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>updateStoreTracker</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.492">updateStoreTracker</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html" title="enum in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore.PushType</a>&nbsp;type,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.486">updateStoreTracker</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html" title="enum in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore.PushType</a>&nbsp;type,
                       long&nbsp;procId,
                       long[]&nbsp;subProcIds)</pre>
 </li>
@@ -1262,7 +1262,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>isSyncAborted</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.513">isSyncAborted</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.507">isSyncAborted</a>()</pre>
 </li>
 </ul>
 <a name="syncLoop()">
@@ -1271,7 +1271,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>syncLoop</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.517">syncLoop</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.511">syncLoop</a>()
                throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></dd></dl>
@@ -1283,7 +1283,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>syncSlots</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.578">syncSlots</a>()
+<pre>private&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.572">syncSlots</a>()
                 throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></dd></dl>
@@ -1295,7 +1295,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>syncSlots</h4>
-<pre>protected&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.606">syncSlots</a>(org.apache.hadoop.fs.FSDataOutputStream&nbsp;stream,
+<pre>protected&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.601">syncSlots</a>(org.apache.hadoop.fs.FSDataOutputStream&nbsp;stream,
              <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/util/ByteSlot.html" title="class in org.apache.hadoop.hbase.procedure2.util">ByteSlot</a>[]&nbsp;slots,
              int&nbsp;offset,
              int&nbsp;count)
@@ -1310,7 +1310,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>rollWriterOrDie</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.629">rollWriterOrDie</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.624">rollWriterOrDie</a>()</pre>
 </li>
 </ul>
 <a name="tryRollWriter()">
@@ -1319,7 +1319,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>tryRollWriter</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.645">tryRollWriter</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.641">tryRollWriter</a>()</pre>
 </li>
 </ul>
 <a name="getMillisToNextPeriodicRoll()">
@@ -1328,7 +1328,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>getMillisToNextPeriodicRoll</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.654">getMillisToNextPeriodicRoll</a>()</pre>
+<pre>private&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.650">getMillisToNextPeriodicRoll</a>()</pre>
 </li>
 </ul>
 <a name="getMillisFromLastRoll()">
@@ -1337,7 +1337,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>getMillisFromLastRoll</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.661">getMillisFromLastRoll</a>()</pre>
+<pre>private&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.657">getMillisFromLastRoll</a>()</pre>
 </li>
 </ul>
 <a name="periodicRollForTesting()">
@@ -1346,7 +1346,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>periodicRollForTesting</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.666">periodicRollForTesting</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.662">periodicRollForTesting</a>()
                                throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1358,7 +1358,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>rollWriterForTesting</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.676">rollWriterForTesting</a>()
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.672">rollWriterForTesting</a>()
                                 throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1370,7 +1370,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>periodicRoll</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.685">periodicRoll</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.681">periodicRoll</a>()
                    throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1382,7 +1382,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>rollWriter</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.710">rollWriter</a>()
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.706">rollWriter</a>()
                     throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1394,7 +1394,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>rollWriter</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.729">rollWriter</a>(long&nbsp;logId)
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.725">rollWriter</a>(long&nbsp;logId)
                     throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1406,7 +1406,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>closeStream</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.777">closeStream</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.773">closeStream</a>()</pre>
 </li>
 </ul>
 <a name="removeInactiveLogs()">
@@ -1415,7 +1415,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>removeInactiveLogs</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.799">removeInactiveLogs</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.795">removeInactiveLogs</a>()</pre>
 </li>
 </ul>
 <a name="removeAllLogs(long)">
@@ -1424,7 +1424,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>removeAllLogs</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.810">removeAllLogs</a>(long&nbsp;lastLogId)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.806">removeAllLogs</a>(long&nbsp;lastLogId)</pre>
 </li>
 </ul>
 <a name="removeLogFile(org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFile)">
@@ -1433,7 +1433,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>removeLogFile</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.825">removeLogFile</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&nbsp;log)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.821">removeLogFile</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&nbsp;log)</pre>
 </li>
 </ul>
 <a name="getLogDir()">
@@ -1442,7 +1442,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>getLogDir</h4>
-<pre>public&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.846">getLogDir</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.842">getLogDir</a>()</pre>
 </li>
 </ul>
 <a name="getFileSystem()">
@@ -1451,7 +1451,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>getFileSystem</h4>
-<pre>public&nbsp;org.apache.hadoop.fs.FileSystem&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.850">getFileSystem</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.fs.FileSystem&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.846">getFileSystem</a>()</pre>
 </li>
 </ul>
 <a name="getLogFilePath(long)">
@@ -1460,7 +1460,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>getLogFilePath</h4>
-<pre>protected&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.854">getLogFilePath</a>(long&nbsp;logId)
+<pre>protected&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.850">getLogFilePath</a>(long&nbsp;logId)
                                             throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1472,7 +1472,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>getLogIdFromName</h4>
-<pre>private static&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.858">getLogIdFromName</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>private static&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.854">getLogIdFromName</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 </li>
 </ul>
 <a name="getLogFiles()">
@@ -1481,7 +1481,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>getLogFiles</h4>
-<pre>private&nbsp;org.apache.hadoop.fs.FileStatus[]&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.869">getLogFiles</a>()
+<pre>private&nbsp;org.apache.hadoop.fs.FileStatus[]&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.865">getLogFiles</a>()
                                                throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1493,7 +1493,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxLogId</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.884">getMaxLogId</a>(org.apache.hadoop.fs.FileStatus[]&nbsp;logFiles)</pre>
+<pre>private static&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.880">getMaxLogId</a>(org.apache.hadoop.fs.FileStatus[]&nbsp;logFiles)</pre>
 </li>
 </ul>
 <a name="initOldLogs(org.apache.hadoop.fs.FileStatus[])">
@@ -1502,7 +1502,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>initOldLogs</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.897">initOldLogs</a>(org.apache.hadoop.fs.FileStatus[]&nbsp;logFiles)
+<pre>private&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.893">initOldLogs</a>(org.apache.hadoop.fs.FileStatus[]&nbsp;logFiles)
                   throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Returns:</span></dt><dd>Max-LogID of the specified log file set</dd>
 <dt><span class="strong">Throws:</span></dt>
@@ -1515,7 +1515,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockList">
 <li class="blockList">
 <h4>initTrackerFromOldLogs</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.918">initTrackerFromOldLogs</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.914">initTrackerFromOldLogs</a>()</pre>
 </li>
 </ul>
 <a name="initOldLog(org.apache.hadoop.fs.FileStatus)">
@@ -1524,7 +1524,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/P
 <ul class="blockListLast">
 <li class="blockList">
 <h4>initOldLog</h4>
-<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.933">initOldLog</a>(org.apache.hadoop.fs.FileStatus&nbsp;logFile)
+<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#line.929">initOldLog</a>(org.apache.hadoop.fs.FileStatus&nbsp;logFile)
                              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/class-use/ProcedureWALFile.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/class-use/ProcedureWALFile.html b/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/class-use/ProcedureWALFile.html
index 8b71564..1395792 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/class-use/ProcedureWALFile.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/class-use/ProcedureWALFile.html
@@ -125,7 +125,7 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</a>&lt;<a href="../../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&gt;</code></td>
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/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/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&gt;</code></td>
 <td class="colLast"><span class="strong">WALProcedureStore.</span><code><strong><a href="../../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#getActiveLogs()">getActiveLogs</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
@@ -156,10 +156,6 @@
         <a href="../../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html" title="interface in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormat.Loader</a>&nbsp;loader)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="strong">ProcedureWALFormat.Loader.</span><code><strong><a href="../../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html#removeLog(org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFile)">removeLog</a></strong>(<a href="../../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&nbsp;log)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><span class="strong">WALProcedureStore.</span><code><strong><a href="../../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#removeLogFile(org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFile)">removeLogFile</a></strong>(<a href="../../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&nbsp;log)</code>&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/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 eb1cc43..e67e803 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -172,11 +172,11 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="strong">QuotaScope</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="strong">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="strong">QuotaType</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="strong">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="strong">ThrottleType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="strong">QuotaType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="strong">QuotaScope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="strong">OperationQuota.OperationType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/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 7375de1..31b075a 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -605,23 +605,23 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/7/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/7/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/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="strong">DeleteTracker.DeleteResult</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="strong">Region.FlushResult.Result</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="strong">DefaultHeapMemoryTuner.StepDirection</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="strong">ScannerContext.NextState</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="strong">FlushType</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="strong">Region.Operation</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="strong">SplitLogWorker.TaskExecutor.Status</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="strong">BloomType</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="strong">RegionOpeningState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="strong">ScanQueryMatcher.MatchCode</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="strong">Region.Operation</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="strong">ScanType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="strong">DeleteTracker.DeleteResult</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DeleteTracker.DeleteCompare.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="strong">DeleteTracker.DeleteCompare</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionMergeTransaction.RegionMergeTransactionPhase.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="strong">RegionMergeTransaction.RegionMergeTransactionPhase</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitTransaction.SplitTransactionPhase.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="strong">SplitTransaction.SplitTransactionPhase</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="strong">ScannerContext.NextState</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="strong">StoreScanner.StoreScannerCompactionRace</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="strong">MetricsRegionServerSourceFactoryImpl.FactoryStorage</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="strong">ScanType</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="strong">ScannerContext.LimitScope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="strong">DefaultHeapMemoryTuner.StepDirection</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="strong">Region.FlushResult.Result</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="strong">RegionOpeningState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitTransaction.SplitTransactionPhase.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="strong">SplitTransaction.SplitTransactionPhase</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="strong">FlushType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="strong">MetricsRegionServerSourceFactoryImpl.FactoryStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="strong">BloomType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionMergeTransaction.RegionMergeTransactionPhase.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="strong">RegionMergeTransaction.RegionMergeTransactionPhase</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/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 00d2201..546973c 100644
--- a/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
@@ -101,8 +101,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/7/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/7/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.FilterType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="strong">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="strong">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="strong">ScannerModel.FilterModel.FilterType</span></a></li>
 </ul>
 </li>
 </ul>


[34/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
index 3cac758..7279353 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
@@ -379,166 +379,166 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.110">m_master</a></pre>
 </li>
 </ul>
-<a name="m_filter">
+<a name="m_frags">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_filter</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.122">m_filter</a></pre>
+<h4>m_frags</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.122">m_frags</a></pre>
 </li>
 </ul>
-<a name="m_filter__IsNotDefault">
+<a name="m_frags__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_filter__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.127">m_filter__IsNotDefault</a></pre>
+<h4>m_frags__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.127">m_frags__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_format">
+<a name="m_catalogJanitorEnabled">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_format</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.139">m_format</a></pre>
+<h4>m_catalogJanitorEnabled</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.139">m_catalogJanitorEnabled</a></pre>
 </li>
 </ul>
-<a name="m_format__IsNotDefault">
+<a name="m_catalogJanitorEnabled__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_format__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.144">m_format__IsNotDefault</a></pre>
+<h4>m_catalogJanitorEnabled__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.144">m_catalogJanitorEnabled__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_assignmentManager">
+<a name="m_metaLocation">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_assignmentManager</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.156">m_assignmentManager</a></pre>
+<h4>m_metaLocation</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.156">m_metaLocation</a></pre>
 </li>
 </ul>
-<a name="m_assignmentManager__IsNotDefault">
+<a name="m_metaLocation__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_assignmentManager__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.161">m_assignmentManager__IsNotDefault</a></pre>
+<h4>m_metaLocation__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.161">m_metaLocation__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_servers">
+<a name="m_deadServers">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_servers</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.173">m_servers</a></pre>
+<h4>m_deadServers</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.173">m_deadServers</a></pre>
 </li>
 </ul>
-<a name="m_servers__IsNotDefault">
+<a name="m_deadServers__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_servers__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.178">m_servers__IsNotDefault</a></pre>
+<h4>m_deadServers__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.178">m_deadServers__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_deadServers">
+<a name="m_format">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_deadServers</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.190">m_deadServers</a></pre>
+<h4>m_format</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.190">m_format</a></pre>
 </li>
 </ul>
-<a name="m_deadServers__IsNotDefault">
+<a name="m_format__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_deadServers__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.195">m_deadServers__IsNotDefault</a></pre>
+<h4>m_format__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.195">m_format__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_frags">
+<a name="m_assignmentManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_frags</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.207">m_frags</a></pre>
+<h4>m_assignmentManager</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.207">m_assignmentManager</a></pre>
 </li>
 </ul>
-<a name="m_frags__IsNotDefault">
+<a name="m_assignmentManager__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_frags__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.212">m_frags__IsNotDefault</a></pre>
+<h4>m_assignmentManager__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.212">m_assignmentManager__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_serverManager">
+<a name="m_servers">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_serverManager</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.224">m_serverManager</a></pre>
+<h4>m_servers</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.224">m_servers</a></pre>
 </li>
 </ul>
-<a name="m_serverManager__IsNotDefault">
+<a name="m_servers__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_serverManager__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.229">m_serverManager__IsNotDefault</a></pre>
+<h4>m_servers__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.229">m_servers__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_catalogJanitorEnabled">
+<a name="m_serverManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_catalogJanitorEnabled</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.241">m_catalogJanitorEnabled</a></pre>
+<h4>m_serverManager</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.241">m_serverManager</a></pre>
 </li>
 </ul>
-<a name="m_catalogJanitorEnabled__IsNotDefault">
+<a name="m_serverManager__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_catalogJanitorEnabled__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.246">m_catalogJanitorEnabled__IsNotDefault</a></pre>
+<h4>m_serverManager__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.246">m_serverManager__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_metaLocation">
+<a name="m_filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_metaLocation</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.258">m_metaLocation</a></pre>
+<h4>m_filter</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.258">m_filter</a></pre>
 </li>
 </ul>
-<a name="m_metaLocation__IsNotDefault">
+<a name="m_filter__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>m_metaLocation__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.263">m_metaLocation__IsNotDefault</a></pre>
+<h4>m_filter__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.263">m_filter__IsNotDefault</a></pre>
 </li>
 </ul>
 </li>
@@ -584,247 +584,247 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.106">getMaster</a>()</pre>
 </li>
 </ul>
-<a name="setFilter(java.lang.String)">
+<a name="setFrags(java.util.Map)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFilter</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.112">setFilter</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filter)</pre>
+<h4>setFrags</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.112">setFrags</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;frags)</pre>
 </li>
 </ul>
-<a name="getFilter()">
+<a name="getFrags()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFilter</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.118">getFilter</a>()</pre>
+<h4>getFrags</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.118">getFrags</a>()</pre>
 </li>
 </ul>
-<a name="getFilter__IsNotDefault()">
+<a name="getFrags__IsNotDefault()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFilter__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.123">getFilter__IsNotDefault</a>()</pre>
+<h4>getFrags__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.123">getFrags__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setFormat(java.lang.String)">
+<a name="setCatalogJanitorEnabled(boolean)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFormat</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.129">setFormat</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format)</pre>
+<h4>setCatalogJanitorEnabled</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.129">setCatalogJanitorEnabled</a>(boolean&nbsp;catalogJanitorEnabled)</pre>
 </li>
 </ul>
-<a name="getFormat()">
+<a name="getCatalogJanitorEnabled()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFormat</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.135">getFormat</a>()</pre>
+<h4>getCatalogJanitorEnabled</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.135">getCatalogJanitorEnabled</a>()</pre>
 </li>
 </ul>
-<a name="getFormat__IsNotDefault()">
+<a name="getCatalogJanitorEnabled__IsNotDefault()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFormat__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.140">getFormat__IsNotDefault</a>()</pre>
+<h4>getCatalogJanitorEnabled__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.140">getCatalogJanitorEnabled__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setAssignmentManager(org.apache.hadoop.hbase.master.AssignmentManager)">
+<a name="setMetaLocation(org.apache.hadoop.hbase.ServerName)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setAssignmentManager</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.146">setAssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;assignmentManager)</pre>
+<h4>setMetaLocation</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.146">setMetaLocation</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;metaLocation)</pre>
 </li>
 </ul>
-<a name="getAssignmentManager()">
+<a name="getMetaLocation()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getAssignmentManager</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.152">getAssignmentManager</a>()</pre>
+<h4>getMetaLocation</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.152">getMetaLocation</a>()</pre>
 </li>
 </ul>
-<a name="getAssignmentManager__IsNotDefault()">
+<a name="getMetaLocation__IsNotDefault()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getAssignmentManager__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.157">getAssignmentManager__IsNotDefault</a>()</pre>
+<h4>getMetaLocation__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.157">getMetaLocation__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setServers(java.util.List)">
+<a name="setDeadServers(java.util.Set)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.163">setServers</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers)</pre>
+<h4>setDeadServers</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.163">setDeadServers</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;deadServers)</pre>
 </li>
 </ul>
-<a name="getServers()">
+<a name="getDeadServers()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getServers</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.169">getServers</a>()</pre>
+<h4>getDeadServers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.169">getDeadServers</a>()</pre>
 </li>
 </ul>
-<a name="getServers__IsNotDefault()">
+<a name="getDeadServers__IsNotDefault()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getServers__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.174">getServers__IsNotDefault</a>()</pre>
+<h4>getDeadServers__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.174">getDeadServers__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setDeadServers(java.util.Set)">
+<a name="setFormat(java.lang.String)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setDeadServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.180">setDeadServers</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;deadServers)</pre>
+<h4>setFormat</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.180">setFormat</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format)</pre>
 </li>
 </ul>
-<a name="getDeadServers()">
+<a name="getFormat()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getDeadServers</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.186">getDeadServers</a>()</pre>
+<h4>getFormat</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.186">getFormat</a>()</pre>
 </li>
 </ul>
-<a name="getDeadServers__IsNotDefault()">
+<a name="getFormat__IsNotDefault()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getDeadServers__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.191">getDeadServers__IsNotDefault</a>()</pre>
+<h4>getFormat__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.191">getFormat__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setFrags(java.util.Map)">
+<a name="setAssignmentManager(org.apache.hadoop.hbase.master.AssignmentManager)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFrags</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.197">setFrags</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;frags)</pre>
+<h4>setAssignmentManager</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.197">setAssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;assignmentManager)</pre>
 </li>
 </ul>
-<a name="getFrags()">
+<a name="getAssignmentManager()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFrags</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.203">getFrags</a>()</pre>
+<h4>getAssignmentManager</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.203">getAssignmentManager</a>()</pre>
 </li>
 </ul>
-<a name="getFrags__IsNotDefault()">
+<a name="getAssignmentManager__IsNotDefault()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFrags__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.208">getFrags__IsNotDefault</a>()</pre>
+<h4>getAssignmentManager__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.208">getAssignmentManager__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setServerManager(org.apache.hadoop.hbase.master.ServerManager)">
+<a name="setServers(java.util.List)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setServerManager</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.214">setServerManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;serverManager)</pre>
+<h4>setServers</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.214">setServers</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers)</pre>
 </li>
 </ul>
-<a name="getServerManager()">
+<a name="getServers()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getServerManager</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.220">getServerManager</a>()</pre>
+<h4>getServers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.220">getServers</a>()</pre>
 </li>
 </ul>
-<a name="getServerManager__IsNotDefault()">
+<a name="getServers__IsNotDefault()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getServerManager__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.225">getServerManager__IsNotDefault</a>()</pre>
+<h4>getServers__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.225">getServers__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setCatalogJanitorEnabled(boolean)">
+<a name="setServerManager(org.apache.hadoop.hbase.master.ServerManager)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setCatalogJanitorEnabled</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.231">setCatalogJanitorEnabled</a>(boolean&nbsp;catalogJanitorEnabled)</pre>
+<h4>setServerManager</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.231">setServerManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;serverManager)</pre>
 </li>
 </ul>
-<a name="getCatalogJanitorEnabled()">
+<a name="getServerManager()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getCatalogJanitorEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.237">getCatalogJanitorEnabled</a>()</pre>
+<h4>getServerManager</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.237">getServerManager</a>()</pre>
 </li>
 </ul>
-<a name="getCatalogJanitorEnabled__IsNotDefault()">
+<a name="getServerManager__IsNotDefault()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getCatalogJanitorEnabled__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.242">getCatalogJanitorEnabled__IsNotDefault</a>()</pre>
+<h4>getServerManager__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.242">getServerManager__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setMetaLocation(org.apache.hadoop.hbase.ServerName)">
+<a name="setFilter(java.lang.String)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setMetaLocation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.248">setMetaLocation</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;metaLocation)</pre>
+<h4>setFilter</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.248">setFilter</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filter)</pre>
 </li>
 </ul>
-<a name="getMetaLocation()">
+<a name="getFilter()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getMetaLocation</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.254">getMetaLocation</a>()</pre>
+<h4>getFilter</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.254">getFilter</a>()</pre>
 </li>
 </ul>
-<a name="getMetaLocation__IsNotDefault()">
+<a name="getFilter__IsNotDefault()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>getMetaLocation__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.259">getMetaLocation__IsNotDefault</a>()</pre>
+<h4>getFilter__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.259">getFilter__IsNotDefault</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
index f0a250a..750290d 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
@@ -323,85 +323,85 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <!--   -->
 </a>
 <h3>Field Detail</h3>
-<a name="filter">
+<a name="frags">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>filter</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.275">filter</a></pre>
+<h4>frags</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.275">frags</a></pre>
 </li>
 </ul>
-<a name="format">
+<a name="catalogJanitorEnabled">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>format</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.282">format</a></pre>
+<h4>catalogJanitorEnabled</h4>
+<pre>protected&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.282">catalogJanitorEnabled</a></pre>
 </li>
 </ul>
-<a name="assignmentManager">
+<a name="metaLocation">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>assignmentManager</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.289">assignmentManager</a></pre>
+<h4>metaLocation</h4>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.289">metaLocation</a></pre>
 </li>
 </ul>
-<a name="servers">
+<a name="deadServers">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>servers</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.296">servers</a></pre>
+<h4>deadServers</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.296">deadServers</a></pre>
 </li>
 </ul>
-<a name="deadServers">
+<a name="format">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>deadServers</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.303">deadServers</a></pre>
+<h4>format</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.303">format</a></pre>
 </li>
 </ul>
-<a name="frags">
+<a name="assignmentManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>frags</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.310">frags</a></pre>
+<h4>assignmentManager</h4>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.310">assignmentManager</a></pre>
 </li>
 </ul>
-<a name="serverManager">
+<a name="servers">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>serverManager</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.317">serverManager</a></pre>
+<h4>servers</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.317">servers</a></pre>
 </li>
 </ul>
-<a name="catalogJanitorEnabled">
+<a name="serverManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>catalogJanitorEnabled</h4>
-<pre>protected&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.324">catalogJanitorEnabled</a></pre>
+<h4>serverManager</h4>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.324">serverManager</a></pre>
 </li>
 </ul>
-<a name="metaLocation">
+<a name="filter">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>metaLocation</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.331">metaLocation</a></pre>
+<h4>filter</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.331">filter</a></pre>
 </li>
 </ul>
 </li>
@@ -473,85 +473,85 @@ extends org.jamon.AbstractTemplateProxy</pre>
 </dl>
 </li>
 </ul>
-<a name="setFilter(java.lang.String)">
+<a name="setFrags(java.util.Map)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFilter</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.276">setFilter</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_filter)</pre>
+<h4>setFrags</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.276">setFrags</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;p_frags)</pre>
 </li>
 </ul>
-<a name="setFormat(java.lang.String)">
+<a name="setCatalogJanitorEnabled(boolean)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFormat</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.283">setFormat</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_format)</pre>
+<h4>setCatalogJanitorEnabled</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.283">setCatalogJanitorEnabled</a>(boolean&nbsp;p_catalogJanitorEnabled)</pre>
 </li>
 </ul>
-<a name="setAssignmentManager(org.apache.hadoop.hbase.master.AssignmentManager)">
+<a name="setMetaLocation(org.apache.hadoop.hbase.ServerName)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setAssignmentManager</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.290">setAssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;p_assignmentManager)</pre>
+<h4>setMetaLocation</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.290">setMetaLocation</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;p_metaLocation)</pre>
 </li>
 </ul>
-<a name="setServers(java.util.List)">
+<a name="setDeadServers(java.util.Set)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setServers</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.297">setServers</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;p_servers)</pre>
+<h4>setDeadServers</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.297">setDeadServers</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;p_deadServers)</pre>
 </li>
 </ul>
-<a name="setDeadServers(java.util.Set)">
+<a name="setFormat(java.lang.String)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setDeadServers</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.304">setDeadServers</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;p_deadServers)</pre>
+<h4>setFormat</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.304">setFormat</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_format)</pre>
 </li>
 </ul>
-<a name="setFrags(java.util.Map)">
+<a name="setAssignmentManager(org.apache.hadoop.hbase.master.AssignmentManager)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFrags</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.311">setFrags</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;p_frags)</pre>
+<h4>setAssignmentManager</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.311">setAssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;p_assignmentManager)</pre>
 </li>
 </ul>
-<a name="setServerManager(org.apache.hadoop.hbase.master.ServerManager)">
+<a name="setServers(java.util.List)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setServerManager</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.318">setServerManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;p_serverManager)</pre>
+<h4>setServers</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.318">setServers</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;p_servers)</pre>
 </li>
 </ul>
-<a name="setCatalogJanitorEnabled(boolean)">
+<a name="setServerManager(org.apache.hadoop.hbase.master.ServerManager)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setCatalogJanitorEnabled</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.325">setCatalogJanitorEnabled</a>(boolean&nbsp;p_catalogJanitorEnabled)</pre>
+<h4>setServerManager</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.325">setServerManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;p_serverManager)</pre>
 </li>
 </ul>
-<a name="setMetaLocation(org.apache.hadoop.hbase.ServerName)">
+<a name="setFilter(java.lang.String)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setMetaLocation</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.332">setMetaLocation</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;p_metaLocation)</pre>
+<h4>setFilter</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.332">setFilter</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_filter)</pre>
 </li>
 </ul>
 <a name="constructImpl(java.lang.Class)">

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

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

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


[32/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.OnlineEntry.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.OnlineEntry.html b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.OnlineEntry.html
index 4db544d..6346d17 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.OnlineEntry.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.OnlineEntry.html
@@ -99,7 +99,7 @@
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3539">HBaseFsck.OnlineEntry</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3540">HBaseFsck.OnlineEntry</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Stores the regioninfo retrieved from Online region servers.</div>
 </li>
@@ -192,7 +192,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hri</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.OnlineEntry.html#line.3540">hri</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.OnlineEntry.html#line.3541">hri</a></pre>
 </li>
 </ul>
 <a name="hsa">
@@ -201,7 +201,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hsa</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.OnlineEntry.html#line.3541">hsa</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.OnlineEntry.html#line.3542">hsa</a></pre>
 </li>
 </ul>
 </li>
@@ -218,7 +218,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HBaseFsck.OnlineEntry</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.OnlineEntry.html#line.3539">HBaseFsck.OnlineEntry</a>()</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.OnlineEntry.html#line.3540">HBaseFsck.OnlineEntry</a>()</pre>
 </li>
 </ul>
 </li>
@@ -235,7 +235,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.OnlineEntry.html#line.3544">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.OnlineEntry.html#line.3545">toString</a>()</pre>
 <dl>
 <dt><strong>Overrides:</strong></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html
index 714e681..99b2aae 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html
@@ -103,7 +103,7 @@
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3848">HBaseFsck.PrintingErrorReporter</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3849">HBaseFsck.PrintingErrorReporter</a>
 extends <a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a></pre>
 </li>
@@ -287,7 +287,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorR
 <ul class="blockList">
 <li class="blockList">
 <h4>errorCount</h4>
-<pre>public&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3849">errorCount</a></pre>
+<pre>public&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3850">errorCount</a></pre>
 </li>
 </ul>
 <a name="showProgress">
@@ -296,7 +296,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorR
 <ul class="blockList">
 <li class="blockList">
 <h4>showProgress</h4>
-<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3850">showProgress</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3851">showProgress</a></pre>
 </li>
 </ul>
 <a name="progressThreshold">
@@ -305,7 +305,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorR
 <ul class="blockList">
 <li class="blockList">
 <h4>progressThreshold</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3852">progressThreshold</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3853">progressThreshold</a></pre>
 <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.util.HBaseFsck.PrintingErrorReporter.progressThreshold">Constant Field Values</a></dd></dl>
 </li>
 </ul>
@@ -315,7 +315,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorR
 <ul class="blockList">
 <li class="blockList">
 <h4>errorTables</h4>
-<pre><a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3854">errorTables</a></pre>
+<pre><a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3855">errorTables</a></pre>
 </li>
 </ul>
 <a name="errorList">
@@ -324,7 +324,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorR
 <ul class="blockListLast">
 <li class="blockList">
 <h4>errorList</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3857">errorList</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3858">errorList</a></pre>
 </li>
 </ul>
 </li>
@@ -341,7 +341,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorR
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HBaseFsck.PrintingErrorReporter</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3848">HBaseFsck.PrintingErrorReporter</a>()</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3849">HBaseFsck.PrintingErrorReporter</a>()</pre>
 </li>
 </ul>
 </li>
@@ -358,7 +358,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorR
 <ul class="blockList">
 <li class="blockList">
 <h4>clear</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3860">clear</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3861">clear</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#clear()">clear</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a></code></dd>
@@ -371,7 +371,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorR
 <ul class="blockList">
 <li class="blockList">
 <h4>reportError</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3867">reportError</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&nbsp;errorCode,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3868">reportError</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&nbsp;errorCode,
                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
@@ -385,7 +385,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorR
 <ul class="blockList">
 <li class="blockList">
 <h4>reportError</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3882">reportError</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&nbsp;errorCode,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3883">reportError</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&nbsp;errorCode,
                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
                <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&nbsp;table)</pre>
 <dl>
@@ -400,7 +400,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorR
 <ul class="blockList">
 <li class="blockList">
 <h4>reportError</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3888">reportError</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&nbsp;errorCode,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3889">reportError</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&nbsp;errorCode,
                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
                <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&nbsp;table,
                <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;info)</pre>
@@ -416,7 +416,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorR
 <ul class="blockList">
 <li class="blockList">
 <h4>reportError</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3896">reportError</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&nbsp;errorCode,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3897">reportError</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&nbsp;errorCode,
                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
                <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&nbsp;table,
                <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;info1,
@@ -433,7 +433,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorR
 <ul class="blockList">
 <li class="blockList">
 <h4>reportError</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3905">reportError</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3906">reportError</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#reportError(java.lang.String)">reportError</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a></code></dd>
@@ -446,7 +446,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorR
 <ul class="blockList">
 <li class="blockList">
 <h4>report</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3915">report</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3916">report</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
 <div class="block">Report error information, but do not increment the error count.  Intended for cases
  where the actual error would have been reported previously.</div>
 <dl>
@@ -461,7 +461,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorR
 <ul class="blockList">
 <li class="blockList">
 <h4>summarize</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3923">summarize</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3924">summarize</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#summarize()">summarize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a></code></dd>
@@ -474,7 +474,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorR
 <ul class="blockList">
 <li class="blockList">
 <h4>getErrorList</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3936">getErrorList</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter.ERROR_CODE</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3937">getErrorList</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#getErrorList()">getErrorList</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a></code></dd>
@@ -487,7 +487,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorR
 <ul class="blockList">
 <li class="blockList">
 <h4>print</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3941">print</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3942">print</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#print(java.lang.String)">print</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a></code></dd>
@@ -500,7 +500,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorR
 <ul class="blockList">
 <li class="blockList">
 <h4>tableHasErrors</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3948">tableHasErrors</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&nbsp;table)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3949">tableHasErrors</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&nbsp;table)</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#tableHasErrors(org.apache.hadoop.hbase.util.HBaseFsck.TableInfo)">tableHasErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a></code></dd>
@@ -513,7 +513,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorR
 <ul class="blockList">
 <li class="blockList">
 <h4>resetErrors</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3953">resetErrors</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3954">resetErrors</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#resetErrors()">resetErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a></code></dd>
@@ -526,7 +526,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorR
 <ul class="blockList">
 <li class="blockList">
 <h4>detail</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3958">detail</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3959">detail</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#detail(java.lang.String)">detail</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a></code></dd>
@@ -539,7 +539,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorR
 <ul class="blockListLast">
 <li class="blockList">
 <h4>progress</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3966">progress</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#line.3967">progress</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#progress()">progress</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.RegionRepairException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.RegionRepairException.html b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.RegionRepairException.html
index 883c246..1f8fdc6 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.RegionRepairException.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.RegionRepairException.html
@@ -118,7 +118,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1115">HBaseFsck.RegionRepairException</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.1116">HBaseFsck.RegionRepairException</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Exception thrown when a integrity repair operation fails in an
  unresolvable way.</div>
@@ -210,7 +210,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>serialVersionUID</h4>
-<pre>private static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.RegionRepairException.html#line.1116">serialVersionUID</a></pre>
+<pre>private static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.RegionRepairException.html#line.1117">serialVersionUID</a></pre>
 <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.util.HBaseFsck.RegionRepairException.serialVersionUID">Constant Field Values</a></dd></dl>
 </li>
 </ul>
@@ -220,7 +220,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.ht
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ioe</h4>
-<pre>final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.RegionRepairException.html#line.1117">ioe</a></pre>
+<pre>final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.RegionRepairException.html#line.1118">ioe</a></pre>
 </li>
 </ul>
 </li>
@@ -237,7 +237,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.ht
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HBaseFsck.RegionRepairException</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.RegionRepairException.html#line.1118">HBaseFsck.RegionRepairException</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;s,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.RegionRepairException.html#line.1119">HBaseFsck.RegionRepairException</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;s,
                                <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;ioe)</pre>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html
index 70dbaa1..b71f934 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html
@@ -113,7 +113,7 @@
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2769">HBaseFsck.TableInfo.HDFSIntegrityFixer</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2770">HBaseFsck.TableInfo.HDFSIntegrityFixer</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo.IntegrityFixSuggester</a></pre>
 <div class="block">This handler fixes integrity errors from hdfs information.  There are
  basically three classes of integrity problems 1) holes, 2) overlaps, and
@@ -277,7 +277,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo
 <ul class="blockList">
 <li class="blockList">
 <h4>conf</h4>
-<pre>org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html#line.2770">conf</a></pre>
+<pre>org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html#line.2771">conf</a></pre>
 </li>
 </ul>
 <a name="fixOverlaps">
@@ -286,7 +286,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo
 <ul class="blockListLast">
 <li class="blockList">
 <h4>fixOverlaps</h4>
-<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html#line.2772">fixOverlaps</a></pre>
+<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html#line.2773">fixOverlaps</a></pre>
 </li>
 </ul>
 </li>
@@ -303,7 +303,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HBaseFsck.TableInfo.HDFSIntegrityFixer</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html#line.2774">HBaseFsck.TableInfo.HDFSIntegrityFixer</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&nbsp;ti,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html#line.2775">HBaseFsck.TableInfo.HDFSIntegrityFixer</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&nbsp;ti,
                                       <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a>&nbsp;errors,
                                       org.apache.hadoop.conf.Configuration&nbsp;conf,
                                       boolean&nbsp;fixHoles,
@@ -324,7 +324,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo
 <ul class="blockList">
 <li class="blockList">
 <h4>handleRegionStartKeyNotEmpty</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html#line.2788">handleRegionStartKeyNotEmpty</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;next)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html#line.2789">handleRegionStartKeyNotEmpty</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;next)
                                   throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">This is a special case hole -- when the first region of a table is
  missing from META, HBase doesn't acknowledge the existance of the
@@ -347,7 +347,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo
 <ul class="blockList">
 <li class="blockList">
 <h4>handleRegionEndKeyNotEmpty</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html#line.2806">handleRegionEndKeyNotEmpty</a>(byte[]&nbsp;curEndKey)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html#line.2807">handleRegionEndKeyNotEmpty</a>(byte[]&nbsp;curEndKey)
                                 throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandlerImpl.html#handleRegionEndKeyNotEmpty(byte[])">TableIntegrityErrorHandlerImpl</a></code></strong></div>
 <div class="block">Callback for handling case where a Table has a last region that does not
@@ -369,7 +369,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo
 <ul class="blockList">
 <li class="blockList">
 <h4>handleHoleInRegionChain</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html#line.2826">handleHoleInRegionChain</a>(byte[]&nbsp;holeStartKey,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html#line.2827">handleHoleInRegionChain</a>(byte[]&nbsp;holeStartKey,
                            byte[]&nbsp;holeStopKey)
                              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">There is a hole in the hdfs regions that violates the table integrity
@@ -390,7 +390,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo
 <ul class="blockList">
 <li class="blockList">
 <h4>handleOverlapGroup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html#line.2853">handleOverlapGroup</a>(<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt;&nbsp;overlap)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html#line.2854">handleOverlapGroup</a>(<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt;&nbsp;overlap)
                         throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">This takes set of overlapping regions and merges them into a single
  region.  This covers cases like degenerate regions, shared start key,
@@ -417,7 +417,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo
 <ul class="blockList">
 <li class="blockList">
 <h4>mergeOverlaps</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html#line.2876">mergeOverlaps</a>(<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt;&nbsp;overlap)
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html#line.2877">mergeOverlaps</a>(<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt;&nbsp;overlap)
              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -429,7 +429,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo
 <ul class="blockListLast">
 <li class="blockList">
 <h4>sidelineBigOverlaps</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html#line.2952">sidelineBigOverlaps</a>(<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt;&nbsp;bigOverlap)
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.HDFSIntegrityFixer.html#line.2953">sidelineBigOverlaps</a>(<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt;&nbsp;bigOverlap)
                    throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Sideline some regions in a big overlap group so that it
  will have fewer regions, and it is easier to merge them later on.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html
index d637bbb..f4b6fb5 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html
@@ -112,7 +112,7 @@
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2697">HBaseFsck.TableInfo.IntegrityFixSuggester</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2698">HBaseFsck.TableInfo.IntegrityFixSuggester</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandlerImpl.html" title="class in org.apache.hadoop.hbase.util.hbck">TableIntegrityErrorHandlerImpl</a></pre>
 </li>
 </ul>
@@ -245,7 +245,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrity
 <ul class="blockListLast">
 <li class="blockList">
 <h4>errors</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html#line.2698">errors</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html#line.2699">errors</a></pre>
 </li>
 </ul>
 </li>
@@ -262,7 +262,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrity
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HBaseFsck.TableInfo.IntegrityFixSuggester</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html#line.2700">HBaseFsck.TableInfo.IntegrityFixSuggester</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&nbsp;ti,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html#line.2701">HBaseFsck.TableInfo.IntegrityFixSuggester</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a>&nbsp;ti,
                                          <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a>&nbsp;errors)</pre>
 </li>
 </ul>
@@ -280,7 +280,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrity
 <ul class="blockList">
 <li class="blockList">
 <h4>handleRegionStartKeyNotEmpty</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html#line.2706">handleRegionStartKeyNotEmpty</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html#line.2707">handleRegionStartKeyNotEmpty</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi)
                                   throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandlerImpl.html#handleRegionStartKeyNotEmpty(org.apache.hadoop.hbase.util.HBaseFsck.HbckInfo)">TableIntegrityErrorHandlerImpl</a></code></strong></div>
 <div class="block">Callback for handling case where a Table has a first region that does not
@@ -303,7 +303,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrity
 <ul class="blockList">
 <li class="blockList">
 <h4>handleRegionEndKeyNotEmpty</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html#line.2714">handleRegionEndKeyNotEmpty</a>(byte[]&nbsp;curEndKey)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html#line.2715">handleRegionEndKeyNotEmpty</a>(byte[]&nbsp;curEndKey)
                                 throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandlerImpl.html#handleRegionEndKeyNotEmpty(byte[])">TableIntegrityErrorHandlerImpl</a></code></strong></div>
 <div class="block">Callback for handling case where a Table has a last region that does not
@@ -325,7 +325,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrity
 <ul class="blockList">
 <li class="blockList">
 <h4>handleDegenerateRegion</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html#line.2721">handleDegenerateRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html#line.2722">handleDegenerateRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi)
                             throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandlerImpl.html#handleDegenerateRegion(org.apache.hadoop.hbase.util.HBaseFsck.HbckInfo)">TableIntegrityErrorHandlerImpl</a></code></strong></div>
 <div class="block">Callback for handling a region that has the same start and end key.</div>
@@ -345,7 +345,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrity
 <ul class="blockList">
 <li class="blockList">
 <h4>handleDuplicateStartKeys</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html#line.2727">handleDuplicateStartKeys</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;r1,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html#line.2728">handleDuplicateStartKeys</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;r1,
                             <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;r2)
                               throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandlerImpl.html#handleDuplicateStartKeys(org.apache.hadoop.hbase.util.HBaseFsck.HbckInfo,%20org.apache.hadoop.hbase.util.HBaseFsck.HbckInfo)">TableIntegrityErrorHandlerImpl</a></code></strong></div>
@@ -367,7 +367,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrity
 <ul class="blockList">
 <li class="blockList">
 <h4>handleOverlapInRegionChain</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html#line.2739">handleOverlapInRegionChain</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi1,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html#line.2740">handleOverlapInRegionChain</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi1,
                               <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hi2)
                                 throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandlerImpl.html#handleOverlapInRegionChain(org.apache.hadoop.hbase.util.HBaseFsck.HbckInfo,%20org.apache.hadoop.hbase.util.HBaseFsck.HbckInfo)">TableIntegrityErrorHandlerImpl</a></code></strong></div>
@@ -391,7 +391,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrity
 <ul class="blockListLast">
 <li class="blockList">
 <h4>handleHoleInRegionChain</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html#line.2746">handleHoleInRegionChain</a>(byte[]&nbsp;holeStart,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.IntegrityFixSuggester.html#line.2747">handleHoleInRegionChain</a>(byte[]&nbsp;holeStart,
                            byte[]&nbsp;holeStop)
                              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandlerImpl.html#handleHoleInRegionChain(byte[],%20byte[])">TableIntegrityErrorHandlerImpl</a></code></strong></div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html
index 558fe61..c32d347 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html
@@ -99,7 +99,7 @@
 </dl>
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2602">HBaseFsck.TableInfo</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2603">HBaseFsck.TableInfo</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Maintain information about a particular table.</div>
 </li>
@@ -279,7 +279,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>tableName</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2603">tableName</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2604">tableName</a></pre>
 </li>
 </ul>
 <a name="deployedOn">
@@ -288,7 +288,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>deployedOn</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeSet.html?is-external=true" title="class or interface in java.util">TreeSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2604">deployedOn</a></pre>
+<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeSet.html?is-external=true" title="class or interface in java.util">TreeSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2605">deployedOn</a></pre>
 </li>
 </ul>
 <a name="backwards">
@@ -297,7 +297,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>backwards</h4>
-<pre>final&nbsp;<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2607">backwards</a></pre>
+<pre>final&nbsp;<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2608">backwards</a></pre>
 </li>
 </ul>
 <a name="sidelinedRegions">
@@ -306,7 +306,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>sidelinedRegions</h4>
-<pre>final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.fs.Path,<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2610">sidelinedRegions</a></pre>
+<pre>final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.fs.Path,<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2611">sidelinedRegions</a></pre>
 </li>
 </ul>
 <a name="sc">
@@ -315,7 +315,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>sc</h4>
-<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitCalculator.html" title="class in org.apache.hadoop.hbase.util">RegionSplitCalculator</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2613">sc</a></pre>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitCalculator.html" title="class in org.apache.hadoop.hbase.util">RegionSplitCalculator</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2614">sc</a></pre>
 </li>
 </ul>
 <a name="htds">
@@ -324,7 +324,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>htds</h4>
-<pre>final&nbsp;<a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2616">htds</a></pre>
+<pre>final&nbsp;<a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2617">htds</a></pre>
 </li>
 </ul>
 <a name="overlapGroups">
@@ -333,7 +333,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>overlapGroups</h4>
-<pre>final&nbsp;com.google.common.collect.Multimap&lt;byte[],<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2619">overlapGroups</a></pre>
+<pre>final&nbsp;com.google.common.collect.Multimap&lt;byte[],<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2620">overlapGroups</a></pre>
 </li>
 </ul>
 <a name="regionsFromMeta">
@@ -342,7 +342,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>regionsFromMeta</h4>
-<pre>private&nbsp;com.google.common.collect.ImmutableList&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/util/HBaseFsck.TableInfo.html#line.2623">regionsFromMeta</a></pre>
+<pre>private&nbsp;com.google.common.collect.ImmutableList&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/util/HBaseFsck.TableInfo.html#line.2624">regionsFromMeta</a></pre>
 </li>
 </ul>
 </li>
@@ -359,7 +359,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HBaseFsck.TableInfo</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2625">HBaseFsck.TableInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;name)</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2626">HBaseFsck.TableInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;name)</pre>
 </li>
 </ul>
 </li>
@@ -376,7 +376,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getHTD</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2633">getHTD</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2634">getHTD</a>()</pre>
 <dl><dt><span class="strong">Returns:</span></dt><dd>descriptor common to all regions.  null if are none or multiple!</dd></dl>
 </li>
 </ul>
@@ -386,7 +386,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>addRegionInfo</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2643">addRegionInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hir)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2644">addRegionInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hir)</pre>
 </li>
 </ul>
 <a name="addServer(org.apache.hadoop.hbase.ServerName)">
@@ -395,7 +395,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>addServer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2668">addServer</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2669">addServer</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server)</pre>
 </li>
 </ul>
 <a name="getName()">
@@ -404,7 +404,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getName</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2672">getName</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2673">getName</a>()</pre>
 </li>
 </ul>
 <a name="getNumRegions()">
@@ -413,7 +413,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumRegions</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2676">getNumRegions</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.2677">getNumRegions</a>()</pre>
 </li>
 </ul>
 <a name="getRegionsFromMeta()">
@@ -422,7 +422,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionsFromMeta</h4>
-<pre>public&nbsp;com.google.common.collect.ImmutableList&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/util/HBaseFsck.TableInfo.html#line.2680">getRegionsFromMeta</a>()</pre>
+<pre>public&nbsp;com.google.common.collect.ImmutableList&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/util/HBaseFsck.TableInfo.html#line.2681">getRegionsFromMeta</a>()</pre>
 </li>
 </ul>
 <a name="checkRegionChain(org.apache.hadoop.hbase.util.hbck.TableIntegrityErrorHandler)">
@@ -431,7 +431,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>checkRegionChain</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.3000">checkRegionChain</a>(<a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandler.html" title="interface in org.apache.hadoop.hbase.util.hbck">TableIntegrityErrorHandler</a>&nbsp;handler)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.3001">checkRegionChain</a>(<a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandler.html" title="interface in org.apache.hadoop.hbase.util.hbck">TableIntegrityErrorHandler</a>&nbsp;handler)
                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Check the region chain (from META) of this table.  We are looking for
  holes, overlaps, and cycles.</div>
@@ -446,7 +446,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>handleOverlapsParallel</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.3125">handleOverlapsParallel</a>(<a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandler.html" title="interface in org.apache.hadoop.hbase.util.hbck">TableIntegrityErrorHandler</a>&nbsp;handler,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.3126">handleOverlapsParallel</a>(<a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandler.html" title="interface in org.apache.hadoop.hbase.util.hbck">TableIntegrityErrorHandler</a>&nbsp;handler,
                              byte[]&nbsp;prevKey)
                                 throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -459,7 +459,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>dump</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.3162">dump</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;byte[]&gt;&nbsp;splits,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#line.3163">dump</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;byte[]&gt;&nbsp;splits,
         com.google.common.collect.Multimap&lt;byte[],<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt;&nbsp;regions)</pre>
 <div class="block">This dumps data in a visually reasonable way for visual debugging</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>splits</code> - </dd><dd><code>regions</code> - </dd></dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsDir.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsDir.html b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsDir.html
index a4f3c5d..3957f07 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsDir.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsDir.html
@@ -103,7 +103,7 @@
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4044">HBaseFsck.WorkItemHdfsDir</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4045">HBaseFsck.WorkItemHdfsDir</a>
 extends <a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</pre>
 <div class="block">Contact hdfs and get all information about specified table directory into
@@ -209,7 +209,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockList">
 <li class="blockList">
 <h4>hbck</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsDir.html#line.4045">hbck</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsDir.html#line.4046">hbck</a></pre>
 </li>
 </ul>
 <a name="tableDir">
@@ -218,7 +218,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockList">
 <li class="blockList">
 <h4>tableDir</h4>
-<pre>private&nbsp;org.apache.hadoop.fs.FileStatus <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsDir.html#line.4046">tableDir</a></pre>
+<pre>private&nbsp;org.apache.hadoop.fs.FileStatus <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsDir.html#line.4047">tableDir</a></pre>
 </li>
 </ul>
 <a name="errors">
@@ -227,7 +227,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockList">
 <li class="blockList">
 <h4>errors</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsDir.html#line.4047">errors</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsDir.html#line.4048">errors</a></pre>
 </li>
 </ul>
 <a name="fs">
@@ -236,7 +236,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>fs</h4>
-<pre>private&nbsp;org.apache.hadoop.fs.FileSystem <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsDir.html#line.4048">fs</a></pre>
+<pre>private&nbsp;org.apache.hadoop.fs.FileSystem <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsDir.html#line.4049">fs</a></pre>
 </li>
 </ul>
 </li>
@@ -253,7 +253,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HBaseFsck.WorkItemHdfsDir</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsDir.html#line.4050">HBaseFsck.WorkItemHdfsDir</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck</a>&nbsp;hbck,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsDir.html#line.4051">HBaseFsck.WorkItemHdfsDir</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck</a>&nbsp;hbck,
                          org.apache.hadoop.fs.FileSystem&nbsp;fs,
                          <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a>&nbsp;errors,
                          org.apache.hadoop.fs.FileStatus&nbsp;status)</pre>
@@ -273,7 +273,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>call</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsDir.html#line.4059">call</a>()
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsDir.html#line.4060">call</a>()
           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsRegionInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsRegionInfo.html b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsRegionInfo.html
index 69c3b51..60e7188 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsRegionInfo.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsRegionInfo.html
@@ -103,7 +103,7 @@
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4117">HBaseFsck.WorkItemHdfsRegionInfo</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.4118">HBaseFsck.WorkItemHdfsRegionInfo</a>
 extends <a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</pre>
 <div class="block">Contact hdfs and get all information about specified table directory into
@@ -204,7 +204,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockList">
 <li class="blockList">
 <h4>hbi</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsRegionInfo.html#line.4118">hbi</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsRegionInfo.html#line.4119">hbi</a></pre>
 </li>
 </ul>
 <a name="hbck">
@@ -213,7 +213,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockList">
 <li class="blockList">
 <h4>hbck</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsRegionInfo.html#line.4119">hbck</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsRegionInfo.html#line.4120">hbck</a></pre>
 </li>
 </ul>
 <a name="errors">
@@ -222,7 +222,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>errors</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsRegionInfo.html#line.4120">errors</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsRegionInfo.html#line.4121">errors</a></pre>
 </li>
 </ul>
 </li>
@@ -239,7 +239,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HBaseFsck.WorkItemHdfsRegionInfo</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsRegionInfo.html#line.4122">HBaseFsck.WorkItemHdfsRegionInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hbi,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsRegionInfo.html#line.4123">HBaseFsck.WorkItemHdfsRegionInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&nbsp;hbi,
                                 <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck</a>&nbsp;hbck,
                                 <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a>&nbsp;errors)</pre>
 </li>
@@ -258,7 +258,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>call</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsRegionInfo.html#line.4129">call</a>()
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemHdfsRegionInfo.html#line.4130">call</a>()
           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemOverlapMerge.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemOverlapMerge.html b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemOverlapMerge.html
index 7d3d9df..d73661b 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemOverlapMerge.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemOverlapMerge.html
@@ -103,7 +103,7 @@
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2582">HBaseFsck.WorkItemOverlapMerge</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.2583">HBaseFsck.WorkItemOverlapMerge</a>
 extends <a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</pre>
 </li>
@@ -197,7 +197,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockList">
 <li class="blockList">
 <h4>handler</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandler.html" title="interface in org.apache.hadoop.hbase.util.hbck">TableIntegrityErrorHandler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemOverlapMerge.html#line.2583">handler</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandler.html" title="interface in org.apache.hadoop.hbase.util.hbck">TableIntegrityErrorHandler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemOverlapMerge.html#line.2584">handler</a></pre>
 </li>
 </ul>
 <a name="overlapgroup">
@@ -206,7 +206,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>overlapgroup</h4>
-<pre><a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemOverlapMerge.html#line.2584">overlapgroup</a></pre>
+<pre><a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemOverlapMerge.html#line.2585">overlapgroup</a></pre>
 </li>
 </ul>
 </li>
@@ -223,7 +223,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HBaseFsck.WorkItemOverlapMerge</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemOverlapMerge.html#line.2586">HBaseFsck.WorkItemOverlapMerge</a>(<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt;&nbsp;overlapgroup,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemOverlapMerge.html#line.2587">HBaseFsck.WorkItemOverlapMerge</a>(<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.HbckInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.HbckInfo</a>&gt;&nbsp;overlapgroup,
                               <a href="../../../../../org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandler.html" title="interface in org.apache.hadoop.hbase.util.hbck">TableIntegrityErrorHandler</a>&nbsp;handler)</pre>
 </li>
 </ul>
@@ -241,7 +241,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>call</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemOverlapMerge.html#line.2592">call</a>()
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemOverlapMerge.html#line.2593">call</a>()
           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>


[44/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/MasterCoprocessorEnvironment.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/MasterCoprocessorEnvironment.html b/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/MasterCoprocessorEnvironment.html
index e2d7447..4ab6d7c 100644
--- a/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/MasterCoprocessorEnvironment.html
+++ b/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/MasterCoprocessorEnvironment.html
@@ -550,70 +550,90 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                                  <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                                  <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                                  <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                                  <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
+                                  <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                                  <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)</code>
+<div class="block">called after dispatching the region merge request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postEnableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTable</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postEnableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTable</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTable</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the enableTable operation has been requested.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postEnableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTableHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postEnableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTableHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTableHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the enableTable operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postGetNamespaceDescriptor(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postGetNamespaceDescriptor</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                     <a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postGetNamespaceDescriptor(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postGetNamespaceDescriptor</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                     <a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetNamespaceDescriptor(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postGetNamespaceDescriptor</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                     <a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
 <div class="block">Called after a getNamespaceDescriptor request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postGetTableDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.util.List,%20java.lang.String)">postGetTableDescriptors</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                               <a href="http://docs.oracle.com/javase/7/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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNamesList,
                                               <a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
                                               <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postGetTableDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.util.List,%20java.lang.String)">postGetTableDescriptors</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                               <a href="http://docs.oracle.com/javase/7/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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNamesList,
                                               <a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
                                               <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.util.List,%20java.lang.String)">postGetTableDescriptors</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                               <a href="http://docs.oracle.com/javase/7/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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNamesList,
@@ -622,19 +642,19 @@
 <div class="block">Called after a getTableDescriptors request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postGetTableNames(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.lang.String)">postGetTableNames</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
                                   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postGetTableNames(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.lang.String)">postGetTableNames</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
                                   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableNames(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.lang.String)">postGetTableNames</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
@@ -642,58 +662,58 @@
 <div class="block">Called after a getTableNames request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postListNamespaceDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListNamespaceDescriptors</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                         <a href="http://docs.oracle.com/javase/7/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/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;&nbsp;descriptors)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postListNamespaceDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListNamespaceDescriptors</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                         <a href="http://docs.oracle.com/javase/7/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/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;&nbsp;descriptors)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListNamespaceDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListNamespaceDescriptors</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                         <a href="http://docs.oracle.com/javase/7/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/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;&nbsp;descriptors)</code>
 <div class="block">Called after a listNamespaceDescriptors request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postListProcedures(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListProcedures</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     <a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&gt;&nbsp;procInfoList)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postListProcedures(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListProcedures</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     <a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&gt;&nbsp;procInfoList)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListProcedures(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListProcedures</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     <a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&gt;&nbsp;procInfoList)</code>
 <div class="block">Called after a listProcedures request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postListSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">postListSnapshot</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postListSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">postListSnapshot</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">postListSnapshot</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)</code>
 <div class="block">Called after listSnapshots request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumn</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -701,7 +721,7 @@
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumn</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -709,7 +729,7 @@
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumn</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -721,19 +741,19 @@
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamily</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                             <a href="../../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;columnFamily)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamily</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                             <a href="../../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;columnFamily)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamily</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -741,19 +761,19 @@
 <div class="block">Called after the column family has been updated.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamilyHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                           <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                           <a href="../../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;columnFamily)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamilyHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                           <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                           <a href="../../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;columnFamily)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamilyHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                           <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -761,7 +781,7 @@
 <div class="block">Called after the column family has been updated.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -769,7 +789,7 @@
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -777,7 +797,7 @@
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -789,36 +809,36 @@
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postModifyNamespace</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                       <a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postModifyNamespace</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                       <a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postModifyNamespace</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                       <a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
 <div class="block">Called after the modifyNamespace operation has been requested.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTable</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                               <a href="../../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTable</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                               <a href="../../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTable</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -826,19 +846,19 @@
 <div class="block">Called after the modifyTable operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTableHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                             <a href="../../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTableHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                             <a href="../../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTableHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -846,21 +866,21 @@
 <div class="block">Called after to modifying a table's properties.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">postMove</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
                 <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;srcServer,
                 <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;destServer)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">postMove</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
                 <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;srcServer,
                 <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;destServer)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">postMove</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
@@ -869,36 +889,36 @@
 <div class="block">Called after the region move has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postRegionOffline(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">postRegionOffline</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postRegionOffline(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">postRegionOffline</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRegionOffline(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">postRegionOffline</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>
 <div class="block">Called after the region has been marked offline.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postRestoreSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postRestoreSnapshot</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                       org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
                                       <a href="../../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;hTableDescriptor)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postRestoreSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postRestoreSnapshot</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                       org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
                                       <a href="../../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;hTableDescriptor)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRestoreSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postRestoreSnapshot</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                       org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
@@ -906,19 +926,19 @@
 <div class="block">Called after a snapshot restore operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetNamespaceQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetNamespaceQuota</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                                           org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postSetNamespaceQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetNamespaceQuota</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                                           org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetNamespaceQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetNamespaceQuota</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
@@ -926,19 +946,19 @@
 <div class="block">Called after the quota for the namespace is stored.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetTableQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetTableQuota</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                   org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postSetTableQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetTableQuota</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                   org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetTableQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetTableQuota</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -946,19 +966,19 @@
 <div class="block">Called after the quota for the table is stored.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
                                 org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
                                 org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -966,21 +986,21 @@
 <div class="block">Called after the quota for the user is stored.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                                 org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                                 org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -989,21 +1009,21 @@
 <div class="block">Called after the quota for the user on the specified namespace is stored.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
                                 <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                 org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
                                 <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                 org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -1012,19 +1032,19 @@
 <div class="block">Called after the quota for the user on the specified table is stored.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postSnapshot</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
                         <a href="../../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;hTableDescriptor)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postSnapshot</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
                         <a href="../../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;hTableDescriptor)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postSnapshot</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
@@ -1032,66 +1052,66 @@
 <div class="block">Called after the snapshot operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postStartMaster(org.apache.hadoop.hbase.coprocessor.ObserverContext)">postStartMaster</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postStartMaster(org.apache.hadoop.hbase.coprocessor.ObserverContext)">postStartMaster</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postStartMaster(org.apache.hadoop.hbase.coprocessor.ObserverContext)">postStartMaster</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called immediately after an active master instance has completed
  initialization.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr

<TRUNCATED>

[49/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index ceeb1f5..27e4a7a 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -26,7 +26,7 @@ under the License.
     <copyright>&#169;2007 - 2016 The Apache Software Foundation</copyright>
     <item>
       <title>File: 1666,
-             Errors: 12904,
+             Errors: 12905,
              Warnings: 0,
              Infos: 0
       </title>
@@ -11381,7 +11381,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  89
+                  88
                 </td>
               </tr>
                           <tr>
@@ -14951,7 +14951,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  8
                 </td>
               </tr>
                           <tr>
@@ -19305,7 +19305,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  2
                 </td>
               </tr>
                           <tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/coc.html
----------------------------------------------------------------------
diff --git a/coc.html b/coc.html
index 34f510d..be74565 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="20160122" />
+    <meta name="Date-Revision-yyyymmdd" content="20160124" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Code of Conduct Policy
@@ -331,7 +331,7 @@ For flagrant violations requiring a firm response the PMC may opt to skip early
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-22</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-24</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/cygwin.html
----------------------------------------------------------------------
diff --git a/cygwin.html b/cygwin.html
index 2015e3a..b4dadbd 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="20160122" />
+    <meta name="Date-Revision-yyyymmdd" content="20160124" />
     <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" />
@@ -673,7 +673,7 @@ Now your <b>HBase </b>server is running, <b>start coding</b> and build that next
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-22</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-24</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index 50ed05a..f35a2bc 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="20160122" />
+    <meta name="Date-Revision-yyyymmdd" content="20160124" />
     <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" />
@@ -518,7 +518,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-22</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-24</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 697564c..c2f45f8 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="20160122" />
+    <meta name="Date-Revision-yyyymmdd" content="20160124" />
     <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" />
@@ -1593,7 +1593,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-22</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-24</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index b2d328c..202acd1 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="20160122" />
+    <meta name="Date-Revision-yyyymmdd" content="20160124" />
     <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" />
@@ -312,7 +312,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-22</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-24</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index c2ec39c..f960b9b 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="20160122" />
+    <meta name="Date-Revision-yyyymmdd" content="20160124" />
     <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" />
@@ -786,7 +786,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-22</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-24</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index 2a1b83e..301488c 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -8630,8 +8630,6 @@
 </dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/ProcedureSimpleRunQueue.html#clear()">clear()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="./org/apache/hadoop/hbase/procedure2/ProcedureSimpleRunQueue.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureSimpleRunQueue</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#clear()">clear()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.store.<a href="./org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#clear()">clear()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="./org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.WalProcedureMap</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/util/TimeoutBlockingQueue.html#clear()">clear()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.util.<a href="./org/apache/hadoop/hbase/procedure2/util/TimeoutBlockingQueue.html" title="class in org.apache.hadoop.hbase.procedure2.util">TimeoutBlockingQueue</a></dt>
@@ -13229,6 +13227,8 @@
 <dd>
 <div class="block">Returns an array of bytes corresponding to an array of BigIntegers</div>
 </dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#convertToInfo()">convertToInfo()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="./org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/ProcedureInfo.html#convertToProcedureProto(org.apache.hadoop.hbase.ProcedureInfo)">convertToProcedureProto(ProcedureInfo)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="./org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/snapshot/SnapshotManifest.html#convertToV2SingleManifest()">convertToV2SingleManifest()</a></span> - Method in class org.apache.hadoop.hbase.snapshot.<a href="./org/apache/hadoop/hbase/snapshot/SnapshotManifest.html" title="class in org.apache.hadoop.hbase.snapshot">SnapshotManifest</a></dt>
@@ -30753,7 +30753,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/master/balancer/ClusterLoadState.html#getMaxLoad()">getMaxLoad()</a></span> - Method in class org.apache.hadoop.hbase.master.balancer.<a href="./org/apache/hadoop/hbase/master/balancer/ClusterLoadState.html" title="class in org.apache.hadoop.hbase.master.balancer">ClusterLoadState</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#getMaxLogId(org.apache.hadoop.fs.FileStatus[])">getMaxLogId(FileStatus[])</a></span> - Method in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="./org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a></dt>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#getMaxLogId(org.apache.hadoop.fs.FileStatus[])">getMaxLogId(FileStatus[])</a></span> - Static method in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="./org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/snapshot/SnapshotDescriptionUtils.html#getMaxMasterTimeout(org.apache.hadoop.conf.Configuration,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription.Type,%20long)">getMaxMasterTimeout(Configuration, HBaseProtos.SnapshotDescription.Type, long)</a></span> - Static method in class org.apache.hadoop.hbase.snapshot.<a href="./org/apache/hadoop/hbase/snapshot/SnapshotDescriptionUtils.html" title="class in org.apache.hadoop.hbase.snapshot">SnapshotDescriptionUtils</a></dt>
 <dd>&nbsp;</dd>
@@ -45491,6 +45491,8 @@
 <dd>
 <div class="block">Check if the entire procedure has globally completed, or has been aborted.</div>
 </dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#isCompleted()">isCompleted()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="./org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html#isCompleted()">isCompleted()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="./org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.Bucket.html#isCompletelyFree()">isCompletelyFree()</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="./org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.Bucket.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketAllocator.Bucket</a></dt>
@@ -46327,6 +46329,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#isNextBlock()">isNextBlock()</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.<a href="./org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileReaderImpl.HFileScannerImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#isNextCompleted()">isNextCompleted()</a></span> - Method in interface org.apache.hadoop.hbase.procedure2.store.<a href="./org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#isNextCompleted()">isNextCompleted()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="./org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.EntryIterator</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/HTableDescriptor.html#isNormalizationEnabled()">isNormalizationEnabled()</a></span> - Method in class org.apache.hadoop.hbase.<a href="./org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a></dt>
 <dd>
 <div class="block">Check if normalization enable flag of the table is true.</div>
@@ -56944,12 +56950,6 @@
 </dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/mob/mapreduce/SweepJob.MergeSortReader.html#next()">next()</a></span> - Method in class org.apache.hadoop.hbase.mob.mapreduce.<a href="./org/apache/hadoop/hbase/mob/mapreduce/SweepJob.MergeSortReader.html" title="class in org.apache.hadoop.hbase.mob.mapreduce">SweepJob.MergeSortReader</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#next()">next()</a></span> - Method in interface org.apache.hadoop.hbase.procedure2.store.<a href="./org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureIterator</a></dt>
-<dd>
-<div class="block">Returns the next procedure in the iteration.</div>
-</dd>
-<dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#next()">next()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="./org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.EntryIterator</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/quotas/QuotaRetriever.Iter.html#next()">next()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="./org/apache/hadoop/hbase/quotas/QuotaRetriever.Iter.html" title="class in org.apache.hadoop.hbase.quotas">QuotaRetriever.Iter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/quotas/QuotaRetriever.html#next()">next()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="./org/apache/hadoop/hbase/quotas/QuotaRetriever.html" title="class in org.apache.hadoop.hbase.quotas">QuotaRetriever</a></dt>
@@ -57046,6 +57046,16 @@
 <dd>
 <div class="block"><span class="strong">Deprecated.</span></div>
 &nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#nextAsProcedure()">nextAsProcedure()</a></span> - Method in interface org.apache.hadoop.hbase.procedure2.store.<a href="./org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureIterator</a></dt>
+<dd>
+<div class="block">Returns the next procedure in the iteration.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#nextAsProcedure()">nextAsProcedure()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="./org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.EntryIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#nextAsProcedureInfo()">nextAsProcedureInfo()</a></span> - Method in interface org.apache.hadoop.hbase.procedure2.store.<a href="./org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#nextAsProcedureInfo()">nextAsProcedureInfo()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="./org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.EntryIterator</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/io/hfile/HFileBlock.BlockIterator.html#nextBlock()">nextBlock()</a></span> - Method in interface org.apache.hadoop.hbase.io.hfile.<a href="./org/apache/hadoop/hbase/io/hfile/HFileBlock.BlockIterator.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileBlock.BlockIterator</a></dt>
 <dd>
 <div class="block">Get the next block, or null if there are no more blocks to iterate.</div>
@@ -61249,6 +61259,16 @@ service.</div>
 </dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postDisableTableHandler(org.apache.hadoop.hbase.TableName)">postDisableTableHandler(TableName)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="./org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, HRegionInfo, HRegionInfo)</a></span> - Method in class org.apache.hadoop.hbase.coprocessor.<a href="./org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html" title="class in org.apache.hadoop.hbase.coprocessor">BaseMasterAndRegionObserver</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, HRegionInfo, HRegionInfo)</a></span> - Method in class org.apache.hadoop.hbase.coprocessor.<a href="./org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html" title="class in org.apache.hadoop.hbase.coprocessor">BaseMasterObserver</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, HRegionInfo, HRegionInfo)</a></span> - Method in interface org.apache.hadoop.hbase.coprocessor.<a href="./org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></dt>
+<dd>
+<div class="block">called after dispatching the region merge request.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postDispatchMerge(org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge(HRegionInfo, HRegionInfo)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="./org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#postEnable(org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv,%20org.apache.hadoop.hbase.protobuf.generated.MasterProcedureProtos.EnableTableState)">postEnable(MasterProcedureEnv, MasterProcedureProtos.EnableTableState)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="./org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">EnableTableProcedure</a></dt>
 <dd>
 <div class="block">Action after enabling table.</div>
@@ -62500,6 +62520,18 @@ service.</div>
 </dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preDisableTableHandler(org.apache.hadoop.hbase.TableName)">preDisableTableHandler(TableName)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="./org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">preDispatchMerge(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, HRegionInfo, HRegionInfo)</a></span> - Method in class org.apache.hadoop.hbase.coprocessor.<a href="./org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html" title="class in org.apache.hadoop.hbase.coprocessor">BaseMasterAndRegionObserver</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">preDispatchMerge(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, HRegionInfo, HRegionInfo)</a></span> - Method in class org.apache.hadoop.hbase.coprocessor.<a href="./org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html" title="class in org.apache.hadoop.hbase.coprocessor">BaseMasterObserver</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">preDispatchMerge(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, HRegionInfo, HRegionInfo)</a></span> - Method in interface org.apache.hadoop.hbase.coprocessor.<a href="./org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></dt>
+<dd>
+<div class="block">Called before dispatching region merge request.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preDispatchMerge(org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">preDispatchMerge(HRegionInfo, HRegionInfo)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="./org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/security/access/AccessController.html#preDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">preDispatchMerge(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, HRegionInfo, HRegionInfo)</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="./org/apache/hadoop/hbase/security/access/AccessController.html" title="class in org.apache.hadoop.hbase.security.access">AccessController</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="./org/apache/hadoop/hbase/exceptions/PreemptiveFastFailException.html" title="class in org.apache.hadoop.hbase.exceptions"><span class="strong">PreemptiveFastFailException</span></a> - Exception in <a href="./org/apache/hadoop/hbase/exceptions/package-summary.html">org.apache.hadoop.hbase.exceptions</a></dt>
 <dd>
 <div class="block">Thrown when the client believes that we are trying to communicate to has
@@ -64206,7 +64238,7 @@ service.</div>
 <dd>
 <div class="block">Procedure information</div>
 </dd>
-<dt><span class="strong"><a href="./org/apache/hadoop/hbase/ProcedureInfo.html#ProcedureInfo(long,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState,%20long,%20org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage,%20long,%20long,%20byte[])">ProcedureInfo(long, String, String, ProcedureProtos.ProcedureState, long, ErrorHandlingProtos.ForeignExceptionMessage, long, long, byte[])</a></span> - Constructor for class org.apache.hadoop.hbase.<a href="./org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a></dt>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/ProcedureInfo.html#ProcedureInfo(long,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState,%20long,%20org.apache.hadoop.hbase.util.NonceKey,%20org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage,%20long,%20long,%20byte[])">ProcedureInfo(long, String, String, ProcedureProtos.ProcedureState, long, NonceKey, ErrorHandlingProtos.ForeignExceptionMessage, long, long, byte[])</a></span> - Constructor for class org.apache.hadoop.hbase.<a href="./org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html#procedureLoaded(long)">procedureLoaded(long)</a></span> - Method in interface org.apache.hadoop.hbase.procedure2.<a href="./org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.ProcedureExecutorListener</a></dt>
 <dd>&nbsp;</dd>
@@ -69465,8 +69497,6 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/replication/ReplicationTrackerZKImpl.html#removeListener(org.apache.hadoop.hbase.replication.ReplicationListener)">removeListener(ReplicationListener)</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="./org/apache/hadoop/hbase/replication/ReplicationTrackerZKImpl.html" title="class in org.apache.hadoop.hbase.replication">ReplicationTrackerZKImpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html#removeLog(org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFile)">removeLog(ProcedureWALFile)</a></span> - Method in interface org.apache.hadoop.hbase.procedure2.store.wal.<a href="./org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html" title="interface in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormat.Loader</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/replication/ReplicationQueues.html#removeLog(java.lang.String,%20java.lang.String)">removeLog(String, String)</a></span> - Method in interface org.apache.hadoop.hbase.replication.<a href="./org/apache/hadoop/hbase/replication/ReplicationQueues.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationQueues</a></dt>
 <dd>
 <div class="block">Remove an WAL file from the given queue.</div>
@@ -71001,6 +71031,8 @@ service.</div>
 <dd>
 <div class="block">Reset the Iterator by seeking to the beginning of the list.</div>
 </dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html#reset()">reset()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.store.<a href="./org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#reset()">reset()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="./org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.EntryIterator</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/util/ByteSlot.html#reset()">reset()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.util.<a href="./org/apache/hadoop/hbase/procedure2/util/ByteSlot.html" title="class in org.apache.hadoop.hbase.procedure2.util">ByteSlot</a></dt>
@@ -77457,8 +77489,6 @@ service.</div>
 <dd>
 <div class="block">Called by the ProcedureExecutor to set the value to the newly created procedure.</div>
 </dd>
-<dt><span class="strong"><a href="./org/apache/hadoop/hbase/ProcedureInfo.html#setNonceKey(org.apache.hadoop.hbase.util.NonceKey)">setNonceKey(NonceKey)</a></span> - Method in class org.apache.hadoop.hbase.<a href="./org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#setNonSeekedState()">setNonSeekedState()</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.<a href="./org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileReaderImpl.EncodedScanner</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#setNonSeekedState()">setNonSeekedState()</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.<a href="./org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileReaderImpl.HFileScannerImpl</a></dt>
@@ -79916,6 +79946,12 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/regionserver/compactions/RatioBasedCompactionPolicy.html#skipLargeFiles(java.util.ArrayList,%20boolean)">skipLargeFiles(ArrayList&lt;StoreFile&gt;, boolean)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.compactions.<a href="./org/apache/hadoop/hbase/regionserver/compactions/RatioBasedCompactionPolicy.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">RatioBasedCompactionPolicy</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#skipNext()">skipNext()</a></span> - Method in interface org.apache.hadoop.hbase.procedure2.store.<a href="./org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureIterator</a></dt>
+<dd>
+<div class="block">Skip the next procedure</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#skipNext()">skipNext()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="./org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.EntryIterator</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/master/normalizer/SimpleRegionNormalizer.html#skippedCount">skippedCount</a></span> - Static variable in class org.apache.hadoop.hbase.master.normalizer.<a href="./org/apache/hadoop/hbase/master/normalizer/SimpleRegionNormalizer.html" title="class in org.apache.hadoop.hbase.master.normalizer">SimpleRegionNormalizer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/wal/WALSplitter.OutputSink.html#skippedEdits">skippedEdits</a></span> - Variable in class org.apache.hadoop.hbase.wal.<a href="./org/apache/hadoop/hbase/wal/WALSplitter.OutputSink.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.OutputSink</a></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/ProcedureInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ProcedureInfo.html b/devapidocs/org/apache/hadoop/hbase/ProcedureInfo.html
index 50045a0..0faeeed 100644
--- a/devapidocs/org/apache/hadoop/hbase/ProcedureInfo.html
+++ b/devapidocs/org/apache/hadoop/hbase/ProcedureInfo.html
@@ -182,11 +182,12 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><strong><a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html#ProcedureInfo(long,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState,%20long,%20org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage,%20long,%20long,%20byte[])">ProcedureInfo</a></strong>(long&nbsp;procId,
+<td class="colOne"><code><strong><a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html#ProcedureInfo(long,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState,%20long,%20org.apache.hadoop.hbase.util.NonceKey,%20org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage,%20long,%20long,%20byte[])">ProcedureInfo</a></strong>(long&nbsp;procId,
                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;procName,
                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;procOwner,
                           org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState&nbsp;procState,
                           long&nbsp;parentId,
+                          <a href="../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey,
                           org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage&nbsp;exception,
                           long&nbsp;lastUpdate,
                           long&nbsp;startTime,
@@ -312,10 +313,6 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html#setClientAckTime(long)">setClientAckTime</a></strong>(long&nbsp;timestamp)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html#setNonceKey(org.apache.hadoop.hbase.util.NonceKey)">setNonceKey</a></strong>(<a href="../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey)</code>&nbsp;</td>
-</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
@@ -383,13 +380,22 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <pre>private final&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.43">parentId</a></pre>
 </li>
 </ul>
+<a name="nonceKey">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>nonceKey</h4>
+<pre>private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.44">nonceKey</a></pre>
+</li>
+</ul>
 <a name="exception">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>exception</h4>
-<pre>private final&nbsp;org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage <a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.44">exception</a></pre>
+<pre>private final&nbsp;org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage <a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.45">exception</a></pre>
 </li>
 </ul>
 <a name="lastUpdate">
@@ -398,7 +404,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>lastUpdate</h4>
-<pre>private final&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.45">lastUpdate</a></pre>
+<pre>private final&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.46">lastUpdate</a></pre>
 </li>
 </ul>
 <a name="startTime">
@@ -407,7 +413,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>startTime</h4>
-<pre>private final&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.46">startTime</a></pre>
+<pre>private final&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.47">startTime</a></pre>
 </li>
 </ul>
 <a name="result">
@@ -416,16 +422,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>result</h4>
-<pre>private final&nbsp;byte[] <a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.47">result</a></pre>
-</li>
-</ul>
-<a name="nonceKey">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>nonceKey</h4>
-<pre>private&nbsp;<a href="../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.49">nonceKey</a></pre>
+<pre>private final&nbsp;byte[] <a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.48">result</a></pre>
 </li>
 </ul>
 <a name="clientAckTime">
@@ -445,7 +442,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="ProcedureInfo(long, java.lang.String, java.lang.String, org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState, long, org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage, long, long, byte[])">
+<a name="ProcedureInfo(long, java.lang.String, java.lang.String, org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState, long, org.apache.hadoop.hbase.util.NonceKey, org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage, long, long, byte[])">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -456,6 +453,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
              <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;procOwner,
              org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState&nbsp;procState,
              long&nbsp;parentId,
+             <a href="../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey,
              org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage&nbsp;exception,
              long&nbsp;lastUpdate,
              long&nbsp;startTime,
@@ -476,7 +474,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>clone</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.77">clone</a>()</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.79">clone</a>()</pre>
 <dl>
 <dt><strong>Overrides:</strong></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -489,7 +487,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcId</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.82">getProcId</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.84">getProcId</a>()</pre>
 </li>
 </ul>
 <a name="getProcName()">
@@ -498,7 +496,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcName</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html#line.86">getProcName</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html#line.88">getProcName</a>()</pre>
 </li>
 </ul>
 <a name="getProcOwner()">
@@ -507,7 +505,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcOwner</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html#line.90">getProcOwner</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html#line.92">getProcOwner</a>()</pre>
 </li>
 </ul>
 <a name="getProcState()">
@@ -516,7 +514,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcState</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.94">getProcState</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureState&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.96">getProcState</a>()</pre>
 </li>
 </ul>
 <a name="hasParentId()">
@@ -525,7 +523,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>hasParentId</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.98">hasParentId</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.100">hasParentId</a>()</pre>
 </li>
 </ul>
 <a name="getParentId()">
@@ -534,7 +532,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>getParentId</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.102">getParentId</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.104">getParentId</a>()</pre>
 </li>
 </ul>
 <a name="getNonceKey()">
@@ -543,16 +541,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonceKey</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.106">getNonceKey</a>()</pre>
-</li>
-</ul>
-<a name="setNonceKey(org.apache.hadoop.hbase.util.NonceKey)">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>setNonceKey</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.110">setNonceKey</a>(<a href="../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.108">getNonceKey</a>()</pre>
 </li>
 </ul>
 <a name="isFailed()">
@@ -561,7 +550,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>isFailed</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.114">isFailed</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.112">isFailed</a>()</pre>
 </li>
 </ul>
 <a name="getException()">
@@ -570,7 +559,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <ul class="blockList">
 <li class="blockList">
 <h4>getException</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.118">getException</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.116">getException</a>()</pre>
 </li>
 </ul>
 <a name="getForeignExceptionMessage()">
@@ -580,7 +569,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable
 <li class="blockList">
 <h4>getForeignExceptionMessage</h4>
 <pre><a href="../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-public&nbsp;org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.126">getForeignExceptionMessage</a>()</pre>
+public&nbsp;org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.124">getForeignExceptionMessage</a>()</pre>
 </li>
 </ul>
 <a name="getExceptionCause()">
@@ -589,7 +578,7 @@ public&nbsp;org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.Forei
 <ul class="blockList">
 <li class="blockList">
 <h4>getExceptionCause</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html#line.130">getExceptionCause</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html#line.128">getExceptionCause</a>()</pre>
 </li>
 </ul>
 <a name="getExceptionMessage()">
@@ -598,7 +587,7 @@ public&nbsp;org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.Forei
 <ul class="blockList">
 <li class="blockList">
 <h4>getExceptionMessage</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html#line.135">getExceptionMessage</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html#line.133">getExceptionMessage</a>()</pre>
 </li>
 </ul>
 <a name="getExceptionFullMessage()">
@@ -607,7 +596,7 @@ public&nbsp;org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.Forei
 <ul class="blockList">
 <li class="blockList">
 <h4>getExceptionFullMessage</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html#line.140">getExceptionFullMessage</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html#line.138">getExceptionFullMessage</a>()</pre>
 </li>
 </ul>
 <a name="hasResultData()">
@@ -616,7 +605,7 @@ public&nbsp;org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.Forei
 <ul class="blockList">
 <li class="blockList">
 <h4>hasResultData</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.145">hasResultData</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.143">hasResultData</a>()</pre>
 </li>
 </ul>
 <a name="getResult()">
@@ -625,7 +614,7 @@ public&nbsp;org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.Forei
 <ul class="blockList">
 <li class="blockList">
 <h4>getResult</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.149">getResult</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.147">getResult</a>()</pre>
 </li>
 </ul>
 <a name="getStartTime()">
@@ -634,7 +623,7 @@ public&nbsp;org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.Forei
 <ul class="blockList">
 <li class="blockList">
 <h4>getStartTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.153">getStartTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.151">getStartTime</a>()</pre>
 </li>
 </ul>
 <a name="getLastUpdate()">
@@ -643,7 +632,7 @@ public&nbsp;org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.Forei
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastUpdate</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.157">getLastUpdate</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.155">getLastUpdate</a>()</pre>
 </li>
 </ul>
 <a name="executionTime()">
@@ -652,7 +641,7 @@ public&nbsp;org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.Forei
 <ul class="blockList">
 <li class="blockList">
 <h4>executionTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.161">executionTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.159">executionTime</a>()</pre>
 </li>
 </ul>
 <a name="hasClientAckTime()">
@@ -662,7 +651,7 @@ public&nbsp;org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.Forei
 <li class="blockList">
 <h4>hasClientAckTime</h4>
 <pre><a href="../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.166">hasClientAckTime</a>()</pre>
+public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.164">hasClientAckTime</a>()</pre>
 </li>
 </ul>
 <a name="getClientAckTime()">
@@ -672,7 +661,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/P
 <li class="blockList">
 <h4>getClientAckTime</h4>
 <pre><a href="../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.171">getClientAckTime</a>()</pre>
+public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.169">getClientAckTime</a>()</pre>
 </li>
 </ul>
 <a name="setClientAckTime(long)">
@@ -682,7 +671,7 @@ public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Proc
 <li class="blockList">
 <h4>setClientAckTime</h4>
 <pre><a href="../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.176">setClientAckTime</a>(long&nbsp;timestamp)</pre>
+public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.174">setClientAckTime</a>(long&nbsp;timestamp)</pre>
 </li>
 </ul>
 <a name="convertToProcedureProto(org.apache.hadoop.hbase.ProcedureInfo)">
@@ -692,7 +681,7 @@ public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Proc
 <li class="blockList">
 <h4>convertToProcedureProto</h4>
 <pre><a href="../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-public static&nbsp;org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.Procedure&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.185">convertToProcedureProto</a>(<a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&nbsp;procInfo)</pre>
+public static&nbsp;org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.Procedure&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.183">convertToProcedureProto</a>(<a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&nbsp;procInfo)</pre>
 <dl><dt><span class="strong">Returns:</span></dt><dd>Convert the current <a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase"><code>ProcedureInfo</code></a> into a Protocol Buffers Procedure
  instance.</dd></dl>
 </li>
@@ -704,7 +693,7 @@ public static&nbsp;org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.Pr
 <li class="blockList">
 <h4>convert</h4>
 <pre><a href="../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-public static&nbsp;<a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.220">convert</a>(org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.Procedure&nbsp;procProto)</pre>
+public static&nbsp;<a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.218">convert</a>(org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.Procedure&nbsp;procProto)</pre>
 <div class="block">Helper to convert the protobuf object.</div>
 <dl><dt><span class="strong">Returns:</span></dt><dd>Convert the current Protocol Buffers Procedure to <a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase"><code>ProcedureInfo</code></a>
  instance.</dd></dl>
@@ -717,7 +706,7 @@ public static&nbsp;<a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.ht
 <li class="blockList">
 <h4>isProcedureOwner</h4>
 <pre><a href="../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.241">isProcedureOwner</a>(<a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&nbsp;procInfo,
+public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.245">isProcedureOwner</a>(<a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&nbsp;procInfo,
                                                  <a href="../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</pre>
 <div class="block">Check if the user is this procedure's owner</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>procInfo</code> - the procedure to check</dd><dd><code>user</code> - the user</dd>


[15/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
index 2ab8ebc..10be916 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
@@ -316,7 +316,7 @@
 <span class="sourceLineNo">308</span>      public void handleCorrupted(ProcedureIterator procIter) throws IOException {<a name="line.308"></a>
 <span class="sourceLineNo">309</span>        int corruptedCount = 0;<a name="line.309"></a>
 <span class="sourceLineNo">310</span>        while (procIter.hasNext()) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>          Procedure proc = procIter.next();<a name="line.311"></a>
+<span class="sourceLineNo">311</span>          ProcedureInfo proc = procIter.nextAsProcedureInfo();<a name="line.311"></a>
 <span class="sourceLineNo">312</span>          LOG.error("corrupted procedure: " + proc);<a name="line.312"></a>
 <span class="sourceLineNo">313</span>          corruptedCount++;<a name="line.313"></a>
 <span class="sourceLineNo">314</span>        }<a name="line.314"></a>
@@ -329,972 +329,989 @@
 <span class="sourceLineNo">321</span><a name="line.321"></a>
 <span class="sourceLineNo">322</span>  private void loadProcedures(final ProcedureIterator procIter,<a name="line.322"></a>
 <span class="sourceLineNo">323</span>      final boolean abortOnCorruption) throws IOException {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    // 1. Build the rollback stack<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    int runnablesCount = 0;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    while (procIter.hasNext()) {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      Procedure proc = procIter.next();<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      if (!proc.hasParent() &amp;&amp; !proc.isFinished()) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>        rollbackStack.put(proc.getProcId(), new RootProcedureState());<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      // add the procedure to the map<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      proc.beforeReplay(getEnvironment());<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      procedures.put(proc.getProcId(), proc);<a name="line.333"></a>
-<span class="sourceLineNo">334</span><a name="line.334"></a>
-<span class="sourceLineNo">335</span>      // add the nonce to the map<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      if (proc.getNonceKey() != null) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>        nonceKeysToProcIdsMap.put(proc.getNonceKey(), proc.getProcId());<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>      if (proc.getState() == ProcedureState.RUNNABLE) {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>        runnablesCount++;<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">324</span>    final boolean isDebugEnabled = LOG.isDebugEnabled();<a name="line.324"></a>
+<span class="sourceLineNo">325</span><a name="line.325"></a>
+<span class="sourceLineNo">326</span>    // 1. Build the rollback stack<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    int runnablesCount = 0;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    while (procIter.hasNext()) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      final NonceKey nonceKey;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      final long procId;<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>      if (procIter.isNextCompleted()) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        ProcedureInfo proc = procIter.nextAsProcedureInfo();<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        nonceKey = proc.getNonceKey();<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        procId = proc.getProcId();<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        completed.put(proc.getProcId(), proc);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        if (isDebugEnabled) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>          LOG.debug("The procedure is completed: " + proc);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>        }<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      } else {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        Procedure proc = procIter.nextAsProcedure();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        nonceKey = proc.getNonceKey();<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        procId = proc.getProcId();<a name="line.343"></a>
 <span class="sourceLineNo">344</span><a name="line.344"></a>
-<span class="sourceLineNo">345</span>    // 2. Initialize the stacks<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    ArrayList&lt;Procedure&gt; runnableList = new ArrayList(runnablesCount);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    HashSet&lt;Procedure&gt; waitingSet = null;<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    procIter.reset();<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    while (procIter.hasNext()) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      Procedure proc = procIter.next();<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      if (LOG.isDebugEnabled()) {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>        LOG.debug(String.format("Loading procedure state=%s isFailed=%s: %s",<a name="line.352"></a>
-<span class="sourceLineNo">353</span>                    proc.getState(), proc.hasException(), proc));<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      }<a name="line.354"></a>
-<span class="sourceLineNo">355</span><a name="line.355"></a>
-<span class="sourceLineNo">356</span>      Long rootProcId = getRootProcedureId(proc);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      if (rootProcId == null) {<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        // The 'proc' was ready to run but the root procedure was rolledback?<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        runnables.addBack(proc);<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        continue;<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>      if (!proc.hasParent() &amp;&amp; proc.isFinished()) {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>        if (LOG.isDebugEnabled()) {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>          LOG.debug(String.format("The procedure is completed state=%s isFailed=%s",<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    proc.getState(), proc.hasException()));<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>        assert !rollbackStack.containsKey(proc.getProcId());<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        procedures.remove(proc.getProcId());<a name="line.369"></a>
-<span class="sourceLineNo">370</span>        completed.put(proc.getProcId(), Procedure.createProcedureInfo(proc, proc.getNonceKey()));<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">345</span>        if (!proc.hasParent()) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>          assert !proc.isFinished() : "unexpected finished procedure";<a name="line.346"></a>
+<span class="sourceLineNo">347</span>          rollbackStack.put(proc.getProcId(), new RootProcedureState());<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>        // add the procedure to the map<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        proc.beforeReplay(getEnvironment());<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        procedures.put(proc.getProcId(), proc);<a name="line.352"></a>
+<span class="sourceLineNo">353</span><a name="line.353"></a>
+<span class="sourceLineNo">354</span>        if (proc.getState() == ProcedureState.RUNNABLE) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          runnablesCount++;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>      // add the nonce to the map<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      if (nonceKey != null) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>        nonceKeysToProcIdsMap.put(nonceKey, procId);<a name="line.361"></a>
+<span class="sourceLineNo">362</span>      }<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>    // 2. Initialize the stacks<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    ArrayList&lt;Procedure&gt; runnableList = new ArrayList(runnablesCount);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    HashSet&lt;Procedure&gt; waitingSet = null;<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    procIter.reset();<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    while (procIter.hasNext()) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>      if (procIter.isNextCompleted()) {<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        procIter.skipNext();<a name="line.371"></a>
 <span class="sourceLineNo">372</span>        continue;<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>      if (proc.hasParent() &amp;&amp; !proc.isFinished()) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>        Procedure parent = procedures.get(proc.getParentProcId());<a name="line.376"></a>
-<span class="sourceLineNo">377</span>        // corrupted procedures are handled later at step 3<a name="line.377"></a>
-<span class="sourceLineNo">378</span>        if (parent != null) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>          parent.incChildrenLatch();<a name="line.379"></a>
-<span class="sourceLineNo">380</span>        }<a name="line.380"></a>
+<span class="sourceLineNo">375</span>      Procedure proc = procIter.nextAsProcedure();<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      assert !(proc.isFinished() &amp;&amp; !proc.hasParent()) : "unexpected completed proc=" + proc;<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>      if (isDebugEnabled) {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        LOG.debug(String.format("Loading procedure state=%s isFailed=%s: %s",<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                    proc.getState(), proc.hasException(), proc));<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>      RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      procStack.loadStack(proc);<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>      switch (proc.getState()) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>        case RUNNABLE:<a name="line.387"></a>
-<span class="sourceLineNo">388</span>          runnableList.add(proc);<a name="line.388"></a>
-<span class="sourceLineNo">389</span>          break;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        case WAITING_TIMEOUT:<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          if (waitingSet == null) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>            waitingSet = new HashSet&lt;Procedure&gt;();<a name="line.392"></a>
-<span class="sourceLineNo">393</span>          }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>          waitingSet.add(proc);<a name="line.394"></a>
-<span class="sourceLineNo">395</span>          break;<a name="line.395"></a>
-<span class="sourceLineNo">396</span>        case FINISHED:<a name="line.396"></a>
-<span class="sourceLineNo">397</span>          if (proc.hasException()) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>            // add the proc to the runnables to perform the rollback<a name="line.398"></a>
-<span class="sourceLineNo">399</span>            runnables.addBack(proc);<a name="line.399"></a>
-<span class="sourceLineNo">400</span>            break;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          }<a name="line.401"></a>
-<span class="sourceLineNo">402</span>        case ROLLEDBACK:<a name="line.402"></a>
-<span class="sourceLineNo">403</span>        case INITIALIZING:<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          String msg = "Unexpected " + proc.getState() + " state for " + proc;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          LOG.error(msg);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          throw new UnsupportedOperationException(msg);<a name="line.406"></a>
-<span class="sourceLineNo">407</span>        default:<a name="line.407"></a>
-<span class="sourceLineNo">408</span>          break;<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    }<a name="line.410"></a>
-<span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>    // 3. Validate the stacks<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    int corruptedCount = 0;<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    Iterator&lt;Map.Entry&lt;Long, RootProcedureState&gt;&gt; itStack = rollbackStack.entrySet().iterator();<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    while (itStack.hasNext()) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      Map.Entry&lt;Long, RootProcedureState&gt; entry = itStack.next();<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      RootProcedureState procStack = entry.getValue();<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      if (procStack.isValid()) continue;<a name="line.418"></a>
-<span class="sourceLineNo">419</span><a name="line.419"></a>
-<span class="sourceLineNo">420</span>      for (Procedure proc: procStack.getSubprocedures()) {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>        LOG.error("corrupted procedure: " + proc);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        procedures.remove(proc.getProcId());<a name="line.422"></a>
-<span class="sourceLineNo">423</span>        runnableList.remove(proc);<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        if (waitingSet != null) waitingSet.remove(proc);<a name="line.424"></a>
-<span class="sourceLineNo">425</span>        corruptedCount++;<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      itStack.remove();<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>    if (abortOnCorruption &amp;&amp; corruptedCount &gt; 0) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      throw new IOException("found " + corruptedCount + " procedures on replay");<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
-<span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span>    // 4. Push the runnables<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    if (!runnableList.isEmpty()) {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // TODO: See ProcedureWALFormatReader#hasFastStartSupport<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      // some procedure may be started way before this stuff.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (int i = runnableList.size() - 1; i &gt;= 0; --i) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        Procedure proc = runnableList.get(i);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        if (!proc.hasParent()) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          sendProcedureLoadedNotification(proc.getProcId());<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (proc.wasExecuted()) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          runnables.addFront(proc);<a name="line.444"></a>
-<span class="sourceLineNo">445</span>        } else {<a name="line.445"></a>
-<span class="sourceLineNo">446</span>          // if it was not in execution, it can wait.<a name="line.446"></a>
-<span class="sourceLineNo">447</span>          runnables.addBack(proc);<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>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  /**<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * Start the procedure executor.<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * It calls ProcedureStore.recoverLease() and ProcedureStore.load() to<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * recover the lease, and ensure a single executor, and start the procedure<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * replay to resume and recover the previous pending and in-progress perocedures.<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   *<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   * @param numThreads number of threads available for procedure execution.<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   * @param abortOnCorruption true if you want to abort your service in case<a name="line.460"></a>
-<span class="sourceLineNo">461</span>   *          a corrupted procedure is found on replay. otherwise false.<a name="line.461"></a>
-<span class="sourceLineNo">462</span>   */<a name="line.462"></a>
-<span class="sourceLineNo">463</span>  public void start(int numThreads, boolean abortOnCorruption) throws IOException {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    if (running.getAndSet(true)) {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      LOG.warn("Already running");<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      return;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
-<span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>    // We have numThreads executor + one timer thread used for timing out<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    // procedures and triggering periodic procedures.<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    threads = new Thread[numThreads + 1];<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    LOG.info("Starting procedure executor threads=" + threads.length);<a name="line.472"></a>
-<span class="sourceLineNo">473</span><a name="line.473"></a>
-<span class="sourceLineNo">474</span>    // Initialize procedures executor<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    for (int i = 0; i &lt; numThreads; ++i) {<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      threads[i] = new Thread("ProcedureExecutor-" + i) {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>        @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span>        public void run() {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>          execLoop();<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        }<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      };<a name="line.481"></a>
+<span class="sourceLineNo">383</span>      Long rootProcId = getRootProcedureId(proc);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      if (rootProcId == null) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        // The 'proc' was ready to run but the root procedure was rolledback?<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        runnables.addBack(proc);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        continue;<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>      if (proc.hasParent() &amp;&amp; !proc.isFinished()) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        Procedure parent = procedures.get(proc.getParentProcId());<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        // corrupted procedures are handled later at step 3<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        if (parent != null) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>          parent.incChildrenLatch();<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>      RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.398"></a>
+<span class="sourceLineNo">399</span>      procStack.loadStack(proc);<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>      switch (proc.getState()) {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        case RUNNABLE:<a name="line.402"></a>
+<span class="sourceLineNo">403</span>          runnableList.add(proc);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>          break;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        case WAITING_TIMEOUT:<a name="line.405"></a>
+<span class="sourceLineNo">406</span>          if (waitingSet == null) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>            waitingSet = new HashSet&lt;Procedure&gt;();<a name="line.407"></a>
+<span class="sourceLineNo">408</span>          }<a name="line.408"></a>
+<span class="sourceLineNo">409</span>          waitingSet.add(proc);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>          break;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        case FINISHED:<a name="line.411"></a>
+<span class="sourceLineNo">412</span>          if (proc.hasException()) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>            // add the proc to the runnables to perform the rollback<a name="line.413"></a>
+<span class="sourceLineNo">414</span>            runnables.addBack(proc);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>            break;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>          }<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        case ROLLEDBACK:<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        case INITIALIZING:<a name="line.418"></a>
+<span class="sourceLineNo">419</span>          String msg = "Unexpected " + proc.getState() + " state for " + proc;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>          LOG.error(msg);<a name="line.420"></a>
+<span class="sourceLineNo">421</span>          throw new UnsupportedOperationException(msg);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        default:<a name="line.422"></a>
+<span class="sourceLineNo">423</span>          break;<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      }<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    }<a name="line.425"></a>
+<span class="sourceLineNo">426</span><a name="line.426"></a>
+<span class="sourceLineNo">427</span>    // 3. Validate the stacks<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    int corruptedCount = 0;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    Iterator&lt;Map.Entry&lt;Long, RootProcedureState&gt;&gt; itStack = rollbackStack.entrySet().iterator();<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    while (itStack.hasNext()) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      Map.Entry&lt;Long, RootProcedureState&gt; entry = itStack.next();<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      RootProcedureState procStack = entry.getValue();<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      if (procStack.isValid()) continue;<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>      for (Procedure proc: procStack.getSubprocedures()) {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        LOG.error("corrupted procedure: " + proc);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        procedures.remove(proc.getProcId());<a name="line.437"></a>
+<span class="sourceLineNo">438</span>        runnableList.remove(proc);<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        if (waitingSet != null) waitingSet.remove(proc);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        corruptedCount++;<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      }<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      itStack.remove();<a name="line.442"></a>
+<span class="sourceLineNo">443</span>    }<a name="line.443"></a>
+<span class="sourceLineNo">444</span><a name="line.444"></a>
+<span class="sourceLineNo">445</span>    if (abortOnCorruption &amp;&amp; corruptedCount &gt; 0) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      throw new IOException("found " + corruptedCount + " procedures on replay");<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>    // 4. Push the runnables<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    if (!runnableList.isEmpty()) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      // TODO: See ProcedureWALFormatReader#hasFastStartSupport<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      // some procedure may be started way before this stuff.<a name="line.452"></a>
+<span class="sourceLineNo">453</span>      for (int i = runnableList.size() - 1; i &gt;= 0; --i) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        Procedure proc = runnableList.get(i);<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        if (!proc.hasParent()) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>          sendProcedureLoadedNotification(proc.getProcId());<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        }<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        if (proc.wasExecuted()) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>          runnables.addFront(proc);<a name="line.459"></a>
+<span class="sourceLineNo">460</span>        } else {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>          // if it was not in execution, it can wait.<a name="line.461"></a>
+<span class="sourceLineNo">462</span>          runnables.addBack(proc);<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        }<a name="line.463"></a>
+<span class="sourceLineNo">464</span>      }<a name="line.464"></a>
+<span class="sourceLineNo">465</span>    }<a name="line.465"></a>
+<span class="sourceLineNo">466</span>  }<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>  /**<a name="line.468"></a>
+<span class="sourceLineNo">469</span>   * Start the procedure executor.<a name="line.469"></a>
+<span class="sourceLineNo">470</span>   * It calls ProcedureStore.recoverLease() and ProcedureStore.load() to<a name="line.470"></a>
+<span class="sourceLineNo">471</span>   * recover the lease, and ensure a single executor, and start the procedure<a name="line.471"></a>
+<span class="sourceLineNo">472</span>   * replay to resume and recover the previous pending and in-progress perocedures.<a name="line.472"></a>
+<span class="sourceLineNo">473</span>   *<a name="line.473"></a>
+<span class="sourceLineNo">474</span>   * @param numThreads number of threads available for procedure execution.<a name="line.474"></a>
+<span class="sourceLineNo">475</span>   * @param abortOnCorruption true if you want to abort your service in case<a name="line.475"></a>
+<span class="sourceLineNo">476</span>   *          a corrupted procedure is found on replay. otherwise false.<a name="line.476"></a>
+<span class="sourceLineNo">477</span>   */<a name="line.477"></a>
+<span class="sourceLineNo">478</span>  public void start(int numThreads, boolean abortOnCorruption) throws IOException {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>    if (running.getAndSet(true)) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>      LOG.warn("Already running");<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      return;<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>    // Initialize procedures timeout handler (this is the +1 thread)<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    threads[numThreads] = new Thread("ProcedureExecutorTimeoutThread") {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      @Override<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      public void run() {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>        timeoutLoop();<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      }<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    };<a name="line.490"></a>
-<span class="sourceLineNo">491</span><a name="line.491"></a>
-<span class="sourceLineNo">492</span>    // Acquire the store lease.<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    store.recoverLease();<a name="line.493"></a>
-<span class="sourceLineNo">494</span><a name="line.494"></a>
-<span class="sourceLineNo">495</span>    // TODO: Split in two steps.<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    // TODO: Handle corrupted procedures (currently just a warn)<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    // The first one will make sure that we have the latest id,<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    // so we can start the threads and accept new procedures.<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    // The second step will do the actual load of old procedures.<a name="line.499"></a>
-<span class="sourceLineNo">500</span>    load(abortOnCorruption);<a name="line.500"></a>
-<span class="sourceLineNo">501</span><a name="line.501"></a>
-<span class="sourceLineNo">502</span>    // Start the executors. Here we must have the lastProcId set.<a name="line.502"></a>
-<span class="sourceLineNo">503</span>    for (int i = 0; i &lt; threads.length; ++i) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      threads[i].start();<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    }<a name="line.505"></a>
+<span class="sourceLineNo">484</span>    // We have numThreads executor + one timer thread used for timing out<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    // procedures and triggering periodic procedures.<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    threads = new Thread[numThreads + 1];<a name="line.486"></a>
+<span class="sourceLineNo">487</span>    LOG.info("Starting procedure executor threads=" + threads.length);<a name="line.487"></a>
+<span class="sourceLineNo">488</span><a name="line.488"></a>
+<span class="sourceLineNo">489</span>    // Initialize procedures executor<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    for (int i = 0; i &lt; numThreads; ++i) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>      threads[i] = new Thread("ProcedureExecutor-" + i) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        public void run() {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>          execLoop();<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        }<a name="line.495"></a>
+<span class="sourceLineNo">496</span>      };<a name="line.496"></a>
+<span class="sourceLineNo">497</span>    }<a name="line.497"></a>
+<span class="sourceLineNo">498</span><a name="line.498"></a>
+<span class="sourceLineNo">499</span>    // Initialize procedures timeout handler (this is the +1 thread)<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    threads[numThreads] = new Thread("ProcedureExecutorTimeoutThread") {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>      @Override<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      public void run() {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>        timeoutLoop();<a name="line.503"></a>
+<span class="sourceLineNo">504</span>      }<a name="line.504"></a>
+<span class="sourceLineNo">505</span>    };<a name="line.505"></a>
 <span class="sourceLineNo">506</span><a name="line.506"></a>
-<span class="sourceLineNo">507</span>    // Add completed cleaner<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    waitingTimeout.add(<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      new CompletedProcedureCleaner(conf, store, completed, nonceKeysToProcIdsMap));<a name="line.509"></a>
-<span class="sourceLineNo">510</span>  }<a name="line.510"></a>
-<span class="sourceLineNo">511</span><a name="line.511"></a>
-<span class="sourceLineNo">512</span>  public void stop() {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    if (!running.getAndSet(false)) {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      return;<a name="line.514"></a>
-<span class="sourceLineNo">515</span>    }<a name="line.515"></a>
+<span class="sourceLineNo">507</span>    // Acquire the store lease.<a name="line.507"></a>
+<span class="sourceLineNo">508</span>    store.recoverLease();<a name="line.508"></a>
+<span class="sourceLineNo">509</span><a name="line.509"></a>
+<span class="sourceLineNo">510</span>    // TODO: Split in two steps.<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    // TODO: Handle corrupted procedures (currently just a warn)<a name="line.511"></a>
+<span class="sourceLineNo">512</span>    // The first one will make sure that we have the latest id,<a name="line.512"></a>
+<span class="sourceLineNo">513</span>    // so we can start the threads and accept new procedures.<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    // The second step will do the actual load of old procedures.<a name="line.514"></a>
+<span class="sourceLineNo">515</span>    load(abortOnCorruption);<a name="line.515"></a>
 <span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>    LOG.info("Stopping the procedure executor");<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    runnables.signalAll();<a name="line.518"></a>
-<span class="sourceLineNo">519</span>    waitingTimeout.signalAll();<a name="line.519"></a>
-<span class="sourceLineNo">520</span>  }<a name="line.520"></a>
+<span class="sourceLineNo">517</span>    // Start the executors. Here we must have the lastProcId set.<a name="line.517"></a>
+<span class="sourceLineNo">518</span>    for (int i = 0; i &lt; threads.length; ++i) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>      threads[i].start();<a name="line.519"></a>
+<span class="sourceLineNo">520</span>    }<a name="line.520"></a>
 <span class="sourceLineNo">521</span><a name="line.521"></a>
-<span class="sourceLineNo">522</span>  public void join() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    boolean interrupted = false;<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>    for (int i = 0; i &lt; threads.length; ++i) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      try {<a name="line.526"></a>
-<span class="sourceLineNo">527</span>        threads[i].join();<a name="line.527"></a>
-<span class="sourceLineNo">528</span>      } catch (InterruptedException ex) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        interrupted = true;<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><a name="line.532"></a>
-<span class="sourceLineNo">533</span>    if (interrupted) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      Thread.currentThread().interrupt();<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
+<span class="sourceLineNo">522</span>    // Add completed cleaner<a name="line.522"></a>
+<span class="sourceLineNo">523</span>    waitingTimeout.add(<a name="line.523"></a>
+<span class="sourceLineNo">524</span>      new CompletedProcedureCleaner(conf, store, completed, nonceKeysToProcIdsMap));<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 stop() {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>    if (!running.getAndSet(false)) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>      return;<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>    LOG.info("Stopping the procedure executor");<a name="line.532"></a>
+<span class="sourceLineNo">533</span>    runnables.signalAll();<a name="line.533"></a>
+<span class="sourceLineNo">534</span>    waitingTimeout.signalAll();<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>    completed.clear();<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    rollbackStack.clear();<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    procedures.clear();<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    nonceKeysToProcIdsMap.clear();<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    waitingTimeout.clear();<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    runnables.clear();<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    lastProcId.set(-1);<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>  public boolean isRunning() {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    return running.get();<a name="line.547"></a>
-<span class="sourceLineNo">548</span>  }<a name="line.548"></a>
-<span class="sourceLineNo">549</span><a name="line.549"></a>
-<span class="sourceLineNo">550</span>  /**<a name="line.550"></a>
-<span class="sourceLineNo">551</span>   * @return the number of execution threads.<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   */<a name="line.552"></a>
-<span class="sourceLineNo">553</span>  public int getNumThreads() {<a name="line.553"></a>
-<span class="sourceLineNo">554</span>    return threads == null ? 0 : (threads.length - 1);<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>  public int getActiveExecutorCount() {<a name="line.557"></a>
-<span class="sourceLineNo">558</span>    return activeExecutorCount.get();<a name="line.558"></a>
+<span class="sourceLineNo">537</span>  public void join() {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    boolean interrupted = false;<a name="line.538"></a>
+<span class="sourceLineNo">539</span><a name="line.539"></a>
+<span class="sourceLineNo">540</span>    for (int i = 0; i &lt; threads.length; ++i) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>      try {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>        threads[i].join();<a name="line.542"></a>
+<span class="sourceLineNo">543</span>      } catch (InterruptedException ex) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        interrupted = true;<a name="line.544"></a>
+<span class="sourceLineNo">545</span>      }<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    }<a name="line.546"></a>
+<span class="sourceLineNo">547</span><a name="line.547"></a>
+<span class="sourceLineNo">548</span>    if (interrupted) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      Thread.currentThread().interrupt();<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>    completed.clear();<a name="line.552"></a>
+<span class="sourceLineNo">553</span>    rollbackStack.clear();<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    procedures.clear();<a name="line.554"></a>
+<span class="sourceLineNo">555</span>    nonceKeysToProcIdsMap.clear();<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    waitingTimeout.clear();<a name="line.556"></a>
+<span class="sourceLineNo">557</span>    runnables.clear();<a name="line.557"></a>
+<span class="sourceLineNo">558</span>    lastProcId.set(-1);<a name="line.558"></a>
 <span class="sourceLineNo">559</span>  }<a name="line.559"></a>
 <span class="sourceLineNo">560</span><a name="line.560"></a>
-<span class="sourceLineNo">561</span>  public TEnvironment getEnvironment() {<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    return this.environment;<a name="line.562"></a>
+<span class="sourceLineNo">561</span>  public boolean isRunning() {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    return running.get();<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>  public ProcedureStore getStore() {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    return this.store;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>  }<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    this.listeners.add(listener);<a name="line.570"></a>
-<span class="sourceLineNo">571</span>  }<a name="line.571"></a>
-<span class="sourceLineNo">572</span><a name="line.572"></a>
-<span class="sourceLineNo">573</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    return this.listeners.remove(listener);<a name="line.574"></a>
-<span class="sourceLineNo">575</span>  }<a name="line.575"></a>
-<span class="sourceLineNo">576</span><a name="line.576"></a>
-<span class="sourceLineNo">577</span>  /**<a name="line.577"></a>
-<span class="sourceLineNo">578</span>   * List procedures.<a name="line.578"></a>
-<span class="sourceLineNo">579</span>   * @return the procedures in a list<a name="line.579"></a>
-<span class="sourceLineNo">580</span>   */<a name="line.580"></a>
-<span class="sourceLineNo">581</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    List&lt;ProcedureInfo&gt; procedureLists =<a name="line.582"></a>
-<span class="sourceLineNo">583</span>        new ArrayList&lt;ProcedureInfo&gt;(procedures.size() + completed.size());<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    for (java.util.Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      procedureLists.add(Procedure.createProcedureInfo(p.getValue(), null));<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    for (java.util.Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.588"></a>
-<span class="sourceLineNo">589</span>      // it could complete after we walk through procedures list and insert into<a name="line.589"></a>
-<span class="sourceLineNo">590</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      procedureLists.add(e.getValue());<a name="line.592"></a>
-<span class="sourceLineNo">593</span>    }<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    return procedureLists;<a name="line.594"></a>
-<span class="sourceLineNo">595</span>  }<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>  /**<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * Add a new root-procedure to the executor.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * @param proc the new procedure to execute.<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   */<a name="line.601"></a>
-<span class="sourceLineNo">602</span>  public long submitProcedure(final Procedure proc) {<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    return submitProcedure(proc, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.603"></a>
-<span class="sourceLineNo">604</span>  }<a name="line.604"></a>
-<span class="sourceLineNo">605</span><a name="line.605"></a>
-<span class="sourceLineNo">606</span>  /**<a name="line.606"></a>
-<span class="sourceLineNo">607</span>   * Add a new root-procedure to the executor.<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   * @param proc the new procedure to execute.<a name="line.608"></a>
-<span class="sourceLineNo">609</span>   * @param nonceGroup<a name="line.609"></a>
-<span class="sourceLineNo">610</span>   * @param nonce<a name="line.610"></a>
-<span class="sourceLineNo">611</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.611"></a>
-<span class="sourceLineNo">612</span>   */<a name="line.612"></a>
-<span class="sourceLineNo">613</span>  public long submitProcedure(<a name="line.613"></a>
-<span class="sourceLineNo">614</span>      final Procedure proc,<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      final long nonceGroup,<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      final long nonce) {<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    Preconditions.checkArgument(isRunning());<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    Preconditions.checkArgument(!proc.hasParent());<a name="line.620"></a>
-<span class="sourceLineNo">621</span><a name="line.621"></a>
-<span class="sourceLineNo">622</span>    Long currentProcId;<a name="line.622"></a>
-<span class="sourceLineNo">623</span><a name="line.623"></a>
-<span class="sourceLineNo">624</span>    // The following part of the code has to be synchronized to prevent multiple request<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    // with the same nonce to execute at the same time.<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    synchronized (this) {<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      // Check whether the proc exists.  If exist, just return the proc id.<a name="line.627"></a>
-<span class="sourceLineNo">628</span>      // This is to prevent the same proc to submit multiple times (it could happen<a name="line.628"></a>
-<span class="sourceLineNo">629</span>      // when client could not talk to server and resubmit the same request).<a name="line.629"></a>
-<span class="sourceLineNo">630</span>      NonceKey noncekey = null;<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      if (nonce != HConstants.NO_NONCE) {<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        noncekey = new NonceKey(nonceGroup, nonce);<a name="line.632"></a>
-<span class="sourceLineNo">633</span>        currentProcId = nonceKeysToProcIdsMap.get(noncekey);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>        if (currentProcId != null) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>          // Found the proc<a name="line.635"></a>
-<span class="sourceLineNo">636</span>          return currentProcId;<a name="line.636"></a>
-<span class="sourceLineNo">637</span>        }<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      }<a name="line.638"></a>
-<span class="sourceLineNo">639</span><a name="line.639"></a>
-<span class="sourceLineNo">640</span>      // Initialize the Procedure ID<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      currentProcId = nextProcId();<a name="line.641"></a>
-<span class="sourceLineNo">642</span>      proc.setProcId(currentProcId);<a name="line.642"></a>
-<span class="sourceLineNo">643</span><a name="line.643"></a>
-<span class="sourceLineNo">644</span>      // This is new procedure. Set the noncekey and insert into the map.<a name="line.644"></a>
-<span class="sourceLineNo">645</span>      if (noncekey != null) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>        proc.setNonceKey(noncekey);<a name="line.646"></a>
-<span class="sourceLineNo">647</span>        nonceKeysToProcIdsMap.put(noncekey, currentProcId);<a name="line.647"></a>
-<span class="sourceLineNo">648</span>      }<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    } // end of synchronized (this)<a name="line.649"></a>
-<span class="sourceLineNo">650</span><a name="line.650"></a>
-<span class="sourceLineNo">651</span>    // Commit the transaction<a name="line.651"></a>
-<span class="sourceLineNo">652</span>    store.insert(proc, null);<a name="line.652"></a>
-<span class="sourceLineNo">653</span>    if (LOG.isDebugEnabled()) {<a name="line.653"></a>
-<span class="sourceLineNo">654</span>      LOG.debug("Procedure " + proc + " added to the store.");<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    }<a name="line.655"></a>
-<span class="sourceLineNo">656</span><a name="line.656"></a>
-<span class="sourceLineNo">657</span>    // Create the rollback stack for the procedure<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    RootProcedureState stack = new RootProcedureState();<a name="line.658"></a>
-<span class="sourceLineNo">659</span>    rollbackStack.put(currentProcId, stack);<a name="line.659"></a>
-<span class="sourceLineNo">660</span><a name="line.660"></a>
-<span class="sourceLineNo">661</span>    // Submit the new subprocedures<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    assert !procedures.containsKey(currentProcId);<a name="line.662"></a>
-<span class="sourceLineNo">663</span>    procedures.put(currentProcId, proc);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    sendProcedureAddedNotification(currentProcId);<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    runnables.addBack(proc);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    return currentProcId;<a name="line.666"></a>
-<span class="sourceLineNo">667</span>  }<a name="line.667"></a>
-<span class="sourceLineNo">668</span><a name="line.668"></a>
-<span class="sourceLineNo">669</span>  public ProcedureInfo getResult(final long procId) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    return completed.get(procId);<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>  /**<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   * Return true if the procedure is finished.<a name="line.674"></a>
-<span class="sourceLineNo">675</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.675"></a>
-<span class="sourceLineNo">676</span>   * Use getResult() to check the state or get the result data.<a name="line.676"></a>
-<span class="sourceLineNo">677</span>   * @param procId the ID of the procedure to check<a name="line.677"></a>
-<span class="sourceLineNo">678</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>   */<a name="line.679"></a>
-<span class="sourceLineNo">680</span>  public boolean isFinished(final long procId) {<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    return completed.containsKey(procId);<a name="line.681"></a>
+<span class="sourceLineNo">565</span>  /**<a name="line.565"></a>
+<span class="sourceLineNo">566</span>   * @return the number of execution threads.<a name="line.566"></a>
+<span class="sourceLineNo">567</span>   */<a name="line.567"></a>
+<span class="sourceLineNo">568</span>  public int getNumThreads() {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>    return threads == null ? 0 : (threads.length - 1);<a name="line.569"></a>
+<span class="sourceLineNo">570</span>  }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>  public int getActiveExecutorCount() {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>    return activeExecutorCount.get();<a name="line.573"></a>
+<span class="sourceLineNo">574</span>  }<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>  public TEnvironment getEnvironment() {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    return this.environment;<a name="line.577"></a>
+<span class="sourceLineNo">578</span>  }<a name="line.578"></a>
+<span class="sourceLineNo">579</span><a name="line.579"></a>
+<span class="sourceLineNo">580</span>  public ProcedureStore getStore() {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>    return this.store;<a name="line.581"></a>
+<span class="sourceLineNo">582</span>  }<a name="line.582"></a>
+<span class="sourceLineNo">583</span><a name="line.583"></a>
+<span class="sourceLineNo">584</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>    this.listeners.add(listener);<a name="line.585"></a>
+<span class="sourceLineNo">586</span>  }<a name="line.586"></a>
+<span class="sourceLineNo">587</span><a name="line.587"></a>
+<span class="sourceLineNo">588</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>    return this.listeners.remove(listener);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>  }<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>  /**<a name="line.592"></a>
+<span class="sourceLineNo">593</span>   * List procedures.<a name="line.593"></a>
+<span class="sourceLineNo">594</span>   * @return the procedures in a list<a name="line.594"></a>
+<span class="sourceLineNo">595</span>   */<a name="line.595"></a>
+<span class="sourceLineNo">596</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>    List&lt;ProcedureInfo&gt; procedureLists =<a name="line.597"></a>
+<span class="sourceLineNo">598</span>        new ArrayList&lt;ProcedureInfo&gt;(procedures.size() + completed.size());<a name="line.598"></a>
+<span class="sourceLineNo">599</span>    for (java.util.Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>      procedureLists.add(Procedure.createProcedureInfo(p.getValue(), null));<a name="line.600"></a>
+<span class="sourceLineNo">601</span>    }<a name="line.601"></a>
+<span class="sourceLineNo">602</span>    for (java.util.Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.602"></a>
+<span class="sourceLineNo">603</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.603"></a>
+<span class="sourceLineNo">604</span>      // it could complete after we walk through procedures list and insert into<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.606"></a>
+<span class="sourceLineNo">607</span>      procedureLists.add(e.getValue());<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>    return procedureLists;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>  }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>  /**<a name="line.612"></a>
+<span class="sourceLineNo">613</span>   * Add a new root-procedure to the executor.<a name="line.613"></a>
+<span class="sourceLineNo">614</span>   * @param proc the new procedure to execute.<a name="line.614"></a>
+<span class="sourceLineNo">615</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.615"></a>
+<span class="sourceLineNo">616</span>   */<a name="line.616"></a>
+<span class="sourceLineNo">617</span>  public long submitProcedure(final Procedure proc) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>    return submitProcedure(proc, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.618"></a>
+<span class="sourceLineNo">619</span>  }<a name="line.619"></a>
+<span class="sourceLineNo">620</span><a name="line.620"></a>
+<span class="sourceLineNo">621</span>  /**<a name="line.621"></a>
+<span class="sourceLineNo">622</span>   * Add a new root-procedure to the executor.<a name="line.622"></a>
+<span class="sourceLineNo">623</span>   * @param proc the new procedure to execute.<a name="line.623"></a>
+<span class="sourceLineNo">624</span>   * @param nonceGroup<a name="line.624"></a>
+<span class="sourceLineNo">625</span>   * @param nonce<a name="line.625"></a>
+<span class="sourceLineNo">626</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.626"></a>
+<span class="sourceLineNo">627</span>   */<a name="line.627"></a>
+<span class="sourceLineNo">628</span>  public long submitProcedure(<a name="line.628"></a>
+<span class="sourceLineNo">629</span>      final Procedure proc,<a name="line.629"></a>
+<span class="sourceLineNo">630</span>      final long nonceGroup,<a name="line.630"></a>
+<span class="sourceLineNo">631</span>      final long nonce) {<a name="line.631"></a>
+<span class="sourceLineNo">632</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.632"></a>
+<span class="sourceLineNo">633</span>    Preconditions.checkArgument(isRunning());<a name="line.633"></a>
+<span class="sourceLineNo">634</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>    Preconditions.checkArgument(!proc.hasParent());<a name="line.635"></a>
+<span class="sourceLineNo">636</span><a name="line.636"></a>
+<span class="sourceLineNo">637</span>    Long currentProcId;<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>    // The following part of the code has to be synchronized to prevent multiple request<a name="line.639"></a>
+<span class="sourceLineNo">640</span>    // with the same nonce to execute at the same time.<a name="line.640"></a>
+<span class="sourceLineNo">641</span>    synchronized (this) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>      // Check whether the proc exists.  If exist, just return the proc id.<a name="line.642"></a>
+<span class="sourceLineNo">643</span>      // This is to prevent the same proc to submit multiple times (it could happen<a name="line.643"></a>
+<span class="sourceLineNo">644</span>      // when client could not talk to server and resubmit the same request).<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      NonceKey noncekey = null;<a name="line.645"></a>
+<span class="sourceLineNo">646</span>      if (nonce != HConstants.NO_NONCE) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>        noncekey = new NonceKey(nonceGroup, nonce);<a name="line.647"></a>
+<span class="sourceLineNo">648</span>        currentProcId = nonceKeysToProcIdsMap.get(noncekey);<a name="line.648"></a>
+<span class="sourceLineNo">649</span>        if (currentProcId != null) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>          // Found the proc<a name="line.650"></a>
+<span class="sourceLineNo">651</span>          return currentProcId;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>        }<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      }<a name="line.653"></a>
+<span class="sourceLineNo">654</span><a name="line.654"></a>
+<span class="sourceLineNo">655</span>      // Initialize the Procedure ID<a name="line.655"></a>
+<span class="sourceLineNo">656</span>      currentProcId = nextProcId();<a name="line.656"></a>
+<span class="sourceLineNo">657</span>      proc.setProcId(currentProcId);<a name="line.657"></a>
+<span class="sourceLineNo">658</span><a name="line.658"></a>
+<span class="sourceLineNo">659</span>      // This is new procedure. Set the noncekey and insert into the map.<a name="line.659"></a>
+<span class="sourceLineNo">660</span>      if (noncekey != null) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>        proc.setNonceKey(noncekey);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>        nonceKeysToProcIdsMap.put(noncekey, currentProcId);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>      }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>    } // end of synchronized (this)<a name="line.664"></a>
+<span class="sourceLineNo">665</span><a name="line.665"></a>
+<span class="sourceLineNo">666</span>    // Commit the transaction<a name="line.666"></a>
+<span class="sourceLineNo">667</span>    store.insert(proc, null);<a name="line.667"></a>
+<span class="sourceLineNo">668</span>    if (LOG.isDebugEnabled()) {<a name="line.668"></a>
+<span class="sourceLineNo">669</span>      LOG.debug("Procedure " + proc + " added to the store.");<a name="line.669"></a>
+<span class="sourceLineNo">670</span>    }<a name="line.670"></a>
+<span class="sourceLineNo">671</span><a name="line.671"></a>
+<span class="sourceLineNo">672</span>    // Create the rollback stack for the procedure<a name="line.672"></a>
+<span class="sourceLineNo">673</span>    RootProcedureState stack = new RootProcedureState();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>    rollbackStack.put(currentProcId, stack);<a name="line.674"></a>
+<span class="sourceLineNo">675</span><a name="line.675"></a>
+<span class="sourceLineNo">676</span>    // Submit the new subprocedures<a name="line.676"></a>
+<span class="sourceLineNo">677</span>    assert !procedures.containsKey(currentProcId);<a name="line.677"></a>
+<span class="sourceLineNo">678</span>    procedures.put(currentProcId, proc);<a name="line.678"></a>
+<span class="sourceLineNo">679</span>    sendProcedureAddedNotification(currentProcId);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>    runnables.addBack(proc);<a name="line.680"></a>
+<span class="sourceLineNo">681</span>    return currentProcId;<a name="line.681"></a>
 <span class="sourceLineNo">682</span>  }<a name="line.682"></a>
 <span class="sourceLineNo">683</span><a name="line.683"></a>
-<span class="sourceLineNo">684</span>  /**<a name="line.684"></a>
-<span class="sourceLineNo">685</span>   * Return true if the procedure is started.<a name="line.685"></a>
-<span class="sourceLineNo">686</span>   * @param procId the ID of the procedure to check<a name="line.686"></a>
-<span class="sourceLineNo">687</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.687"></a>
-<span class="sourceLineNo">688</span>   */<a name="line.688"></a>
-<span class="sourceLineNo">689</span>  public boolean isStarted(final long procId) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>    Procedure proc = procedures.get(procId);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    if (proc == null) {<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      return completed.get(procId) != null;<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    }<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    return proc.wasExecuted();<a name="line.694"></a>
-<span class="sourceLineNo">695</span>  }<a name="line.695"></a>
-<span class="sourceLineNo">696</span><a name="line.696"></a>
-<span class="sourceLineNo">697</span>  /**<a name="line.697"></a>
-<span class="sourceLineNo">698</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.698"></a>
-<span class="sourceLineNo">699</span>   * @param procId the ID of the procedure to remove<a name="line.699"></a>
-<span class="sourceLineNo">700</span>   */<a name="line.700"></a>
-<span class="sourceLineNo">701</span>  public void removeResult(final long procId) {<a name="line.701"></a>
-<span class="sourceLineNo">702</span>    ProcedureInfo result = completed.get(procId);<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    if (result == null) {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.704"></a>
-<span class="sourceLineNo">705</span>      if (LOG.isDebugEnabled()) {<a name="line.705"></a>
-<span class="sourceLineNo">706</span>        LOG.debug("Procedure procId=" + procId + " already removed by the cleaner.");<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      }<a name="line.707"></a>
-<span class="sourceLineNo">708</span>      return;<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    }<a name="line.709"></a>
-<span class="sourceLineNo">710</span><a name="line.710"></a>
-<span class="sourceLineNo">711</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.712"></a>
-<span class="sourceLineNo">713</span>  }<a name="line.713"></a>
-<span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>  /**<a name="line.715"></a>
-<span class="sourceLineNo">716</span>   * Send an abort notification the specified procedure.<a name="line.716"></a>
-<span class="sourceLineNo">717</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.717"></a>
-<span class="sourceLineNo">718</span>   * @param procId the procedure to abort<a name="line.718"></a>
-<span class="sourceLineNo">719</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.719"></a>
-<span class="sourceLineNo">720</span>   */<a name="line.720"></a>
-<span class="sourceLineNo">721</span>  public boolean abort(final long procId) {<a name="line.721"></a>
-<span class="sourceLineNo">722</span>    return abort(procId, true);<a name="line.722"></a>
-<span class="sourceLineNo">723</span>  }<a name="line.723"></a>
-<span class="sourceLineNo">724</span><a name="line.724"></a>
-<span class="sourceLineNo">725</span>  /**<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   * Send an abort notification the specified procedure.<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.727"></a>
-<span class="sourceLineNo">728</span>   * @param procId the procedure to abort<a name="line.728"></a>
-<span class="sourceLineNo">729</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.729"></a>
-<span class="sourceLineNo">730</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.730"></a>
-<span class="sourceLineNo">731</span>   */<a name="line.731"></a>
-<span class="sourceLineNo">732</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    Procedure proc = procedures.get(procId);<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    if (proc != null) {<a name="line.734"></a>
-<span class="sourceLineNo">735</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>        return false;<a name="line.736"></a>
-<span class="sourceLineNo">737</span>      } else {<a name="line.737"></a>
-<span class="sourceLineNo">738</span>        return proc.abort(getEnvironment());<a name="line.738"></a>
-<span class="sourceLineNo">739</span>      }<a name="line.739"></a>
-<span class="sourceLineNo">740</span>    }<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    return false;<a name="line.741"></a>
-<span class="sourceLineNo">742</span>  }<a name="line.742"></a>
-<span class="sourceLineNo">743</span><a name="line.743"></a>
-<span class="sourceLineNo">744</span>  /**<a name="line.744"></a>
-<span class="sourceLineNo">745</span>   * Check if the user is this procedure's owner<a name="line.745"></a>
-<span class="sourceLineNo">746</span>   * @param procId the target procedure<a name="line.746"></a>
-<span class="sourceLineNo">747</span>   * @param user the user<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   * @return true if the user is the owner of the procedure,<a name="line.748"></a>
-<span class="sourceLineNo">749</span>   *   false otherwise or the owner is unknown.<a name="line.749"></a>
-<span class="sourceLineNo">750</span>   */<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.751"></a>
-<span class="sourceLineNo">752</span>    if (user == null) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>      return false;<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    }<a name="line.754"></a>
-<span class="sourceLineNo">755</span><a name="line.755"></a>
-<span class="sourceLineNo">756</span>    Procedure proc = procedures.get(procId);<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    if (proc != null) {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>      return proc.getOwner().equals(user.getShortName());<a name="line.758"></a>
-<span class="sourceLineNo">759</span>    }<a name="line.759"></a>
-<span class="sourceLineNo">760</span>    ProcedureInfo procInfo = completed.get(procId);<a name="line.760"></a>
-<span class="sourceLineNo">761</span>    if (procInfo == null) {<a name="line.761"></a>
-<span class="sourceLineNo">762</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.762"></a>
-<span class="sourceLineNo">763</span>      // At this time, we cannot check the owner of the procedure<a name="line.763"></a>
-<span class="sourceLineNo">764</span>      return false;<a name="line.764"></a>
-<span class="sourceLineNo">765</span>    }<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<a name="line.766"></a>
-<span class="sourceLineNo">767</span>  }<a name="line.767"></a>
-<span class="sourceLineNo">768</span><a name="line.768"></a>
-<span class="sourceLineNo">769</span>  public Map&lt;Long, ProcedureInfo&gt; getResults() {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    return Collections.unmodifiableMap(completed);<a name="line.770"></a>
-<span class="sourceLineNo">771</span>  }<a name="line.771"></a>
-<span class="sourceLineNo">772</span><a name="line.772"></a>
-<span class="sourceLineNo">773</span>  public Procedure getProcedure(final long procId) {<a name="line.773"></a>
-<span class="sourceLineNo">774</span>    return procedures.get(procId);<a name="line.774"></a>
-<span class="sourceLineNo">775</span>  }<a name="line.775"></a>
-<span class="sourceLineNo">776</span><a name="line.776"></a>
-<span class="sourceLineNo">777</span>  protected ProcedureRunnableSet getRunnableSet() {<a name="line.777"></a>
-<span class="sourceLineNo">778</span>    return runnables;<a name="line.778"></a>
-<span class="sourceLineNo">779</span>  }<a name="line.779"></a>
-<span class="sourceLineNo">780</span><a name="line.780"></a>
-<span class="sourceLineNo">781</span>  /**<a name="line.781"></a>
-<span class="sourceLineNo">782</span>   * Execution loop (N threads)<a name="line.782"></a>
-<span class="sourceLineNo">783</span>   * while the executor is in a running state,<a name="line.783"></a>
-<span class="sourceLineNo">784</span>   * fetch a procedure from the runnables queue and start the execution.<a name="line.784"></a>
-<span class="sourceLineNo">785</span>   */<a name="line.785"></a>
-<span class="sourceLineNo">786</span>  private void execLoop() {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>    while (isRunning()) {<a name="line.787"></a>
-<span class="sourceLineNo">788</span>      Procedure proc = runnables.poll();<a name="line.788"></a>
-<span class="sourceLineNo">789</span>      if (proc == null) continue;<a name="line.789"></a>
-<span class="sourceLineNo">790</span><a name="line.790"></a>
-<span class="sourceLineNo">791</span>      try {<a name="line.791"></a>
-<span class="sourceLineNo">792</span>        activeExecutorCount.incrementAndGet();<a name="line.792"></a>
-<span class="sourceLineNo">793</span>        execLoop(proc);<a name="line.793"></a>
-<span class="sourceLineNo">794</span>      } finally {<a name="line.794"></a>
-<span class="sourceLineNo">795</span>        activeExecutorCount.decrementAndGet();<a name="line.795"></a>
-<span class="sourceLineNo">796</span>      }<a name="line.796"></a>
-<span class="sourceLineNo">797</span>    }<a name="line.797"></a>
-<span class="sourceLineNo">798</span>  }<a name="line.798"></a>
-<span class="sourceLineNo">799</span><a name="line.799"></a>
-<span class="sourceLineNo">800</span>  private void execLoop(Procedure proc) {<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    if (LOG.isTraceEnabled()) {<a name="line.801"></a>
-<span class="sourceLineNo">802</span>      LOG.trace("Trying to start the execution of " + proc);<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    }<a name="line.803"></a>
-<span class="sourceLineNo">804</span><a name="line.804"></a>
-<span class="sourceLineNo">805</span>    Long rootProcId = getRootProcedureId(proc);<a name="line.805"></a>
-<span class="sourceLineNo">806</span>    if (rootProcId == null) {<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.807"></a>
-<span class="sourceLineNo">808</span>      executeRollback(proc);<a name="line.808"></a>
-<span class="sourceLineNo">809</span>      return;<a name="line.809"></a>
-<span class="sourceLineNo">810</span>    }<a name="line.810"></a>
-<span class="sourceLineNo">811</span><a name="line.811"></a>
-<span class="sourceLineNo">812</span>    RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.812"></a>
-<span class="sourceLineNo">813</span>    if (procStack == null) return;<a name="line.813"></a>
+<span class="sourceLineNo">684</span>  public ProcedureInfo getResult(final long procId) {<a name="line.684"></a>
+<span class="sourceLineNo">685</span>    return completed.get(procId);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>  }<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>   * Return true if the procedure is finished.<a name="line.689"></a>
+<span class="sourceLineNo">690</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.690"></a>
+<span class="sourceLineNo">691</span>   * Use getResult() to check the state or get the result data.<a name="line.691"></a>
+<span class="sourceLineNo">692</span>   * @param procId the ID of the procedure to check<a name="line.692"></a>
+<span class="sourceLineNo">693</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.693"></a>
+<span class="sourceLineNo">694</span>   */<a name="line.694"></a>
+<span class="sourceLineNo">695</span>  public boolean isFinished(final long procId) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>    return completed.containsKey(procId);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>  }<a name="line.697"></a>
+<span class="sourceLineNo">698</span><a name="line.698"></a>
+<span class="sourceLineNo">699</span>  /**<a name="line.699"></a>
+<span class="sourceLineNo">700</span>   * Return true if the procedure is started.<a name="line.700"></a>
+<span class="sourceLineNo">701</span>   * @param procId the ID of the procedure to check<a name="line.701"></a>
+<span class="sourceLineNo">702</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.702"></a>
+<span class="sourceLineNo">703</span>   */<a name="line.703"></a>
+<span class="sourceLineNo">704</span>  public boolean isStarted(final long procId) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>    Procedure proc = procedures.get(procId);<a name="line.705"></a>
+<span class="sourceLineNo">706</span>    if (proc == null) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>      return completed.get(procId) != null;<a name="line.707"></a>
+<span class="sourceLineNo">708</span>    }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>    return proc.wasExecuted();<a name="line.709"></a>
+<span class="sourceLineNo">710</span>  }<a name="line.710"></a>
+<span class="sourceLineNo">711</span><a name="line.711"></a>
+<span class="sourceLineNo">712</span>  /**<a name="line.712"></a>
+<span class="sourceLineNo">713</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.713"></a>
+<span class="sourceLineNo">714</span>   * @param procId the ID of the procedure to remove<a name="line.714"></a>
+<span class="sourceLineNo">715</span>   */<a name="line.715"></a>
+<span class="sourceLineNo">716</span>  public void removeResult(final long procId) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>    ProcedureInfo result = completed.get(procId);<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    if (result == null) {<a name="line.718"></a>
+<span class="sourceLineNo">719</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.719"></a>
+<span class="sourceLineNo">720</span>      if (LOG.isDebugEnabled()) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>        LOG.debug("Procedure procId=" + procId + " already removed by the cleaner.");<a name="line.721"></a>
+<span class="sourceLineNo">722</span>      }<a name="line.722"></a>
+<span class="sourceLineNo">723</span>      return;<a name="line.723"></a>
+<span class="sourceLineNo">724</span>    }<a name="line.724"></a>
+<span class="sourceLineNo">725</span><a name="line.725"></a>
+<span class="sourceLineNo">726</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.726"></a>
+<span class="sourceLineNo">727</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.727"></a>
+<span class="sourceLineNo">728</span>  }<a name="line.728"></a>
+<span class="sourceLineNo">729</span><a name="line.729"></a>
+<span class="sourceLineNo">730</span>  /**<a name="line.730"></a>
+<span class="sourceLineNo">731</span>   * Send an abort notification the specified procedure.<a name="line.731"></a>
+<span class="sourceLineNo">732</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.732"></a>
+<span class="sourceLineNo">733</span>   * @param procId the procedure to abort<a name="line.733"></a>
+<span class="sourceLineNo">734</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.734"></a>
+<span class="sourceLineNo">735</span>   */<a name="line.735"></a>
+<span class="sourceLineNo">736</span>  public boolean abort(final long procId) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>    return abort(procId, true);<a name="line.737"></a>
+<span class="sourceLineNo">738</span>  }<a name="line.738"></a>
+<span class="sourceLineNo">739</span><a name="line.739"></a>
+<span class="sourceLineNo">740</span>  /**<a name="line.740"></a>
+<span class="sourceLineNo">741</span>   * Send an abort notification the specified procedure.<a name="line.741"></a>
+<span class="sourceLineNo">742</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.742"></a>
+<span class="sourceLineNo">743</span>   * @param procId the procedure to abort<a name="line.743"></a>
+<span class="sourceLineNo">744</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.744"></a>
+<span class="sourceLineNo">745</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.745"></a>
+<span class="sourceLineNo">746</span>   */<a name="line.746"></a>
+<span class="sourceLineNo">747</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>    Procedure proc = procedures.get(procId);<a name="line.748"></a>
+<span class="sourceLineNo">749</span>    if (proc != null) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>        return false;<a name="line.751"></a>
+<span class="sourceLineNo">752</span>      } else {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>        return proc.abort(getEnvironment());<a name="line.753"></a>
+<span class="sourceLineNo">754</span>      }<a name="line.754"></a>
+<span class="sourceLineNo">755</span>    }<a name="line.755"></a>
+<span class="sourceLineNo">756</span>    return false;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>  }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>  /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>   * Check if the user is this procedure's owner<a name="line.760"></a>
+<span class="sourceLineNo">761</span>   * @param procId the target procedure<a name="line.761"></a>
+<span class="sourceLineNo">762</span>   * @param user the user<a name="line.762"></a>
+<span class="sourceLineNo">763</span>   * @return true if the user is the owner of the procedure,<a name="line.763"></a>
+<span class="sourceLineNo">764</span>   *   false otherwise or the owner is unknown.<a name="line.764"></a>
+<span class="sourceLineNo">765</span>   */<a name="line.765"></a>
+<span class="sourceLineNo">766</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>    if (user == null) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>      return false;<a name="line.768"></a>
+<span class="sourceLineNo">769</span>    }<a name="line.769"></a>
+<span class="sourceLineNo">770</span><a name="line.770"></a>
+<span class="sourceLineNo">771</span>    Procedure proc = procedures.get(procId);<a name="line.771"></a>
+<span class="sourceLineNo">772</span>    if (proc != null) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>      return proc.getOwner().equals(user.getShortName());<a name="line.773"></a>
+<span class="sourceLineNo">774</span>    }<a name="line.774"></a>
+<span class="sourceLineNo">775</span>    ProcedureInfo procInfo = completed.get(procId);<a name="line.775"></a>
+<span class="sourceLineNo">776</span>    if (procInfo == null) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.777"></a>
+<span class="sourceLineNo">778</span>      // At this time, we cannot check the owner of the procedure<a name="line.778"></a>
+<span class="sourceLineNo">779</span>      return false;<a name="line.779"></a>
+<span class="sourceLineNo">780</span>    }<a name="line.780"></a>
+<span class="sourceLineNo">781</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<a name="line.781"></a>
+<span class="sourceLineNo">782</span>  }<a name="line.782"></a>
+<span class="sourceLineNo">783</span><a name="line.783"></a>
+<span class="sourceLineNo">784</span>  public Map&lt;Long, ProcedureInfo&gt; getR

<TRUNCATED>

[24/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterEnvironment.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterEnvironment.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterEnvironment.html
index b64c029..b4de8ca 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterEnvironment.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterEnvironment.html
@@ -737,426 +737,448 @@
 <span class="sourceLineNo">729</span>    });<a name="line.729"></a>
 <span class="sourceLineNo">730</span>  }<a name="line.730"></a>
 <span class="sourceLineNo">731</span><a name="line.731"></a>
-<span class="sourceLineNo">732</span>  public boolean preBalance() throws IOException {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    return execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.733"></a>
-<span class="sourceLineNo">734</span>      @Override<a name="line.734"></a>
-<span class="sourceLineNo">735</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.735"></a>
-<span class="sourceLineNo">736</span>          throws IOException {<a name="line.736"></a>
-<span class="sourceLineNo">737</span>        oserver.preBalance(ctx);<a name="line.737"></a>
-<span class="sourceLineNo">738</span>      }<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    });<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  }<a name="line.740"></a>
-<span class="sourceLineNo">741</span><a name="line.741"></a>
-<span class="sourceLineNo">742</span>  public void postBalance(final List&lt;RegionPlan&gt; plans) throws IOException {<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.743"></a>
-<span class="sourceLineNo">744</span>      @Override<a name="line.744"></a>
-<span class="sourceLineNo">745</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.745"></a>
-<span class="sourceLineNo">746</span>          throws IOException {<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        oserver.postBalance(ctx, plans);<a name="line.747"></a>
-<span class="sourceLineNo">748</span>      }<a name="line.748"></a>
-<span class="sourceLineNo">749</span>    });<a name="line.749"></a>
-<span class="sourceLineNo">750</span>  }<a name="line.750"></a>
-<span class="sourceLineNo">751</span><a name="line.751"></a>
-<span class="sourceLineNo">752</span>  public boolean preBalanceSwitch(final boolean b) throws IOException {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    return execOperationWithResult(b, coprocessors.isEmpty() ? null :<a name="line.753"></a>
-<span class="sourceLineNo">754</span>        new CoprocessorOperationWithResult&lt;Boolean&gt;() {<a name="line.754"></a>
-<span class="sourceLineNo">755</span>      @Override<a name="line.755"></a>
-<span class="sourceLineNo">756</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          throws IOException {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>        setResult(oserver.preBalanceSwitch(ctx, getResult()));<a name="line.758"></a>
-<span class="sourceLineNo">759</span>      }<a name="line.759"></a>
-<span class="sourceLineNo">760</span>    });<a name="line.760"></a>
-<span class="sourceLineNo">761</span>  }<a name="line.761"></a>
-<span class="sourceLineNo">762</span><a name="line.762"></a>
-<span class="sourceLineNo">763</span>  public void postBalanceSwitch(final boolean oldValue, final boolean newValue)<a name="line.763"></a>
-<span class="sourceLineNo">764</span>      throws IOException {<a name="line.764"></a>
+<span class="sourceLineNo">732</span>  public void preDispatchMerge(final HRegionInfo regionInfoA, final HRegionInfo regionInfoB)<a name="line.732"></a>
+<span class="sourceLineNo">733</span>      throws IOException {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>      @Override<a name="line.735"></a>
+<span class="sourceLineNo">736</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.736"></a>
+<span class="sourceLineNo">737</span>          throws IOException {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>        oserver.preDispatchMerge(ctx, regionInfoA, regionInfoB);<a name="line.738"></a>
+<span class="sourceLineNo">739</span>      }<a name="line.739"></a>
+<span class="sourceLineNo">740</span>    });<a name="line.740"></a>
+<span class="sourceLineNo">741</span>  }<a name="line.741"></a>
+<span class="sourceLineNo">742</span><a name="line.742"></a>
+<span class="sourceLineNo">743</span>  public void postDispatchMerge(final HRegionInfo regionInfoA, final HRegionInfo regionInfoB)<a name="line.743"></a>
+<span class="sourceLineNo">744</span>      throws IOException {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>      @Override<a name="line.746"></a>
+<span class="sourceLineNo">747</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.747"></a>
+<span class="sourceLineNo">748</span>          throws IOException {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>        oserver.postDispatchMerge(ctx, regionInfoA, regionInfoB);<a name="line.749"></a>
+<span class="sourceLineNo">750</span>      }<a name="line.750"></a>
+<span class="sourceLineNo">751</span>    });<a name="line.751"></a>
+<span class="sourceLineNo">752</span>  }<a name="line.752"></a>
+<span class="sourceLineNo">753</span><a name="line.753"></a>
+<span class="sourceLineNo">754</span>  public boolean preBalance() throws IOException {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>    return execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>      @Override<a name="line.756"></a>
+<span class="sourceLineNo">757</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.757"></a>
+<span class="sourceLineNo">758</span>          throws IOException {<a name="line.758"></a>
+<span class="sourceLineNo">759</span>        oserver.preBalance(ctx);<a name="line.759"></a>
+<span class="sourceLineNo">760</span>      }<a name="line.760"></a>
+<span class="sourceLineNo">761</span>    });<a name="line.761"></a>
+<span class="sourceLineNo">762</span>  }<a name="line.762"></a>
+<span class="sourceLineNo">763</span><a name="line.763"></a>
+<span class="sourceLineNo">764</span>  public void postBalance(final List&lt;RegionPlan&gt; plans) throws IOException {<a name="line.764"></a>
 <span class="sourceLineNo">765</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.765"></a>
 <span class="sourceLineNo">766</span>      @Override<a name="line.766"></a>
 <span class="sourceLineNo">767</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.767"></a>
 <span class="sourceLineNo">768</span>          throws IOException {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>        oserver.postBalanceSwitch(ctx, oldValue, newValue);<a name="line.769"></a>
+<span class="sourceLineNo">769</span>        oserver.postBalance(ctx, plans);<a name="line.769"></a>
 <span class="sourceLineNo">770</span>      }<a name="line.770"></a>
 <span class="sourceLineNo">771</span>    });<a name="line.771"></a>
 <span class="sourceLineNo">772</span>  }<a name="line.772"></a>
 <span class="sourceLineNo">773</span><a name="line.773"></a>
-<span class="sourceLineNo">774</span>  public void preShutdown() throws IOException {<a name="line.774"></a>
-<span class="sourceLineNo">775</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.775"></a>
-<span class="sourceLineNo">776</span>      @Override<a name="line.776"></a>
-<span class="sourceLineNo">777</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.777"></a>
-<span class="sourceLineNo">778</span>          throws IOException {<a name="line.778"></a>
-<span class="sourceLineNo">779</span>        oserver.preShutdown(ctx);<a name="line.779"></a>
-<span class="sourceLineNo">780</span>      }<a name="line.780"></a>
-<span class="sourceLineNo">781</span>      @Override<a name="line.781"></a>
-<span class="sourceLineNo">782</span>      public void postEnvCall(MasterEnvironment env) {<a name="line.782"></a>
-<span class="sourceLineNo">783</span>        // invoke coprocessor stop method<a name="line.783"></a>
-<span class="sourceLineNo">784</span>        shutdown(env);<a name="line.784"></a>
-<span class="sourceLineNo">785</span>      }<a name="line.785"></a>
-<span class="sourceLineNo">786</span>    });<a name="line.786"></a>
-<span class="sourceLineNo">787</span>  }<a name="line.787"></a>
-<span class="sourceLineNo">788</span><a name="line.788"></a>
-<span class="sourceLineNo">789</span>  public void preStopMaster() throws IOException {<a name="line.789"></a>
-<span class="sourceLineNo">790</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.790"></a>
-<span class="sourceLineNo">791</span>      @Override<a name="line.791"></a>
-<span class="sourceLineNo">792</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.792"></a>
-<span class="sourceLineNo">793</span>          throws IOException {<a name="line.793"></a>
-<span class="sourceLineNo">794</span>        oserver.preStopMaster(ctx);<a name="line.794"></a>
-<span class="sourceLineNo">795</span>      }<a name="line.795"></a>
-<span class="sourceLineNo">796</span>      @Override<a name="line.796"></a>
-<span class="sourceLineNo">797</span>      public void postEnvCall(MasterEnvironment env) {<a name="line.797"></a>
-<span class="sourceLineNo">798</span>        // invoke coprocessor stop method<a name="line.798"></a>
-<span class="sourceLineNo">799</span>        shutdown(env);<a name="line.799"></a>
-<span class="sourceLineNo">800</span>      }<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    });<a name="line.801"></a>
-<span class="sourceLineNo">802</span>  }<a name="line.802"></a>
-<span class="sourceLineNo">803</span><a name="line.803"></a>
-<span class="sourceLineNo">804</span>  public void preMasterInitialization() throws IOException {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>      @Override<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.807"></a>
-<span class="sourceLineNo">808</span>          throws IOException {<a name="line.808"></a>
-<span class="sourceLineNo">809</span>        oserver.preMasterInitialization(ctx);<a name="line.809"></a>
-<span class="sourceLineNo">810</span>      }<a name="line.810"></a>
-<span class="sourceLineNo">811</span>    });<a name="line.811"></a>
-<span class="sourceLineNo">812</span>  }<a name="line.812"></a>
-<span class="sourceLineNo">813</span><a name="line.813"></a>
-<span class="sourceLineNo">814</span>  public void postStartMaster() throws IOException {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.815"></a>
-<span class="sourceLineNo">816</span>      @Override<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.817"></a>
-<span class="sourceLineNo">818</span>          throws IOException {<a name="line.818"></a>
-<span class="sourceLineNo">819</span>        oserver.postStartMaster(ctx);<a name="line.819"></a>
-<span class="sourceLineNo">820</span>      }<a name="line.820"></a>
-<span class="sourceLineNo">821</span>    });<a name="line.821"></a>
-<span class="sourceLineNo">822</span>  }<a name="line.822"></a>
-<span class="sourceLineNo">823</span><a name="line.823"></a>
-<span class="sourceLineNo">824</span>  public void preSnapshot(final SnapshotDescription snapshot,<a name="line.824"></a>
-<span class="sourceLineNo">825</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.825"></a>
-<span class="sourceLineNo">826</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.826"></a>
-<span class="sourceLineNo">827</span>      @Override<a name="line.827"></a>
-<span class="sourceLineNo">828</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.828"></a>
-<span class="sourceLineNo">829</span>          throws IOException {<a name="line.829"></a>
-<span class="sourceLineNo">830</span>        oserver.preSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      }<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    });<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  }<a name="line.833"></a>
-<span class="sourceLineNo">834</span><a name="line.834"></a>
-<span class="sourceLineNo">835</span>  public void postSnapshot(final SnapshotDescription snapshot,<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.836"></a>
+<span class="sourceLineNo">774</span>  public boolean preBalanceSwitch(final boolean b) throws IOException {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>    return execOperationWithResult(b, coprocessors.isEmpty() ? null :<a name="line.775"></a>
+<span class="sourceLineNo">776</span>        new CoprocessorOperationWithResult&lt;Boolean&gt;() {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>      @Override<a name="line.777"></a>
+<span class="sourceLineNo">778</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.778"></a>
+<span class="sourceLineNo">779</span>          throws IOException {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>        setResult(oserver.preBalanceSwitch(ctx, getResult()));<a name="line.780"></a>
+<span class="sourceLineNo">781</span>      }<a name="line.781"></a>
+<span class="sourceLineNo">782</span>    });<a name="line.782"></a>
+<span class="sourceLineNo">783</span>  }<a name="line.783"></a>
+<span class="sourceLineNo">784</span><a name="line.784"></a>
+<span class="sourceLineNo">785</span>  public void postBalanceSwitch(final boolean oldValue, final boolean newValue)<a name="line.785"></a>
+<span class="sourceLineNo">786</span>      throws IOException {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>      @Override<a name="line.788"></a>
+<span class="sourceLineNo">789</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.789"></a>
+<span class="sourceLineNo">790</span>          throws IOException {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>        oserver.postBalanceSwitch(ctx, oldValue, newValue);<a name="line.791"></a>
+<span class="sourceLineNo">792</span>      }<a name="line.792"></a>
+<span class="sourceLineNo">793</span>    });<a name="line.793"></a>
+<span class="sourceLineNo">794</span>  }<a name="line.794"></a>
+<span class="sourceLineNo">795</span><a name="line.795"></a>
+<span class="sourceLineNo">796</span>  public void preShutdown() throws IOException {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>      @Override<a name="line.798"></a>
+<span class="sourceLineNo">799</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.799"></a>
+<span class="sourceLineNo">800</span>          throws IOException {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>        oserver.preShutdown(ctx);<a name="line.801"></a>
+<span class="sourceLineNo">802</span>      }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>      @Override<a name="line.803"></a>
+<span class="sourceLineNo">804</span>      public void postEnvCall(MasterEnvironment env) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>        // invoke coprocessor stop method<a name="line.805"></a>
+<span class="sourceLineNo">806</span>        shutdown(env);<a name="line.806"></a>
+<span class="sourceLineNo">807</span>      }<a name="line.807"></a>
+<span class="sourceLineNo">808</span>    });<a name="line.808"></a>
+<span class="sourceLineNo">809</span>  }<a name="line.809"></a>
+<span class="sourceLineNo">810</span><a name="line.810"></a>
+<span class="sourceLineNo">811</span>  public void preStopMaster() throws IOException {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.812"></a>
+<span class="sourceLineNo">813</span>      @Override<a name="line.813"></a>
+<span class="sourceLineNo">814</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.814"></a>
+<span class="sourceLineNo">815</span>          throws IOException {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>        oserver.preStopMaster(ctx);<a name="line.816"></a>
+<span class="sourceLineNo">817</span>      }<a name="line.817"></a>
+<span class="sourceLineNo">818</span>      @Override<a name="line.818"></a>
+<span class="sourceLineNo">819</span>      public void postEnvCall(MasterEnvironment env) {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>        // invoke coprocessor stop method<a name="line.820"></a>
+<span class="sourceLineNo">821</span>        shutdown(env);<a name="line.821"></a>
+<span class="sourceLineNo">822</span>      }<a name="line.822"></a>
+<span class="sourceLineNo">823</span>    });<a name="line.823"></a>
+<span class="sourceLineNo">824</span>  }<a name="line.824"></a>
+<span class="sourceLineNo">825</span><a name="line.825"></a>
+<span class="sourceLineNo">826</span>  public void preMasterInitialization() throws IOException {<a name="line.826"></a>
+<span class="sourceLineNo">827</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>      @Override<a name="line.828"></a>
+<span class="sourceLineNo">829</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.829"></a>
+<span class="sourceLineNo">830</span>          throws IOException {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>        oserver.preMasterInitialization(ctx);<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      }<a name="line.832"></a>
+<span class="sourceLineNo">833</span>    });<a name="line.833"></a>
+<span class="sourceLineNo">834</span>  }<a name="line.834"></a>
+<span class="sourceLineNo">835</span><a name="line.835"></a>
+<span class="sourceLineNo">836</span>  public void postStartMaster() throws IOException {<a name="line.836"></a>
 <span class="sourceLineNo">837</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.837"></a>
 <span class="sourceLineNo">838</span>      @Override<a name="line.838"></a>
 <span class="sourceLineNo">839</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.839"></a>
 <span class="sourceLineNo">840</span>          throws IOException {<a name="line.840"></a>
-<span class="sourceLineNo">841</span>        oserver.postSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.841"></a>
+<span class="sourceLineNo">841</span>        oserver.postStartMaster(ctx);<a name="line.841"></a>
 <span class="sourceLineNo">842</span>      }<a name="line.842"></a>
 <span class="sourceLineNo">843</span>    });<a name="line.843"></a>
 <span class="sourceLineNo">844</span>  }<a name="line.844"></a>
 <span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  public void preListSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.846"></a>
-<span class="sourceLineNo">847</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.847"></a>
-<span class="sourceLineNo">848</span>      @Override<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      public void call(MasterObserver observer, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.849"></a>
-<span class="sourceLineNo">850</span>          throws IOException {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        observer.preListSnapshot(ctx, snapshot);<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      }<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    });<a name="line.853"></a>
-<span class="sourceLineNo">854</span>  }<a name="line.854"></a>
-<span class="sourceLineNo">855</span><a name="line.855"></a>
-<span class="sourceLineNo">856</span>  public void postListSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      @Override<a name="line.858"></a>
-<span class="sourceLineNo">859</span>      public void call(MasterObserver observer, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.859"></a>
-<span class="sourceLineNo">860</span>          throws IOException {<a name="line.860"></a>
-<span class="sourceLineNo">861</span>        observer.postListSnapshot(ctx, snapshot);<a name="line.861"></a>
-<span class="sourceLineNo">862</span>      }<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    });<a name="line.863"></a>
-<span class="sourceLineNo">864</span>  }<a name="line.864"></a>
-<span class="sourceLineNo">865</span><a name="line.865"></a>
-<span class="sourceLineNo">866</span>  public void preCloneSnapshot(final SnapshotDescription snapshot,<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      @Override<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.870"></a>
-<span class="sourceLineNo">871</span>          throws IOException {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>        oserver.preCloneSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.872"></a>
-<span class="sourceLineNo">873</span>      }<a name="line.873"></a>
-<span class="sourceLineNo">874</span>    });<a name="line.874"></a>
-<span class="sourceLineNo">875</span>  }<a name="line.875"></a>
-<span class="sourceLineNo">876</span><a name="line.876"></a>
-<span class="sourceLineNo">877</span>  public void postCloneSnapshot(final SnapshotDescription snapshot,<a name="line.877"></a>
-<span class="sourceLineNo">878</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.878"></a>
+<span class="sourceLineNo">846</span>  public void preSnapshot(final SnapshotDescription snapshot,<a name="line.846"></a>
+<span class="sourceLineNo">847</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>      @Override<a name="line.849"></a>
+<span class="sourceLineNo">850</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.850"></a>
+<span class="sourceLineNo">851</span>          throws IOException {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        oserver.preSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.852"></a>
+<span class="sourceLineNo">853</span>      }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>    });<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  }<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>  public void postSnapshot(final SnapshotDescription snapshot,<a name="line.857"></a>
+<span class="sourceLineNo">858</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>      @Override<a name="line.860"></a>
+<span class="sourceLineNo">861</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.861"></a>
+<span class="sourceLineNo">862</span>          throws IOException {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>        oserver.postSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>      }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>    });<a name="line.865"></a>
+<span class="sourceLineNo">866</span>  }<a name="line.866"></a>
+<span class="sourceLineNo">867</span><a name="line.867"></a>
+<span class="sourceLineNo">868</span>  public void preListSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>      @Override<a name="line.870"></a>
+<span class="sourceLineNo">871</span>      public void call(MasterObserver observer, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.871"></a>
+<span class="sourceLineNo">872</span>          throws IOException {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>        observer.preListSnapshot(ctx, snapshot);<a name="line.873"></a>
+<span class="sourceLineNo">874</span>      }<a name="line.874"></a>
+<span class="sourceLineNo">875</span>    });<a name="line.875"></a>
+<span class="sourceLineNo">876</span>  }<a name="line.876"></a>
+<span class="sourceLineNo">877</span><a name="line.877"></a>
+<span class="sourceLineNo">878</span>  public void postListSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.878"></a>
 <span class="sourceLineNo">879</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.879"></a>
 <span class="sourceLineNo">880</span>      @Override<a name="line.880"></a>
-<span class="sourceLineNo">881</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.881"></a>
+<span class="sourceLineNo">881</span>      public void call(MasterObserver observer, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.881"></a>
 <span class="sourceLineNo">882</span>          throws IOException {<a name="line.882"></a>
-<span class="sourceLineNo">883</span>        oserver.postCloneSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.883"></a>
+<span class="sourceLineNo">883</span>        observer.postListSnapshot(ctx, snapshot);<a name="line.883"></a>
 <span class="sourceLineNo">884</span>      }<a name="line.884"></a>
 <span class="sourceLineNo">885</span>    });<a name="line.885"></a>
 <span class="sourceLineNo">886</span>  }<a name="line.886"></a>
 <span class="sourceLineNo">887</span><a name="line.887"></a>
-<span class="sourceLineNo">888</span>  public void preRestoreSnapshot(final SnapshotDescription snapshot,<a name="line.888"></a>
+<span class="sourceLineNo">888</span>  public void preCloneSnapshot(final SnapshotDescription snapshot,<a name="line.888"></a>
 <span class="sourceLineNo">889</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.889"></a>
 <span class="sourceLineNo">890</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.890"></a>
 <span class="sourceLineNo">891</span>      @Override<a name="line.891"></a>
 <span class="sourceLineNo">892</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.892"></a>
 <span class="sourceLineNo">893</span>          throws IOException {<a name="line.893"></a>
-<span class="sourceLineNo">894</span>        oserver.preRestoreSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.894"></a>
+<span class="sourceLineNo">894</span>        oserver.preCloneSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.894"></a>
 <span class="sourceLineNo">895</span>      }<a name="line.895"></a>
 <span class="sourceLineNo">896</span>    });<a name="line.896"></a>
 <span class="sourceLineNo">897</span>  }<a name="line.897"></a>
 <span class="sourceLineNo">898</span><a name="line.898"></a>
-<span class="sourceLineNo">899</span>  public void postRestoreSnapshot(final SnapshotDescription snapshot,<a name="line.899"></a>
+<span class="sourceLineNo">899</span>  public void postCloneSnapshot(final SnapshotDescription snapshot,<a name="line.899"></a>
 <span class="sourceLineNo">900</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.900"></a>
 <span class="sourceLineNo">901</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.901"></a>
 <span class="sourceLineNo">902</span>      @Override<a name="line.902"></a>
 <span class="sourceLineNo">903</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.903"></a>
 <span class="sourceLineNo">904</span>          throws IOException {<a name="line.904"></a>
-<span class="sourceLineNo">905</span>        oserver.postRestoreSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.905"></a>
+<span class="sourceLineNo">905</span>        oserver.postCloneSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.905"></a>
 <span class="sourceLineNo">906</span>      }<a name="line.906"></a>
 <span class="sourceLineNo">907</span>    });<a name="line.907"></a>
 <span class="sourceLineNo">908</span>  }<a name="line.908"></a>
 <span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>  public void preDeleteSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.910"></a>
-<span class="sourceLineNo">911</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      @Override<a name="line.912"></a>
-<span class="sourceLineNo">913</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.913"></a>
-<span class="sourceLineNo">914</span>          throws IOException {<a name="line.914"></a>
-<span class="sourceLineNo">915</span>        oserver.preDeleteSnapshot(ctx, snapshot);<a name="line.915"></a>
-<span class="sourceLineNo">916</span>      }<a name="line.916"></a>
-<span class="sourceLineNo">917</span>    });<a name="line.917"></a>
-<span class="sourceLineNo">918</span>  }<a name="line.918"></a>
-<span class="sourceLineNo">919</span><a name="line.919"></a>
-<span class="sourceLineNo">920</span>  public void postDeleteSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.920"></a>
-<span class="sourceLineNo">921</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      @Override<a name="line.922"></a>
-<span class="sourceLineNo">923</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.923"></a>
-<span class="sourceLineNo">924</span>          throws IOException {<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        oserver.postDeleteSnapshot(ctx, snapshot);<a name="line.925"></a>
-<span class="sourceLineNo">926</span>      }<a name="line.926"></a>
-<span class="sourceLineNo">927</span>    });<a name="line.927"></a>
-<span class="sourceLineNo">928</span>  }<a name="line.928"></a>
-<span class="sourceLineNo">929</span><a name="line.929"></a>
-<span class="sourceLineNo">930</span>  public boolean preGetTableDescriptors(final List&lt;TableName&gt; tableNamesList,<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      final List&lt;HTableDescriptor&gt; descriptors, final String regex) throws IOException {<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    return execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      @Override<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.934"></a>
-<span class="sourceLineNo">935</span>          throws IOException {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>        oserver.preGetTableDescriptors(ctx, tableNamesList, descriptors, regex);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>      }<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    });<a name="line.938"></a>
-<span class="sourceLineNo">939</span>  }<a name="line.939"></a>
-<span class="sourceLineNo">940</span><a name="line.940"></a>
-<span class="sourceLineNo">941</span>  public void postGetTableDescriptors(final List&lt;TableName&gt; tableNamesList,<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      final List&lt;HTableDescriptor&gt; descriptors, final String regex) throws IOException {<a name="line.942"></a>
+<span class="sourceLineNo">910</span>  public void preRestoreSnapshot(final SnapshotDescription snapshot,<a name="line.910"></a>
+<span class="sourceLineNo">911</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.911"></a>
+<span class="sourceLineNo">912</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>      @Override<a name="line.913"></a>
+<span class="sourceLineNo">914</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.914"></a>
+<span class="sourceLineNo">915</span>          throws IOException {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>        oserver.preRestoreSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.916"></a>
+<span class="sourceLineNo">917</span>      }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>    });<a name="line.918"></a>
+<span class="sourceLineNo">919</span>  }<a name="line.919"></a>
+<span class="sourceLineNo">920</span><a name="line.920"></a>
+<span class="sourceLineNo">921</span>  public void postRestoreSnapshot(final SnapshotDescription snapshot,<a name="line.921"></a>
+<span class="sourceLineNo">922</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>      @Override<a name="line.924"></a>
+<span class="sourceLineNo">925</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.925"></a>
+<span class="sourceLineNo">926</span>          throws IOException {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>        oserver.postRestoreSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      }<a name="line.928"></a>
+<span class="sourceLineNo">929</span>    });<a name="line.929"></a>
+<span class="sourceLineNo">930</span>  }<a name="line.930"></a>
+<span class="sourceLineNo">931</span><a name="line.931"></a>
+<span class="sourceLineNo">932</span>  public void preDeleteSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      @Override<a name="line.934"></a>
+<span class="sourceLineNo">935</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.935"></a>
+<span class="sourceLineNo">936</span>          throws IOException {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>        oserver.preDeleteSnapshot(ctx, snapshot);<a name="line.937"></a>
+<span class="sourceLineNo">938</span>      }<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    });<a name="line.939"></a>
+<span class="sourceLineNo">940</span>  }<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>  public void postDeleteSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.942"></a>
 <span class="sourceLineNo">943</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.943"></a>
 <span class="sourceLineNo">944</span>      @Override<a name="line.944"></a>
 <span class="sourceLineNo">945</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.945"></a>
 <span class="sourceLineNo">946</span>          throws IOException {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>        oserver.postGetTableDescriptors(ctx, tableNamesList, descriptors, regex);<a name="line.947"></a>
+<span class="sourceLineNo">947</span>        oserver.postDeleteSnapshot(ctx, snapshot);<a name="line.947"></a>
 <span class="sourceLineNo">948</span>      }<a name="line.948"></a>
 <span class="sourceLineNo">949</span>    });<a name="line.949"></a>
 <span class="sourceLineNo">950</span>  }<a name="line.950"></a>
 <span class="sourceLineNo">951</span><a name="line.951"></a>
-<span class="sourceLineNo">952</span>  public boolean preGetTableNames(final List&lt;HTableDescriptor&gt; descriptors,<a name="line.952"></a>
-<span class="sourceLineNo">953</span>      final String regex) throws IOException {<a name="line.953"></a>
+<span class="sourceLineNo">952</span>  public boolean preGetTableDescriptors(final List&lt;TableName&gt; tableNamesList,<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      final List&lt;HTableDescriptor&gt; descriptors, final String regex) throws IOException {<a name="line.953"></a>
 <span class="sourceLineNo">954</span>    return execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.954"></a>
 <span class="sourceLineNo">955</span>      @Override<a name="line.955"></a>
 <span class="sourceLineNo">956</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.956"></a>
 <span class="sourceLineNo">957</span>          throws IOException {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>        oserver.preGetTableNames(ctx, descriptors, regex);<a name="line.958"></a>
+<span class="sourceLineNo">958</span>        oserver.preGetTableDescriptors(ctx, tableNamesList, descriptors, regex);<a name="line.958"></a>
 <span class="sourceLineNo">959</span>      }<a name="line.959"></a>
 <span class="sourceLineNo">960</span>    });<a name="line.960"></a>
 <span class="sourceLineNo">961</span>  }<a name="line.961"></a>
 <span class="sourceLineNo">962</span><a name="line.962"></a>
-<span class="sourceLineNo">963</span>  public void postGetTableNames(final List&lt;HTableDescriptor&gt; descriptors,<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      final String regex) throws IOException {<a name="line.964"></a>
+<span class="sourceLineNo">963</span>  public void postGetTableDescriptors(final List&lt;TableName&gt; tableNamesList,<a name="line.963"></a>
+<span class="sourceLineNo">964</span>      final List&lt;HTableDescriptor&gt; descriptors, final String regex) throws IOException {<a name="line.964"></a>
 <span class="sourceLineNo">965</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.965"></a>
 <span class="sourceLineNo">966</span>      @Override<a name="line.966"></a>
 <span class="sourceLineNo">967</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.967"></a>
 <span class="sourceLineNo">968</span>          throws IOException {<a name="line.968"></a>
-<span class="sourceLineNo">969</span>        oserver.postGetTableNames(ctx, descriptors, regex);<a name="line.969"></a>
+<span class="sourceLineNo">969</span>        oserver.postGetTableDescriptors(ctx, tableNamesList, descriptors, regex);<a name="line.969"></a>
 <span class="sourceLineNo">970</span>      }<a name="line.970"></a>
 <span class="sourceLineNo">971</span>    });<a name="line.971"></a>
 <span class="sourceLineNo">972</span>  }<a name="line.972"></a>
 <span class="sourceLineNo">973</span><a name="line.973"></a>
-<span class="sourceLineNo">974</span>  public void preTableFlush(final TableName tableName) throws IOException {<a name="line.974"></a>
-<span class="sourceLineNo">975</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>      @Override<a name="line.976"></a>
-<span class="sourceLineNo">977</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.977"></a>
-<span class="sourceLineNo">978</span>          throws IOException {<a name="line.978"></a>
-<span class="sourceLineNo">979</span>        oserver.preTableFlush(ctx, tableName);<a name="line.979"></a>
-<span class="sourceLineNo">980</span>      }<a name="line.980"></a>
-<span class="sourceLineNo">981</span>    });<a name="line.981"></a>
-<span class="sourceLineNo">982</span>  }<a name="line.982"></a>
-<span class="sourceLineNo">983</span><a name="line.983"></a>
-<span class="sourceLineNo">984</span>  public void postTableFlush(final TableName tableName) throws IOException {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      @Override<a name="line.986"></a>
-<span class="sourceLineNo">987</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.987"></a>
-<span class="sourceLineNo">988</span>          throws IOException {<a name="line.988"></a>
-<span class="sourceLineNo">989</span>        oserver.postTableFlush(ctx, tableName);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>      }<a name="line.990"></a>
-<span class="sourceLineNo">991</span>    });<a name="line.991"></a>
-<span class="sourceLineNo">992</span>  }<a name="line.992"></a>
-<span class="sourceLineNo">993</span><a name="line.993"></a>
-<span class="sourceLineNo">994</span>  public void preSetUserQuota(final String user, final Quotas quotas) throws IOException {<a name="line.994"></a>
-<span class="sourceLineNo">995</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.995"></a>
-<span class="sourceLineNo">996</span>      @Override<a name="line.996"></a>
-<span class="sourceLineNo">997</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.997"></a>
-<span class="sourceLineNo">998</span>          throws IOException {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>        oserver.preSetUserQuota(ctx, user, quotas);<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>      }<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    });<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>  }<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>  public void postSetUserQuota(final String user, final Quotas quotas) throws IOException {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      @Override<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>          throws IOException {<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>        oserver.postSetUserQuota(ctx, user, quotas);<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      }<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>    });<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>  }<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span><a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  public void preSetUserQuota(final String user, final TableName table, final Quotas quotas)<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      throws IOException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>      @Override<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>          throws IOException {<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        oserver.preSetUserQuota(ctx, user, table, quotas);<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    });<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>  }<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span><a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>  public void postSetUserQuota(final String user, final TableName table, final Quotas quotas)<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>      throws IOException {<a name="line.1026"></a>
+<span class="sourceLineNo">974</span>  public boolean preGetTableNames(final List&lt;HTableDescriptor&gt; descriptors,<a name="line.974"></a>
+<span class="sourceLineNo">975</span>      final String regex) throws IOException {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>    return execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      @Override<a name="line.977"></a>
+<span class="sourceLineNo">978</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.978"></a>
+<span class="sourceLineNo">979</span>          throws IOException {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>        oserver.preGetTableNames(ctx, descriptors, regex);<a name="line.980"></a>
+<span class="sourceLineNo">981</span>      }<a name="line.981"></a>
+<span class="sourceLineNo">982</span>    });<a name="line.982"></a>
+<span class="sourceLineNo">983</span>  }<a name="line.983"></a>
+<span class="sourceLineNo">984</span><a name="line.984"></a>
+<span class="sourceLineNo">985</span>  public void postGetTableNames(final List&lt;HTableDescriptor&gt; descriptors,<a name="line.985"></a>
+<span class="sourceLineNo">986</span>      final String regex) throws IOException {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      @Override<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.989"></a>
+<span class="sourceLineNo">990</span>          throws IOException {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>        oserver.postGetTableNames(ctx, descriptors, regex);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>      }<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    });<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  }<a name="line.994"></a>
+<span class="sourceLineNo">995</span><a name="line.995"></a>
+<span class="sourceLineNo">996</span>  public void preTableFlush(final TableName tableName) throws IOException {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>      @Override<a name="line.998"></a>
+<span class="sourceLineNo">999</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>          throws IOException {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>        oserver.preTableFlush(ctx, tableName);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>      }<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>    });<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>  }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span><a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>  public void postTableFlush(final TableName tableName) throws IOException {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>      @Override<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>          throws IOException {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>        oserver.postTableFlush(ctx, tableName);<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>      }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>    });<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>  }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>  public void preSetUserQuota(final String user, final Quotas quotas) throws IOException {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>      @Override<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          throws IOException {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>        oserver.preSetUserQuota(ctx, user, quotas);<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>      }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>    });<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>  }<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span><a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>  public void postSetUserQuota(final String user, final Quotas quotas) throws IOException {<a name="line.1026"></a>
 <span class="sourceLineNo">1027</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1027"></a>
 <span class="sourceLineNo">1028</span>      @Override<a name="line.1028"></a>
 <span class="sourceLineNo">1029</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1029"></a>
 <span class="sourceLineNo">1030</span>          throws IOException {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>        oserver.postSetUserQuota(ctx, user, table, quotas);<a name="line.1031"></a>
+<span class="sourceLineNo">1031</span>        oserver.postSetUserQuota(ctx, user, quotas);<a name="line.1031"></a>
 <span class="sourceLineNo">1032</span>      }<a name="line.1032"></a>
 <span class="sourceLineNo">1033</span>    });<a name="line.1033"></a>
 <span class="sourceLineNo">1034</span>  }<a name="line.1034"></a>
 <span class="sourceLineNo">1035</span><a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>  public void preSetUserQuota(final String user, final String namespace, final Quotas quotas)<a name="line.1036"></a>
+<span class="sourceLineNo">1036</span>  public void preSetUserQuota(final String user, final TableName table, final Quotas quotas)<a name="line.1036"></a>
 <span class="sourceLineNo">1037</span>      throws IOException {<a name="line.1037"></a>
 <span class="sourceLineNo">1038</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1038"></a>
 <span class="sourceLineNo">1039</span>      @Override<a name="line.1039"></a>
 <span class="sourceLineNo">1040</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1040"></a>
 <span class="sourceLineNo">1041</span>          throws IOException {<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        oserver.preSetUserQuota(ctx, user, namespace, quotas);<a name="line.1042"></a>
+<span class="sourceLineNo">1042</span>        oserver.preSetUserQuota(ctx, user, table, quotas);<a name="line.1042"></a>
 <span class="sourceLineNo">1043</span>      }<a name="line.1043"></a>
 <span class="sourceLineNo">1044</span>    });<a name="line.1044"></a>
 <span class="sourceLineNo">1045</span>  }<a name="line.1045"></a>
 <span class="sourceLineNo">1046</span><a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>  public void postSetUserQuota(final String user, final String namespace, final Quotas quotas)<a name="line.1047"></a>
+<span class="sourceLineNo">1047</span>  public void postSetUserQuota(final String user, final TableName table, final Quotas quotas)<a name="line.1047"></a>
 <span class="sourceLineNo">1048</span>      throws IOException {<a name="line.1048"></a>
 <span class="sourceLineNo">1049</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1049"></a>
 <span class="sourceLineNo">1050</span>      @Override<a name="line.1050"></a>
 <span class="sourceLineNo">1051</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1051"></a>
 <span class="sourceLineNo">1052</span>          throws IOException {<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>        oserver.postSetUserQuota(ctx, user, namespace, quotas);<a name="line.1053"></a>
+<span class="sourceLineNo">1053</span>        oserver.postSetUserQuota(ctx, user, table, quotas);<a name="line.1053"></a>
 <span class="sourceLineNo">1054</span>      }<a name="line.1054"></a>
 <span class="sourceLineNo">1055</span>    });<a name="line.1055"></a>
 <span class="sourceLineNo">1056</span>  }<a name="line.1056"></a>
 <span class="sourceLineNo">1057</span><a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>  public void preSetTableQuota(final TableName table, final Quotas quotas) throws IOException {<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>      @Override<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>          throws IOException {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>        oserver.preSetTableQuota(ctx, table, quotas);<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>      }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>    });<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>  }<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span><a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>  public void postSetTableQuota(final TableName table, final Quotas quotas) throws IOException {<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      @Override<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>          throws IOException {<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>        oserver.postSetTableQuota(ctx, table, quotas);<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      }<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    });<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>  }<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span><a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>  public void preSetNamespaceQuota(final String namespace, final Quotas quotas) throws IOException {<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>      @Override<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>          throws IOException {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>        oserver.preSetNamespaceQuota(ctx, namespace, quotas);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>      }<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>    });<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>  }<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span><a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>  public void postSetNamespaceQuota(final String namespace, final Quotas quotas) throws IOException{<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>      @Override<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>          throws IOException {<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>        oserver.postSetNamespaceQuota(ctx, namespace, quotas);<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>      }<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    });<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>  }<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span><a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>  private static abstract class CoprocessorOperation<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>      extends ObserverContext&lt;MasterCoprocessorEnvironment&gt; {<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>    public CoprocessorOperation() {<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span><a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    public abstract void call(MasterObserver oserver,<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>        ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx) throws IOException;<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span><a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>    public void postEnvCall(MasterEnvironment env) {<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    }<a name="line.1107"></a>
+<span class="sourceLineNo">1058</span>  public void preSetUserQuota(final String user, final String namespace, final Quotas quotas)<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      throws IOException {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>      @Override<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>          throws IOException {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        oserver.preSetUserQuota(ctx, user, namespace, quotas);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>      }<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>    });<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>  }<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span><a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>  public void postSetUserQuota(final String user, final String namespace, final Quotas quotas)<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      throws IOException {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      @Override<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>          throws IOException {<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>        oserver.postSetUserQuota(ctx, user, namespace, quotas);<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>      }<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>    });<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>  }<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span><a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>  public void preSetTableQuota(final TableName table, final Quotas quotas) throws IOException {<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      @Override<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>          throws IOException {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>        oserver.preSetTableQuota(ctx, table, quotas);<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>      }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>    });<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>  }<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span><a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>  public void postSetTableQuota(final TableName table, final Quotas quotas) throws IOException {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>      @Override<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>          throws IOException {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>        oserver.postSetTableQuota(ctx, table, quotas);<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>      }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>    });<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>  }<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span><a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>  public void preSetNamespaceQuota(final String namespace, final Quotas quotas) throws IOException {<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      @Override<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>          throws IOException {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>        oserver.preSetNamespaceQuota(ctx, namespace, quotas);<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>      }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    });<a name="line.1107"></a>
 <span class="sourceLineNo">1108</span>  }<a name="line.1108"></a>
 <span class="sourceLineNo">1109</span><a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>  private static abstract class CoprocessorOperationWithResult&lt;T&gt; extends CoprocessorOperation {<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>    private T result = null;<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    public void setResult(final T result) { this.result = result; }<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    public T getResult() { return this.result; }<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>  }<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span><a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>  private &lt;T&gt; T execOperationWithResult(final T defaultValue,<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>      final CoprocessorOperationWithResult&lt;T&gt; ctx) throws IOException {<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>    if (ctx == null) return defaultValue;<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    ctx.setResult(defaultValue);<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    execOperation(ctx);<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    return ctx.getResult();<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>  }<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span><a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>  private boolean execOperation(final CoprocessorOperation ctx) throws IOException {<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    if (ctx == null) return false;<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>    boolean bypass = false;<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>    List&lt;MasterEnvironment&gt; envs = coprocessors.get();<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>    for (int i = 0; i &lt; envs.size(); i++) {<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>      MasterEnvironment env = envs.get(i);<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>      if (env.getInstance() instanceof MasterObserver) {<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>        ctx.prepare(env);<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>        Thread currentThread = Thread.currentThread();<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>        ClassLoader cl = currentThread.getContextClassLoader();<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>        try {<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>          currentThread.setContextClassLoader(env.getClassLoader());<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>          ctx.call((MasterObserver)env.getInstance(), ctx);<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>        } catch (Throwable e) {<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>          handleCoprocessorThrowable(env, e);<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>        } finally {<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>          currentThread.setContextClassLoader(cl);<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>        }<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>        bypass |= ctx.shouldBypass();<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>        if (ctx.shouldComplete()) {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>          break;<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>        }<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>      }<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>      ctx.postEnvCall(env);<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    }<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>    return bypass;<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>  }<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>}<a name="line.1151"></a>
+<span class="sourceLineNo">1110</span>  public void postSetNamespaceQuota(final String namespace, final Quotas quotas) throws IOException{<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      @Override<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>          throws IOException {<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>        oserver.postSetNamespaceQuota(ctx, namespace, quotas);<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>      }<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>    });<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>  }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span><a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>  private static abstract class CoprocessorOperation<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      extends ObserverContext&lt;MasterCoprocessorEnvironment&gt; {<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>    public CoprocessorOperation() {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>    }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>    public abstract void call(MasterObserver oserver,<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>        ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx) throws IOException;<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span><a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>    public void postEnvCall(MasterEnvironment env) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>    }<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>  }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span><a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>  private static abstract class CoprocessorOperationWithResult&lt;T&gt; extends CoprocessorOperation {<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>    private T result = null;<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>    public void setResult(final T result) { this.result = result; }<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>    public T getResult() { return this.result; }<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>  }<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span><a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>  private &lt;T&gt; T execOperationWithResult(final T defaultValue,<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>      final CoprocessorOperationWithResult&lt;T&gt; ctx) throws IOException {<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>    if (ctx == null) return defaultValue;<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>    ctx.setResult(defaultValue);<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    execOperation(ctx);<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>    return ctx.getResult();<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>  }<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span><a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>  private boolean execOperation(final CoprocessorOperation ctx) throws IOException {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>    if (ctx == null) return false;<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>    boolean bypass = false;<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>    List&lt;MasterEnvironment&gt; envs = coprocessors.get();<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>    for (int i = 0; i &lt; envs.size(); i++) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>      MasterEnvironment env = envs.get(i);<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>      if (env.getInstance() instanceof MasterObserver) {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        ctx.prepare(env);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>        Thread currentThread = Thread.currentThread();<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>        ClassLoader cl = currentThread.getContextClassLoader();<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>        try {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>          currentThread.setContextClassLoader(env.getClassLoader());<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>          ctx.call((MasterObserver)env.getInstance(), ctx);<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>        } catch (Throwable e) {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>          handleCoprocessorThrowable(env, e);<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>        } finally {<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>          currentThread.setContextClassLoader(cl);<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>        }<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>        bypass |= ctx.shouldBypass();<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>        if (ctx.shouldComplete()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>          break;<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>        }<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>      }<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>      ctx.postEnvCall(env);<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    }<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    return bypass;<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>  }<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>}<a name="line.1173"></a>
 
 
 


[48/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/class-use/HRegionInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/HRegionInfo.html b/devapidocs/org/apache/hadoop/hbase/class-use/HRegionInfo.html
index f905770..493f954 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/HRegionInfo.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/HRegionInfo.html
@@ -1163,19 +1163,39 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                                  <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                                  <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                                  <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                                  <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
+                                  <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                                  <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)</code>
+<div class="block">called after dispatching the region merge request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">postMove</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
                 <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;srcServer,
                 <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;destServer)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">postMove</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
                 <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;srcServer,
                 <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;destServer)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">postMove</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
@@ -1184,36 +1204,36 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Called after the region move has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postRegionOffline(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">postRegionOffline</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postRegionOffline(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">postRegionOffline</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRegionOffline(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">postRegionOffline</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>
 <div class="block">Called after the region has been marked offline.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postUnassign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20boolean)">postUnassign</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,
                         boolean&nbsp;force)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postUnassign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20boolean)">postUnassign</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,
                         boolean&nbsp;force)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUnassign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20boolean)">postUnassign</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,
@@ -1221,7 +1241,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Called after the region unassignment has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">RegionObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postWALRestore(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.wal.WALKey,%20org.apache.hadoop.hbase.regionserver.wal.WALEdit)">postWALRestore</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;info,
@@ -1231,7 +1251,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
  replayed for this region.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseRegionObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.html#postWALRestore(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.wal.WALKey,%20org.apache.hadoop.hbase.regionserver.wal.WALEdit)">postWALRestore</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;env,
                             <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;info,
@@ -1240,7 +1260,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Implementers should override this version of the method and leave the deprecated one as-is.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">RegionObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postWALRestore(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.regionserver.wal.HLogKey,%20org.apache.hadoop.hbase.regionserver.wal.WALEdit)">postWALRestore</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;info,
@@ -1251,14 +1271,14 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseRegionObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.html#postWALRestore(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.regionserver.wal.HLogKey,%20org.apache.hadoop.hbase.regionserver.wal.WALEdit)">postWALRestore</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;env,
                             <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;info,
                             <a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/HLogKey.html" title="class in org.apache.hadoop.hbase.regionserver.wal">HLogKey</a>&nbsp;logKey,
                             <a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALEdit</a>&nbsp;logEdit)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">WALObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/WALObserver.html#postWALWrite(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.wal.WALKey,%20org.apache.hadoop.hbase.regionserver.wal.WALEdit)">postWALWrite</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/WALCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">WALCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;info,
@@ -1268,7 +1288,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
  is writen to WAL.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseWALObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseWALObserver.html#postWALWrite(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.wal.WALKey,%20org.apache.hadoop.hbase.regionserver.wal.WALEdit)">postWALWrite</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/WALCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">WALCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;info,
@@ -1277,7 +1297,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Implementers should override this method and leave the deprecated version as-is.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">WALObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/WALObserver.html#postWALWrite(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.regionserver.wal.HLogKey,%20org.apache.hadoop.hbase.regionserver.wal.WALEdit)">postWALWrite</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/WALCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">WALCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;info,
@@ -1288,43 +1308,43 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseWALObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseWALObserver.html#postWALWrite(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.regionserver.wal.HLogKey,%20org.apache.hadoop.hbase.regionserver.wal.WALEdit)">postWALWrite</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/WALCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">WALCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;info,
                         <a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/HLogKey.html" title="class in org.apache.hadoop.hbase.regionserver.wal">HLogKey</a>&nbsp;logKey,
                         <a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALEdit</a>&nbsp;logEdit)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAssign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">preAssign</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preAssign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">preAssign</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAssign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">preAssign</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>
 <div class="block">Called prior to assigning a specific region.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preCreateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;desc,
                             <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>[]&nbsp;regions)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preCreateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;desc,
                             <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>[]&nbsp;regions)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;desc,
@@ -1333,19 +1353,19 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
  <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preCreateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;desc,
                                           <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>[]&nbsp;regions)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preCreateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;desc,
                                           <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>[]&nbsp;regions)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;desc,
@@ -1354,6 +1374,26 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
  <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">preDispatchMerge</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                                <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                                <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#preDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">preDispatchMerge</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                                <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                                <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">preDispatchMerge</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                                <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                                <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)</code>
+<div class="block">Called before dispatching region merge request.</div>
+</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">preMove</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
@@ -2321,33 +2361,43 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">MasterCoprocessorHost.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postDispatchMerge(org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfoA,
+                                  <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfoB)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterCoprocessorHost.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postMove(org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">postMove</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
                 <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;srcServer,
                 <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;destServer)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterCoprocessorHost.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postRegionOffline(org.apache.hadoop.hbase.HRegionInfo)">postRegionOffline</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterCoprocessorHost.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postUnassign(org.apache.hadoop.hbase.HRegionInfo,%20boolean)">postUnassign</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,
                         boolean&nbsp;force)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="strong">MasterCoprocessorHost.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preAssign(org.apache.hadoop.hbase.HRegionInfo)">preAssign</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterCoprocessorHost.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preCreateTable(org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd,
                             <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>[]&nbsp;regions)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterCoprocessorHost.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preCreateTableHandler(org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd,
                                           <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>[]&nbsp;regions)</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">MasterCoprocessorHost.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preDispatchMerge(org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">preDispatchMerge</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfoA,
+                                <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfoB)</code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="strong">MasterCoprocessorHost.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preMove(org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">preMove</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
@@ -5088,17 +5138,23 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">AccessController.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">preDispatchMerge</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                                <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                                <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">AccessController.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">preMove</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
               <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
               <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;srcServer,
               <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;destServer)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">AccessController.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRegionOffline(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">preRegionOffline</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
                                 <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">AccessController.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preUnassign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20boolean)">preUnassign</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
                       <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/class-use/ProcedureInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/ProcedureInfo.html b/devapidocs/org/apache/hadoop/hbase/class-use/ProcedureInfo.html
index 20ffbd3..8c83958 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/ProcedureInfo.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/ProcedureInfo.html
@@ -99,6 +99,14 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.procedure2.store">org.apache.hadoop.hbase.procedure2.store</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.procedure2.store.wal">org.apache.hadoop.hbase.procedure2.store.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>
@@ -324,6 +332,46 @@
 </tbody>
 </table>
 </li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.procedure2.store">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a> in <a href="../../../../../org/apache/hadoop/hbase/procedure2/store/package-summary.html">org.apache.hadoop.hbase.procedure2.store</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/hadoop/hbase/procedure2/store/package-summary.html">org.apache.hadoop.hbase.procedure2.store</a> that return <a href="../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</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><a href="../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a></code></td>
+<td class="colLast"><span class="strong">ProcedureStore.ProcedureIterator.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#nextAsProcedureInfo()">nextAsProcedureInfo</a></strong>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.procedure2.store.wal">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a> in <a href="../../../../../org/apache/hadoop/hbase/procedure2/store/wal/package-summary.html">org.apache.hadoop.hbase.procedure2.store.wal</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/hadoop/hbase/procedure2/store/wal/package-summary.html">org.apache.hadoop.hbase.procedure2.store.wal</a> that return <a href="../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</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><a href="../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a></code></td>
+<td class="colLast"><span class="strong">ProcedureWALFormatReader.Entry.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#convertToInfo()">convertToInfo</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a></code></td>
+<td class="colLast"><span class="strong">ProcedureWALFormatReader.EntryIterator.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#nextAsProcedureInfo()">nextAsProcedureInfo</a></strong>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.security.access">
 <!--   -->
 </a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/classification/class-use/InterfaceStability.Unstable.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/classification/class-use/InterfaceStability.Unstable.html b/devapidocs/org/apache/hadoop/hbase/classification/class-use/InterfaceStability.Unstable.html
index 20f2daa..1a288a4 100644
--- a/devapidocs/org/apache/hadoop/hbase/classification/class-use/InterfaceStability.Unstable.html
+++ b/devapidocs/org/apache/hadoop/hbase/classification/class-use/InterfaceStability.Unstable.html
@@ -136,19 +136,19 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/http/package-summary.html">org.apache.hadoop.hbase.http</a></td>
+<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/http/lib/package-summary.html">org.apache.hadoop.hbase.http.lib</a></td>
 <td class="colLast">
 <div class="block">
- Copied from hadoop source code.<br>
- See https://issues.apache.org/jira/browse/HADOOP-10232 to know why.</div>
+ This package provides user-selectable (via configuration) classes that add
+ functionality to the web UI.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/http/lib/package-summary.html">org.apache.hadoop.hbase.http.lib</a></td>
+<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/http/package-summary.html">org.apache.hadoop.hbase.http</a></td>
 <td class="colLast">
 <div class="block">
- This package provides user-selectable (via configuration) classes that add
- functionality to the web UI.</div>
+ Copied from hadoop source code.<br>
+ See https://issues.apache.org/jira/browse/HADOOP-10232 to know why.</div>
 </td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/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 8da762a..ac9a907 100644
--- a/devapidocs/org/apache/hadoop/hbase/classification/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/classification/package-tree.html
@@ -80,12 +80,12 @@
 </ul>
 <h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
 <ul>
-<li type="circle">org.apache.hadoop.hbase.classification.<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Public.html" title="annotation in org.apache.hadoop.hbase.classification"><span class="strong">InterfaceAudience.Public</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/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="strong">InterfaceAudience.LimitedPrivate</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/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="strong">InterfaceStability.Stable</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/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="strong">InterfaceStability.Unstable</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
-<li type="circle">org.apache.hadoop.hbase.classification.<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification"><span class="strong">InterfaceAudience.Private</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/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="strong">InterfaceAudience.Public</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/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="strong">InterfaceStability.Stable</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/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="strong">InterfaceStability.Evolving</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.classification.<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification"><span class="strong">InterfaceAudience.Private</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/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/f8d6f420/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 2f11f69..ada47ff 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -389,11 +389,11 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/7/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/7/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/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="strong">TableState.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Admin.CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="strong">Admin.CompactType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="strong">AsyncProcess.Retry</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="strong">Consistency</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="strong">TableState.State</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="strong">Durability</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="strong">AsyncProcess.Retry</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="strong">IsolationLevel</span></a></li>
 </ul>
 </li>


[36/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/security/access/AccessController.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/access/AccessController.html b/devapidocs/org/apache/hadoop/hbase/security/access/AccessController.html
index 2405fb1..824d379 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/AccessController.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/AccessController.html
@@ -894,12 +894,20 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">preDispatchMerge</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                                <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                                <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)</code>
+<div class="block">Called before dispatching region merge request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preEnableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preEnableTable</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to enabling a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>com.google.protobuf.Message</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preEndpointInvocation(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20com.google.protobuf.Service,%20java.lang.String,%20com.google.protobuf.Message)">preEndpointInvocation</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           com.google.protobuf.Service&nbsp;service,
@@ -908,7 +916,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Called before an Endpoint service method is invoked.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preExists(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.client.Get,%20boolean)">preExists</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                   <a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get,
@@ -916,20 +924,20 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Called before the client tests for existence using a Get.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preFlush(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preFlush</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e)</code>
 <div class="block">Called before the memstore is flushed to disk.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preGetNamespaceDescriptor(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String)">preGetNamespaceDescriptor</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace)</code>
 <div class="block">Called before a getNamespaceDescriptor request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preGetOp(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.client.Get,%20java.util.List)">preGetOp</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                 <a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get,
@@ -937,7 +945,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Called before the client performs a Get</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preGetTableDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.util.List,%20java.lang.String)">preGetTableDescriptors</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="http://docs.oracle.com/javase/7/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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNamesList,
@@ -946,21 +954,21 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Called before a getTableDescriptors request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preIncrement(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.client.Increment)">preIncrement</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                         <a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a>&nbsp;increment)</code>
 <div class="block">Called before Increment.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preIncrementAfterRowLock(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.client.Increment)">preIncrementAfterRowLock</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                                                 <a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a>&nbsp;increment)</code>
 <div class="block">Called before Increment but after acquiring rowlock.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preIncrementColumnValue(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20byte[],%20byte[],%20byte[],%20long,%20boolean)">preIncrementColumnValue</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                                               byte[]&nbsp;row,
@@ -971,20 +979,20 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Called before incrementColumnValue</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preListProcedures(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preListProcedures</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called before a listProcedures request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preListSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">preListSnapshot</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)</code>
 <div class="block">Called before listSnapshots request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.regionserver.Region,%20org.apache.hadoop.hbase.regionserver.Region)">preMerge</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;regionA,
@@ -992,7 +1000,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Called before the regions merge.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preMergeCommit(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.regionserver.Region,%20org.apache.hadoop.hbase.regionserver.Region,%20java.util.List)">preMergeCommit</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;regionA,
@@ -1001,7 +1009,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">This will be called before PONR step as part of regions merge transaction.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preModifyColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preModifyColumnFamily</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1009,14 +1017,14 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Called prior to modifying a column family's attributes.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preModifyNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">preModifyNamespace</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     <a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
 <div class="block">Called prior to modifying a namespace's properties.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preModifyTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">preModifyTable</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1024,7 +1032,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Called prior to modifying a table's properties.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">preMove</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
               <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
@@ -1033,13 +1041,13 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Called prior to moving a given region from one region server to another.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preOpen(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preOpen</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e)</code>
 <div class="block">Called before the region is reported as open to the master.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#prePrepareBulkLoad(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.SecureBulkLoadProtos.PrepareBulkLoadRequest)">prePrepareBulkLoad</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     org.apache.hadoop.hbase.protobuf.generated.SecureBulkLoadProtos.PrepareBulkLoadRequest&nbsp;request)</code>
@@ -1047,7 +1055,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
  SecureBulkLoadProtocol.prepareBulkLoad()</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#prePut(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.client.Put,%20org.apache.hadoop.hbase.regionserver.wal.WALEdit,%20org.apache.hadoop.hbase.client.Durability)">prePut</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
             <a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;put,
@@ -1056,14 +1064,14 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Called before the client stores a value.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRegionOffline(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">preRegionOffline</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
                                 <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>
 <div class="block">Called prior to marking a given region as offline.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preReplicateLogEntries(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20org.apache.hadoop.hbase.CellScanner)">preReplicateLogEntries</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.protobuf.generated.AdminProtos.WALEntry&gt;&nbsp;entries,
@@ -1071,7 +1079,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">This will be called before executing replication request to shipping log entries.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRestoreSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">preRestoreSnapshot</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
@@ -1079,7 +1087,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Called before a snapshot is restored.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRollBackMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.regionserver.Region,%20org.apache.hadoop.hbase.regionserver.Region)">preRollBackMerge</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;regionA,
@@ -1087,20 +1095,20 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">This will be called before the roll back of the regions merge.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRollWALWriterRequest(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preRollWALWriterRequest</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">This will be called before executing user request to roll a region server WAL.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preScannerClose(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.regionserver.InternalScanner)">preScannerClose</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                               <a href="../../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a>&nbsp;s)</code>
 <div class="block">Called before the client closes a scanner.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preScannerNext(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.regionserver.InternalScanner,%20java.util.List,%20int,%20boolean)">preScannerNext</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                             <a href="../../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a>&nbsp;s,
@@ -1110,7 +1118,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Called before the client asks for the next row on a scanner.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preScannerOpen(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.client.Scan,%20org.apache.hadoop.hbase.regionserver.RegionScanner)">preScannerOpen</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                             <a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
@@ -1118,7 +1126,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Called before the client opens a new scanner.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetNamespaceQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">preSetNamespaceQuota</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                         <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
@@ -1126,7 +1134,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Called before the quota for the namespace is stored.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetTableQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">preSetTableQuota</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1134,7 +1142,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Called before the quota for the table is stored.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">preSetUserQuota</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -1142,7 +1150,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Called before the quota for the user is stored.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">preSetUserQuota</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -1151,7 +1159,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Called before the quota for the user on the specified namespace is stored.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">preSetUserQuota</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -1160,14 +1168,14 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Called before the quota for the user on the specified table is stored.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preShutdown(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preShutdown</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c)</code>
 <div class="block">Called prior to shutting down the full HBase cluster, including this
  <a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a> process.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">preSnapshot</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                       org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
@@ -1175,40 +1183,40 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Called before a new snapshot is taken.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSplit(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preSplit</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e)</code>
 <div class="block">Called before the region is split.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSplit(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20byte[])">preSplit</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
                 byte[]&nbsp;splitRow)</code>
 <div class="block">Called before the region is split.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preStopMaster(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preStopMaster</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c)</code>
 <div class="block">Called immediately prior to stopping this
  <a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a> process.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preStopRegionServer(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preStopRegionServer</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;env)</code>
 <div class="block">Called before stopping region server.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preTableFlush(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preTableFlush</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                           <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called before the table memstore is flushed to disk.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preTruncateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preTruncateTable</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
                                 <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
@@ -1216,7 +1224,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
  table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preUnassign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20boolean)">preUnassign</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
                       <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,
@@ -1224,7 +1232,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Called prior to unassigning a given region.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requireAccess(java.lang.String,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.security.access.Permission.Action...)">requireAccess</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
                           <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1232,7 +1240,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Authorizes that the current user has any of the given permissions to access the table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requireGlobalPermission(java.lang.String,%20org.apache.hadoop.hbase.security.access.Permission.Action,%20java.lang.String)">requireGlobalPermission</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
                                               <a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access">Permission.Action</a>&nbsp;perm,
@@ -1240,7 +1248,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Checks that the user has the given global permission.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requireGlobalPermission(java.lang.String,%20org.apache.hadoop.hbase.security.access.Permission.Action,%20org.apache.hadoop.hbase.TableName,%20java.util.Map)">requireGlobalPermission</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
                                               <a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access">Permission.Action</a>&nbsp;perm,
@@ -1249,7 +1257,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Checks that the user has the given global permission.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requireNamespacePermission(java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.security.access.Permission.Action...)">requireNamespacePermission</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
                                                     <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
@@ -1257,7 +1265,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Checks that the user has the given global or namespace permission.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requireNamespacePermission(java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.TableName,%20java.util.Map,%20org.apache.hadoop.hbase.security.access.Permission.Action...)">requireNamespacePermission</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
                                                     <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
@@ -1267,14 +1275,14 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block">Checks that the user has the given global or namespace permission.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requirePermission(java.lang.String,%20org.apache.hadoop.hbase.security.access.Permission.Action)">requirePermission</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
                                   <a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access">Permission.Action</a>&nbsp;perm)</code>
 <div class="block">Authorizes that the current user has global privileges for the given action.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requirePermission(java.lang.String,%20org.apache.hadoop.hbase.TableName,%20byte[],%20byte[],%20org.apache.hadoop.hbase.security.access.Permission.Action...)">requirePermission</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
                                   <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1285,13 +1293,13 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
  given table, column family and column qualifier.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requireScannerOwner(org.apache.hadoop.hbase.regionserver.InternalScanner)">requireScannerOwner</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a>&nbsp;s)</code>
 <div class="block">Verify, when servicing an RPC, that the caller is the scanner owner.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requireTablePermission(java.lang.String,%20org.apache.hadoop.hbase.TableName,%20byte[],%20byte[],%20org.apache.hadoop.hbase.security.access.Permission.Action...)">requireTablePermission</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
                                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1302,7 +1310,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
  given table, column family and column qualifier.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#revoke(com.google.protobuf.RpcController,%20org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos.RevokeRequest,%20com.google.protobuf.RpcCallback)">revoke</a></strong>(com.google.protobuf.RpcController&nbsp;controller,
             org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos.RevokeRequest&nbsp;request,
@@ -1310,15 +1318,15 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <div class="block"><code>rpc Revoke(.hbase.pb.RevokeRequest) returns (.hbase.pb.RevokeResponse);</code></div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#start(org.apache.hadoop.hbase.CoprocessorEnvironment)">start</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#stop(org.apache.hadoop.hbase.CoprocessorEnvironment)">stop</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#updateACL(org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment,%20java.util.Map)">updateACL</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&nbsp;e,
                   <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/7/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/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;&nbsp;familyMap)</code>
@@ -1332,7 +1340,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.coprocessor.<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html" title="class in org.apache.hadoop.hbase.coprocessor">BaseMasterAndRegionObserver</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAddColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postAddColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAddColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postAddColumnFamily</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAddColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postAddColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAddColumnHandler(org.apache.hadoop.hbase.coprocessor.Obser
 verContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postAddColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAssign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">postAssign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postBalance(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postBalance</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postBalanceSwitch(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20boolean,%20boolean)">postBalanceSwitch</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postCloneSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org
 .apache.hadoop.hbase.HTableDescriptor)">postCloneSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postCreateNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postCreateNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postCreateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">postCreateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">postDeleteColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org
 .apache.hadoop.hbase.TableName,%20byte[])">postDeleteColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">postDeleteColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">postDeleteSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postDeleteTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDisableTable(org.apache.hadoop.hbase.coprocessor.ObserverCon
 text,%20org.apache.hadoop.hbase.TableName)">postDisableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDisableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postDisableTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postEnableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postEnableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postGetNamespaceDescriptor(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postG
 etNamespaceDescriptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postListSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">postListSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamily</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumnFamilyHandler(org.apache.hadoop.hbase
 .coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postModifyNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTableHandler</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">postMove</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postRegionOffline(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">postRegionOffline</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postRestoreSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postRestoreSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetNamespaceQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apach
 e.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetNamespaceQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetTableQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetTableQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/cop
 rocessor/BaseMasterAndRegionObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postTableFlush(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postTableFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postTruncateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">pos
 tTruncateTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postUnassign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20boolean)">postUnassign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAddColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAddColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAddColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoo
 p.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preCreateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteColumnHandler(org.apache
 .hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDeleteTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDisableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDisableTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preEnableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preEnableTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preGetTableNames(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20
 java.util.List,%20java.lang.String)">preGetTableNames</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preListNamespaceDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">preListNamespaceDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preMasterInitialization(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preMasterInitialization</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preModifyColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preModifyColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preModifyColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hb
 ase.HColumnDescriptor)">preModifyColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preModifyColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preModifyColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preModifyTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">preModifyTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preTruncateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preTruncateTableHandler</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAddColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postAddColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAddColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postAddColumnFamily</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAddColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postAddColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAddColumnHandler(org.apache.hadoop.hbase.coprocessor.Obser
 verContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postAddColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postAssign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">postAssign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postBalance(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postBalance</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postBalanceSwitch(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20boolean,%20boolean)">postBalanceSwitch</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postCloneSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org
 .apache.hadoop.hbase.HTableDescriptor)">postCloneSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postCreateNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postCreateNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postCreateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">postCreateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">postDeleteColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org
 .apache.hadoop.hbase.TableName,%20byte[])">postDeleteColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">postDeleteColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">postDeleteSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDeleteTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postDeleteTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDisableTable(org.apache.hadoop.hbase.coprocessor.ObserverCon
 text,%20org.apache.hadoop.hbase.TableName)">postDisableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDisableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postDisableTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postEnableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postEnableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.
 TableName)">postEnableTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postGetNamespaceDescriptor(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postGetNamespaceDescriptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postListSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">postListSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumnFamily(org.apache.hadoop.hbase.coprocessor.Observer
 Context,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamily</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postModifyNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/co
 processor/BaseMasterAndRegionObserver.html#postModifyTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">postMove</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postRegionOffline(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">postRegionOffline</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postRestoreSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20o
 rg.apache.hadoop.hbase.HTableDescriptor)">postRestoreSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetNamespaceQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetNamespaceQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetTableQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetTableQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndReg
 ionObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postTableFlush(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20or
 g.apache.hadoop.hbase.TableName)">postTableFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postTruncateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postTruncateTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postUnassign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20boolean)">postUnassign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAddColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAddColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableN
 ame,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAddColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preCreateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteColumnFamilyHan
 dler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDeleteTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDisableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDisableTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preEnableTableHandler(org.apache.hadoop
 .hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preEnableTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preGetTableNames(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.lang.String)">preGetTableNames</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preListNamespaceDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">preListNamespaceDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preMasterInitialization(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preMasterInitialization</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preModifyColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDe
 scriptor)">preModifyColumn</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preModifyColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preModifyColumnFamilyHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preModifyColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preModifyColumnHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preModifyTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">preModifyTableHandler</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preTruncate
 TableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preTruncateTableHandler</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods_inherited_from_class_org.apache.hadoop.hbase.coprocessor.BaseRegionObserver">
@@ -4004,13 +4012,36 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <dd><code><a href="http://docs.oracle.com/javase/7/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="preDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext, org.apache.hadoop.hbase.HRegionInfo, org.apache.hadoop.hbase.HRegionInfo)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>preDispatchMerge</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.html#line.2533">preDispatchMerge</a>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                    <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                    <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="clas

<TRUNCATED>

[43/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/ObserverContext.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/ObserverContext.html b/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/ObserverContext.html
index 609d577..e3f8993 100644
--- a/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/ObserverContext.html
+++ b/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/ObserverContext.html
@@ -853,39 +853,59 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                                  <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                                  <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                                  <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                                  <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
+                                  <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                                  <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)</code>
+<div class="block">called after dispatching the region merge request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postEnableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTable</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postEnableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTable</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTable</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the enableTable operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postEnableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTableHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postEnableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTableHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTableHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the enableTable operation has been requested.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">EndpointObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/EndpointObserver.html#postEndpointInvocation(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20com.google.protobuf.Service,%20java.lang.String,%20com.google.protobuf.Message,%20com.google.protobuf.Message.Builder)">postEndpointInvocation</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             com.google.protobuf.Service&nbsp;service,
@@ -895,7 +915,7 @@
 <div class="block">Called after an Endpoint service method is invoked.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="strong">RegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postExists(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.client.Get,%20boolean)">postExists</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                     <a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get,
@@ -903,13 +923,13 @@
 <div class="block">Called after the client tests for existence using a Get.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="strong">BaseRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.html#postExists(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.client.Get,%20boolean)">postExists</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
                     <a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get,
                     boolean&nbsp;exists)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">RegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postFlush(org.apache.hadoop.hbase.coprocessor.ObserverContext)">postFlush</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;
@@ -917,11 +937,11 @@
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.html#postFlush(org.apache.hadoop.hbase.coprocessor.ObserverContext)">postFlush</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">RegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postFlush(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.regionserver.Store,%20org.apache.hadoop.hbase.regionserver.StoreFile)">postFlush</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
@@ -929,30 +949,30 @@
 <div class="block">Called after a Store's memstore is flushed to disk.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.html#postFlush(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.regionserver.Store,%20org.apache.hadoop.hbase.regionserver.StoreFile)">postFlush</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/StoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFile</a>&nbsp;resultFile)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postGetNamespaceDescriptor(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postGetNamespaceDescriptor</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                     <a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postGetNamespaceDescriptor(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postGetNamespaceDescriptor</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                     <a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetNamespaceDescriptor(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postGetNamespaceDescriptor</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                     <a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
 <div class="block">Called after a getNamespaceDescriptor request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">RegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postGetOp(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.client.Get,%20java.util.List)">postGetOp</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                   <a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get,
@@ -960,27 +980,27 @@
 <div class="block">Called after the client performs a Get</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.html#postGetOp(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.client.Get,%20java.util.List)">postGetOp</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
                   <a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get,
                   <a href="http://docs.oracle.com/javase/7/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/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;results)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postGetTableDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.util.List,%20java.lang.String)">postGetTableDescriptors</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                               <a href="http://docs.oracle.com/javase/7/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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNamesList,
                                               <a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
                                               <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postGetTableDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.util.List,%20java.lang.String)">postGetTableDescriptors</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                               <a href="http://docs.oracle.com/javase/7/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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNamesList,
                                               <a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
                                               <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.util.List,%20java.lang.String)">postGetTableDescriptors</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                               <a href="http://docs.oracle.com/javase/7/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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNamesList,
@@ -989,19 +1009,19 @@
 <div class="block">Called after a getTableDescriptors request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postGetTableNames(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.lang.String)">postGetTableNames</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
                                   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postGetTableNames(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.lang.String)">postGetTableNames</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
                                   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableNames(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.lang.String)">postGetTableNames</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
@@ -1009,7 +1029,7 @@
 <div class="block">Called after a getTableNames request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
 <td class="colLast"><span class="strong">RegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postIncrement(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.client.Increment,%20org.apache.hadoop.hbase.client.Result)">postIncrement</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                           <a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a>&nbsp;increment,
@@ -1017,13 +1037,13 @@
 <div class="block">Called after increment</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
 <td class="colLast"><span class="strong">BaseRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.html#postIncrement(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.client.Increment,%20org.apache.hadoop.hbase.client.Result)">postIncrement</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
                           <a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a>&nbsp;increment,
                           <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;result)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><span class="strong">RegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postIncrementColumnValue(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20byte[],%20byte[],%20byte[],%20long,%20boolean,%20long)">postIncrementColumnValue</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                                                 byte[]&nbsp;row,
@@ -1037,7 +1057,7 @@
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><span class="strong">BaseRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.html#postIncrementColumnValue(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20byte[],%20byte[],%20byte[],%20long,%20boolean,%20long)">postIncrementColumnValue</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
                                                 byte[]&nbsp;row,
@@ -1047,80 +1067,80 @@
                                                 boolean&nbsp;writeToWAL,
                                                 long&nbsp;result)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/DeleteTracker.html" title="interface in org.apache.hadoop.hbase.regionserver">DeleteTracker</a></code></td>
 <td class="colLast"><span class="strong">RegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postInstantiateDeleteTracker(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.regionserver.DeleteTracker)">postInstantiateDeleteTracker</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                         <a href="../../../../../../org/apache/hadoop/hbase/regionserver/DeleteTracker.html" title="interface in org.apache.hadoop.hbase.regionserver">DeleteTracker</a>&nbsp;delTracker)</code>
 <div class="block">Called after the ScanQueryMatcher creates ScanDeleteTracker.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/DeleteTracker.html" title="interface in org.apache.hadoop.hbase.regionserver">DeleteTracker</a></code></td>
 <td class="colLast"><span class="strong">BaseRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.html#postInstantiateDeleteTracker(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.regionserver.DeleteTracker)">postInstantiateDeleteTracker</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                         <a href="../../../../../../org/apache/hadoop/hbase/regionserver/DeleteTracker.html" title="interface in org.apache.hadoop.hbase.regionserver">DeleteTracker</a>&nbsp;delTracker)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postListNamespaceDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListNamespaceDescriptors</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                         <a href="http://docs.oracle.com/javase/7/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/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;&nbsp;descriptors)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postListNamespaceDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListNamespaceDescriptors</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                         <a href="http://docs.oracle.com/javase/7/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/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;&nbsp;descriptors)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListNamespaceDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListNamespaceDescriptors</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                         <a href="http://docs.oracle.com/javase/7/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/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;&nbsp;descriptors)</code>
 <div class="block">Called after a listNamespaceDescriptors request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postListProcedures(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListProcedures</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     <a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&gt;&nbsp;procInfoList)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postListProcedures(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListProcedures</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     <a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&gt;&nbsp;procInfoList)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListProcedures(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListProcedures</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     <a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&gt;&nbsp;procInfoList)</code>
 <div class="block">Called after a listProcedures request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postListSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">postListSnapshot</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postListSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">postListSnapshot</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">postListSnapshot</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)</code>
 <div class="block">Called after listSnapshots request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">RegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postLogReplay(org.apache.hadoop.hbase.coprocessor.ObserverContext)">postLogReplay</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c)</code>
 <div class="block">Called after the log replay on the region is over.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.html#postLogReplay(org.apache.hadoop.hbase.coprocessor.ObserverContext)">postLogReplay</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">RegionServerObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerObserver.html#postMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.regionserver.Region,%20org.apache.hadoop.hbase.regionserver.Region,%20org.apache.hadoop.hbase.regionserver.Region)">postMerge</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;c,
                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;regionA,
@@ -1129,14 +1149,14 @@
 <div class="block">called after the regions merge.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseRegionServerObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseRegionServerObserver.html#postMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.regionserver.Region,%20org.apache.hadoop.hbase.regionserver.Region,%20org.apache.hadoop.hbase.regionserver.Region)">postMerge</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;c,
                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;regionA,
                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;regionB,
                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;mergedRegion)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">RegionServerObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerObserver.html#postMergeCommit(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.regionserver.Region,%20org.apache.hadoop.hbase.regionserver.Region,%20org.apache.hadoop.hbase.regionserver.Region)">postMergeCommit</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;regionA,
@@ -1145,14 +1165,14 @@
 <div class="block">This will be called after PONR step as part of regions merge transaction.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseRegionServerObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseRegionServerObserver.html#postMergeCommit(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.regionserver.Region,%20org.apache.hadoop.hbase.regionserver.Region,%20org.apache.hadoop.hbase.regionserver.Region)">postMergeCommit</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;regionA,
                               <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;regionB,
                               <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;mergedRegion)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumn</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1160,7 +1180,7 @@
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumn</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1168,7 +1188,7 @@
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumn</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1180,19 +1200,19 @@
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamily</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                             <a href="../../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;columnFamily)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamily</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                             <a href="../../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;columnFamily)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamily</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1200,19 +1220,19 @@
 <div class="block">Called after the column family has been updated.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamilyHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                           <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                           <a href="../../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;columnFamily)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamilyHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                           <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                           <a href="../../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;columnFamily)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamilyHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                           <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1220,7 +1240,7 @@
 <div class="block">Called after the column family has been updated.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1228,7 +1248,7 @@
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1236,7 +1256,7 @@
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1248,36 +1268,36 @@
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postModifyNamespace</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                       <a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postModifyNamespace</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                       <a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postModifyNamespace</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                       <a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
 <div class="block">Called after the modifyNamespace operation has been requested.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTable</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                               <a href="../../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTable</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                               <a href="../../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTable</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1285,19 +1305,19 @@
 <div class="block">Called after the modifyTable operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTableHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                             <a href="../../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postModifyTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTableHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                             <a href="../../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTableHandler</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1305,21 +1325,21 @@
 <div class="block">Called after to modifying a table's properties.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">postMove</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
                 <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;srcServer,
                 <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;destServer)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.html#postMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">postMove</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
                 <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;srcServer,
                 <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;destServer)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">MasterObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">postMove</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
@@ -1328,7 +1348,7 @@
 <div class="block">Called after the region move has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
 <td class="colLast"><span class="strong">RegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postMutationBeforeWAL(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.coprocessor.RegionObserver.MutationType,%20org.apache.hadoop.hbase.client.Mutation,%20org.apache.hadoop.hbase.Cell,%20org.apache.hadoop.hbase.Cell)">postMutationBeforeWAL</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.MutationType.html" title="enum in org.apache.hadoop.hbase.coprocessor">RegionObserver.MutationType</a>&nbsp;opType,
@@ -1339,7 +1359,7 @@
  it is committed to the WAL or memstore.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
 <td class="colLast"><span class="strong">BaseRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.html#postMutationBeforeWAL(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.coprocessor.RegionObserver.MutationType,%20org.apache.hadoop.hbase.client.Mutation,%20org.apache.hadoop.hbase.Cell,%20org.apache.hadoop.hbase.Cell)">postMutationBeforeWAL</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.MutationType.html" title="enum in org.apache.hadoop.hbase.coprocessor">RegionObserver.MutationType</a>&nbsp;opType,
@@ -1347,17 +1367,17 @@
                                           <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;oldCell,
                                           <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;newCell)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">RegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postOpen(org.apache.hadoop.hbase.coprocessor.ObserverContext)">postOpen</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c)</code>
 <div class="block">Called after the region is reported as open to the master.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.html#postOpen(org.apache.hadoop.hbase.coprocessor.ObserverContext)">postOpen</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">RegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postPut(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.client.Put,%20org.apache.hadoop.hbase.regionserver.wal.WALEdit,%20org.apache.hadoop.hbase.client.Durability)">postPut</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
               <a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;put,
@@ -1366,31 +1386,31 @@
 <div class="block">Called after the client stores a value.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.html#postPut(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.client.Put,%20org.apache.hadoop.hbase.regionserver.wal.WALEdit,%20org.apache.hadoop.hbase.client.Durability)">postPut</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
               <a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;put,
               <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALEdit</a>&nbsp;edit,
               <a href="../../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;durability)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="strong">BaseMasterAndRegionObserver.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postRegionOffline(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">postRegionOffline</a></strong>(<a href="../../../

<TRUNCATED>

[47/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html b/devapidocs/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html
index ee56774..4c2c662 100644
--- a/devapidocs/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html
+++ b/devapidocs/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html
@@ -353,26 +353,34 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                                  <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                                  <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)</code>
+<div class="block">called after dispatching the region merge request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postEnableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the enableTable operation has been requested.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postEnableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postEnableTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the enableTable operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postGetNamespaceDescriptor(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postGetNamespaceDescriptor</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                     <a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
 <div class="block">Called after a getNamespaceDescriptor request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postGetTableDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.util.List,%20java.lang.String)">postGetTableDescriptors</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                               <a href="http://docs.oracle.com/javase/7/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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNamesList,
@@ -381,7 +389,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after a getTableDescriptors request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postGetTableNames(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List,%20java.lang.String)">postGetTableNames</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="http://docs.oracle.com/javase/7/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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&gt;&nbsp;descriptors,
@@ -389,28 +397,28 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after a getTableNames request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postListNamespaceDescriptors(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListNamespaceDescriptors</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                         <a href="http://docs.oracle.com/javase/7/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/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;&nbsp;descriptors)</code>
 <div class="block">Called after a listNamespaceDescriptors request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postListProcedures(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.util.List)">postListProcedures</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     <a href="http://docs.oracle.com/javase/7/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/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&gt;&nbsp;procInfoList)</code>
 <div class="block">Called after a listProcedures request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postListSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">postListSnapshot</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)</code>
 <div class="block">Called after listSnapshots request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumn</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -418,7 +426,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamily</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -426,7 +434,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the column family has been updated.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnFamilyHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                           <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -434,7 +442,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the column family has been updated.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">postModifyColumnHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -442,14 +450,14 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">postModifyNamespace</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                       <a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
 <div class="block">Called after the modifyNamespace operation has been requested.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -457,7 +465,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the modifyTable operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postModifyTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HTableDescriptor)">postModifyTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -465,7 +473,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after to modifying a table's properties.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postMove(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName)">postMove</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
@@ -474,14 +482,14 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the region move has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postRegionOffline(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">postRegionOffline</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>
 <div class="block">Called after the region has been marked offline.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postRestoreSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postRestoreSnapshot</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                       org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
@@ -489,7 +497,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after a snapshot restore operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetNamespaceQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetNamespaceQuota</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
@@ -497,7 +505,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the quota for the namespace is stored.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetTableQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetTableQuota</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -505,7 +513,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the quota for the table is stored.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -513,7 +521,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the quota for the user is stored.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20java.lang.String,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -522,7 +530,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the quota for the user on the specified namespace is stored.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSetUserQuota(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas)">postSetUserQuota</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -531,7 +539,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the quota for the user on the specified table is stored.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">postSnapshot</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
@@ -539,28 +547,28 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the snapshot operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postStartMaster(org.apache.hadoop.hbase.coprocessor.ObserverContext)">postStartMaster</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called immediately after an active master instance has completed
  initialization.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postTableFlush(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postTableFlush</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the table memstore is flushed to disk.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postTruncateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postTruncateTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the truncateTable operation has been requested.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postTruncateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">postTruncateTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                 <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
@@ -568,7 +576,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
  table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#postUnassign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20boolean)">postUnassign</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,
@@ -576,7 +584,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called after the region unassignment has been requested.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAbortProcedure(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.procedure2.ProcedureExecutor,%20long)">preAbortProcedure</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&gt;&nbsp;procEnv,
@@ -584,7 +592,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called before a abortProcedure request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAddColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumn</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -592,7 +600,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAddColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumnFamily</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -600,7 +608,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called prior to adding a new column family to the table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAddColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumnFamilyHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                   <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -608,7 +616,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called prior to adding a new column family to the table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAddColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.HColumnDescriptor)">preAddColumnHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                       <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -616,28 +624,28 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preAssign(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo)">preAssign</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>
 <div class="block">Called prior to assigning a specific region.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preBalance(org.apache.hadoop.hbase.coprocessor.ObserverContext)">preBalance</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called prior to requesting rebalancing of the cluster regions, though after
  the initial checks for regions in transition and the balance switch flag.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preBalanceSwitch(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20boolean)">preBalanceSwitch</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 boolean&nbsp;b)</code>
 <div class="block">Called prior to modifying the flag used to enable/disable region balancing.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preCloneSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription,%20org.apache.hadoop.hbase.HTableDescriptor)">preCloneSnapshot</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                 org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot,
@@ -645,7 +653,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called before a snapshot is cloned.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preCreateNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.NamespaceDescriptor)">preCreateNamespace</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     <a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
@@ -653,7 +661,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
  <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preCreateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;desc,
@@ -662,7 +670,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
  <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preCreateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HTableDescriptor,%20org.apache.hadoop.hbase.HRegionInfo[])">preCreateTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;desc,
@@ -671,7 +679,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
  <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteColumn(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumn</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -679,7 +687,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteColumnFamily(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumnFamily</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -687,7 +695,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called prior to deleting the entire column family.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteColumnFamilyHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumnFamilyHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                                         <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -695,7 +703,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block">Called prior to deleting the entire column family.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteColumnHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName,%20byte[])">preDeleteColumnHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -703,7 +711,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteNamespace(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20java.lang.String)">preDeleteNamespace</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace)</code>
@@ -712,14 +720,14 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
  It can't bypass the default action, e.g., ctx.bypass() won't have effect.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteSnapshot(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription)">preDeleteSnapshot</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshot)</code>
 <div class="block">Called before a snapshot is deleted.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDeleteTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
@@ -727,7 +735,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
  table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDeleteTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDeleteTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                           <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
@@ -735,20 +743,28 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
  table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDisableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDisableTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to disabling a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDisableTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preDisableTableHandler</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to disabling a table.</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">preDispatchMerge</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                                <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                                <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)</code>
+<div class="block">Called before dispatching region merge request.</div>
+</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#preEnableTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">preEnableTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
@@ -1085,13 +1101,54 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <dd><code><a href="http://docs.oracle.com/javase/7/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="preDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext, org.apache.hadoop.hbase.HRegionInfo, org.apache.hadoop.hbase.HRegionInfo)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>preDispatchMerge</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.57">preDispatchMerge</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                    <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                    <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)
+                      throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">MasterObserver</a></code></strong></div>
+<div class="block">Called before dispatching region merge request. 
+ It can't bypass the default action, e.g., ctx.bypass() won't have effect.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">preDispatchMerge</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ctx</code> - coprocessor environment</dd><dd><code>regionA</code> - first region to be merged</dd><dd><code>regionB</code> - second region to be merged</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if an error occurred on the coprocessor</dd></dl>
+</li>
+</ul>
+<a name="postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext, org.apache.hadoop.hbase.HRegionInfo, org.apache.hadoop.hbase.HRegionInfo)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>postDispatchMerge</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.62">postDispatchMerge</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                     <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionA,
+                     <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionB)
+                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">MasterObserver</a></code></strong></div>
+<div class="block">called after dispatching the region merge request.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDispatchMerge(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.HRegionInfo)">postDispatchMerge</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ctx</code> - coprocessor environment</dd><dd><code>regionA</code> - first region to be merged</dd><dd><code>regionB</code> - second region to be merged</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if an error occurred on the coprocessor</dd></dl>
+</li>
+</ul>
 <a name="preCreateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext, org.apache.hadoop.hbase.HTableDescriptor, org.apache.hadoop.hbase.HRegionInfo[])">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>preCreateTableHandler</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.57">preCreateTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.67">preCreateTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                          <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;desc,
                          <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>[]&nbsp;regions)
                            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1114,7 +1171,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>postCreateTableHandler</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.63">postCreateTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.73">postCreateTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                           <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;desc,
                           <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>[]&nbsp;regions)
                             throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1136,7 +1193,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>preDeleteTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.69">preDeleteTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.79">preDeleteTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                     throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">MasterObserver</a></code></strong></div>
@@ -1157,7 +1214,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>postDeleteTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.74">postDeleteTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.84">postDeleteTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                    <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                      throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">MasterObserver</a></code></strong></div>
@@ -1177,7 +1234,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>preDeleteTableHandler</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.79">preDeleteTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.89">preDeleteTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                          <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">MasterObserver</a></code></strong></div>
@@ -1199,7 +1256,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>postDeleteTableHandler</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.85">postDeleteTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.95">postDeleteTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                           <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                             throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">MasterObserver</a></code></strong></div>
@@ -1221,7 +1278,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>preTruncateTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.91">preTruncateTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.101">preTruncateTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                     <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">MasterObserver</a></code></strong></div>
@@ -1242,7 +1299,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>postTruncateTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.96">postTruncateTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.106">postTruncateTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                      <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTruncateTable(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">MasterObserver</a></code></strong></div>
@@ -1264,7 +1321,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>preTruncateTableHandler</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.101">preTruncateTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.111">preTruncateTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                            <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">MasterObserver</a></code></strong></div>
@@ -1286,7 +1343,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>postTruncateTableHandler</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.107">postTruncateTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.117">postTruncateTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                               throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTruncateTableHandler(org.apache.hadoop.hbase.coprocessor.ObserverContext,%20org.apache.hadoop.hbase.TableName)">MasterObserver</a></code></strong></div>
@@ -1308,7 +1365,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>preModifyTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.113">preModifyTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.123">preModifyTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                   <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)
                     throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1330,7 +1387,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>postModifyTableHandler</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.118">postModifyTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.128">postModifyTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                           <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                           <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)
                             throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1352,7 +1409,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>preModifyTableHandler</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.124">preModifyTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.134">preModifyTableHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                          <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                          <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)
                            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1374,7 +1431,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 <ul class="blockList">
 <li class="blockList">
 <h4>postModifyTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.html#line.130">postModifyTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="class in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache

<TRUNCATED>

[04/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html
index fc06682..f81d2d3 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html
@@ -244,734 +244,730 @@
 <span class="sourceLineNo">236</span>    return storeTracker;<a name="line.236"></a>
 <span class="sourceLineNo">237</span>  }<a name="line.237"></a>
 <span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>  public LinkedList&lt;ProcedureWALFile&gt; getActiveLogs() {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    return logs;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  }<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>  public Set&lt;ProcedureWALFile&gt; getCorruptedLogs() {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    return corruptedLogs;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  }<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>  @Override<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  public void recoverLease() throws IOException {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    lock.lock();<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    try {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      LOG.info("Starting WAL Procedure Store lease recovery");<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      FileStatus[] oldLogs = getLogFiles();<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      while (isRunning()) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>        // Get Log-MaxID and recover lease on old logs<a name="line.254"></a>
-<span class="sourceLineNo">255</span>        flushLogId = initOldLogs(oldLogs);<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>        // Create new state-log<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        if (!rollWriter(flushLogId + 1)) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>          // someone else has already created this log<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          LOG.debug("someone else has already created log " + flushLogId);<a name="line.260"></a>
-<span class="sourceLineNo">261</span>          continue;<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>        // We have the lease on the log<a name="line.264"></a>
-<span class="sourceLineNo">265</span>        oldLogs = getLogFiles();<a name="line.265"></a>
-<span class="sourceLineNo">266</span>        if (getMaxLogId(oldLogs) &gt; flushLogId) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>          if (LOG.isDebugEnabled()) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>            LOG.debug("Someone else created new logs. Expected maxLogId &lt; " + flushLogId);<a name="line.268"></a>
-<span class="sourceLineNo">269</span>          }<a name="line.269"></a>
-<span class="sourceLineNo">270</span>          logs.getLast().removeFile();<a name="line.270"></a>
-<span class="sourceLineNo">271</span>          continue;<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>        LOG.info("Lease acquired for flushLogId: " + flushLogId);<a name="line.274"></a>
-<span class="sourceLineNo">275</span>        break;<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    } finally {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      lock.unlock();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    }<a name="line.279"></a>
-<span class="sourceLineNo">280</span>  }<a name="line.280"></a>
-<span class="sourceLineNo">281</span><a name="line.281"></a>
-<span class="sourceLineNo">282</span>  @Override<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  public void load(final ProcedureLoader loader) throws IOException {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    if (logs.isEmpty()) {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      throw new RuntimeException("recoverLease() must be called before loading data");<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>    // Nothing to do, If we have only the current log.<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    if (logs.size() == 1) {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      if (LOG.isDebugEnabled()) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        LOG.debug("No state logs to replay.");<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>      loader.setMaxProcId(0);<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      loading.set(false);<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      return;<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>    // Load the old logs<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    final ArrayList&lt;ProcedureWALFile&gt; toRemove = new ArrayList&lt;ProcedureWALFile&gt;();<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    Iterator&lt;ProcedureWALFile&gt; it = logs.descendingIterator();<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    it.next(); // Skip the current log<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    try {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      ProcedureWALFormat.load(it, storeTracker, new ProcedureWALFormat.Loader() {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>        @Override<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        public void setMaxProcId(long maxProcId) {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>          loader.setMaxProcId(maxProcId);<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<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        public void load(ProcedureIterator procIter) throws IOException {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>          loader.load(procIter);<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 void handleCorrupted(ProcedureIterator procIter) throws IOException {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>          loader.handleCorrupted(procIter);<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 void removeLog(ProcedureWALFile log) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          toRemove.add(log);<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>        @Override<a name="line.324"></a>
-<span class="sourceLineNo">325</span>        public void markCorruptedWAL(ProcedureWALFile log, IOException e) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>          if (corruptedLogs == null) {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>            corruptedLogs = new HashSet&lt;ProcedureWALFile&gt;();<a name="line.327"></a>
-<span class="sourceLineNo">328</span>          }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>          corruptedLogs.add(log);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>          // TODO: sideline corrupted log<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>    } finally {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      if (!toRemove.isEmpty()) {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        for (ProcedureWALFile log: toRemove) {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>          removeLogFile(log);<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>      loading.set(false);<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">239</span>  public ArrayList&lt;ProcedureWALFile&gt; getActiveLogs() {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    lock.lock();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    try {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      return new ArrayList&lt;ProcedureWALFile&gt;(logs);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    } finally {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      lock.unlock();<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><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  public Set&lt;ProcedureWALFile&gt; getCorruptedLogs() {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    return corruptedLogs;<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>  @Override<a name="line.252"></a>
+<span class="sourceLineNo">253</span>  public void recoverLease() throws IOException {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    lock.lock();<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    try {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      LOG.info("Starting WAL Procedure Store lease recovery");<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      FileStatus[] oldLogs = getLogFiles();<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      while (isRunning()) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        // Get Log-MaxID and recover lease on old logs<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        flushLogId = initOldLogs(oldLogs);<a name="line.260"></a>
+<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">262</span>        // Create new state-log<a name="line.262"></a>
+<span class="sourceLineNo">263</span>        if (!rollWriter(flushLogId + 1)) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>          // someone else has already created this log<a name="line.264"></a>
+<span class="sourceLineNo">265</span>          LOG.debug("someone else has already created log " + flushLogId);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>          continue;<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>        // We have the lease on the log<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        oldLogs = getLogFiles();<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        if (getMaxLogId(oldLogs) &gt; flushLogId) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          if (LOG.isDebugEnabled()) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            LOG.debug("Someone else created new logs. Expected maxLogId &lt; " + flushLogId);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>          logs.getLast().removeFile();<a name="line.275"></a>
+<span class="sourceLineNo">276</span>          continue;<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        }<a name="line.277"></a>
+<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">279</span>        LOG.info("Lease acquired for flushLogId: " + flushLogId);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>        break;<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      }<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    } finally {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      lock.unlock();<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  }<a name="line.285"></a>
+<span class="sourceLineNo">286</span><a name="line.286"></a>
+<span class="sourceLineNo">287</span>  @Override<a name="line.287"></a>
+<span class="sourceLineNo">288</span>  public void load(final ProcedureLoader loader) throws IOException {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    if (logs.isEmpty()) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      throw new RuntimeException("recoverLease() must be called before loading data");<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>    // Nothing to do, If we have only the current log.<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    if (logs.size() == 1) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>      if (LOG.isDebugEnabled()) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>        LOG.debug("No state logs to replay.");<a name="line.296"></a>
+<span class="sourceLineNo">297</span>      }<a name="line.297"></a>
+<span class="sourceLineNo">298</span>      loader.setMaxProcId(0);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      loading.set(false);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      return;<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>    // Load the old logs<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    Iterator&lt;ProcedureWALFile&gt; it = logs.descendingIterator();<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    it.next(); // Skip the current log<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    try {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureWALFormat.load(it, storeTracker, new ProcedureWALFormat.Loader() {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        @Override<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        public void setMaxProcId(long maxProcId) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>          loader.setMaxProcId(maxProcId);<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>        @Override<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        public void load(ProcedureIterator procIter) throws IOException {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>          loader.load(procIter);<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>        @Override<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        public void handleCorrupted(ProcedureIterator procIter) throws IOException {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>          loader.handleCorrupted(procIter);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        }<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>        @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>        public void markCorruptedWAL(ProcedureWALFile log, IOException e) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>          if (corruptedLogs == null) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>            corruptedLogs = new HashSet&lt;ProcedureWALFile&gt;();<a name="line.326"></a>
+<span class="sourceLineNo">327</span>          }<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          corruptedLogs.add(log);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          // TODO: sideline corrupted log<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      });<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    } finally {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      loading.set(false);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
+<span class="sourceLineNo">338</span>  public void insert(final Procedure proc, final Procedure[] subprocs) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    if (LOG.isTraceEnabled()) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      LOG.trace("Insert " + proc + ", subproc=" + Arrays.toString(subprocs));<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    }<a name="line.341"></a>
 <span class="sourceLineNo">342</span><a name="line.342"></a>
-<span class="sourceLineNo">343</span>  @Override<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  public void insert(final Procedure proc, final Procedure[] subprocs) {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    if (LOG.isTraceEnabled()) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      LOG.trace("Insert " + proc + ", subproc=" + Arrays.toString(subprocs));<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    }<a name="line.347"></a>
-<span class="sourceLineNo">348</span><a name="line.348"></a>
-<span class="sourceLineNo">349</span>    ByteSlot slot = acquireSlot();<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    try {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      // Serialize the insert<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      long[] subProcIds = null;<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      if (subprocs != null) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>        ProcedureWALFormat.writeInsert(slot, proc, subprocs);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>        subProcIds = new long[subprocs.length];<a name="line.355"></a>
-<span class="sourceLineNo">356</span>        for (int i = 0; i &lt; subprocs.length; ++i) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>          subProcIds[i] = subprocs[i].getProcId();<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        }<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      } else {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        assert !proc.hasParent();<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        ProcedureWALFormat.writeInsert(slot, proc);<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>      // Push the transaction data and wait until it is persisted<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      pushData(PushType.INSERT, slot, proc.getProcId(), subProcIds);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    } catch (IOException e) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      // We are not able to serialize the procedure.<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      // this is a code error, and we are not able to go on.<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      LOG.fatal("Unable to serialize one of the procedure: proc=" + proc +<a name="line.369"></a>
-<span class="sourceLineNo">370</span>                ", subprocs=" + Arrays.toString(subprocs), e);<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      throw new RuntimeException(e);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    } finally {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      releaseSlot(slot);<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">343</span>    ByteSlot slot = acquireSlot();<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    try {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>      // Serialize the insert<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      long[] subProcIds = null;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      if (subprocs != null) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        ProcedureWALFormat.writeInsert(slot, proc, subprocs);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>        subProcIds = new long[subprocs.length];<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        for (int i = 0; i &lt; subprocs.length; ++i) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>          subProcIds[i] = subprocs[i].getProcId();<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      } else {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        assert !proc.hasParent();<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        ProcedureWALFormat.writeInsert(slot, proc);<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      }<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span>      // Push the transaction data and wait until it is persisted<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      pushData(PushType.INSERT, slot, proc.getProcId(), subProcIds);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    } catch (IOException e) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      // We are not able to serialize the procedure.<a name="line.361"></a>
+<span class="sourceLineNo">362</span>      // this is a code error, and we are not able to go on.<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      LOG.fatal("Unable to serialize one of the procedure: proc=" + proc +<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                ", subprocs=" + Arrays.toString(subprocs), e);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      throw new RuntimeException(e);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    } finally {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      releaseSlot(slot);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>  @Override<a name="line.371"></a>
+<span class="sourceLineNo">372</span>  public void update(final Procedure proc) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    if (LOG.isTraceEnabled()) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      LOG.trace("Update " + proc);<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
 <span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
-<span class="sourceLineNo">378</span>  public void update(final Procedure proc) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    if (LOG.isTraceEnabled()) {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      LOG.trace("Update " + proc);<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>    ByteSlot slot = acquireSlot();<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    try {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      // Serialize the update<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      ProcedureWALFormat.writeUpdate(slot, proc);<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>      // Push the transaction data and wait until it is persisted<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      pushData(PushType.UPDATE, slot, proc.getProcId(), null);<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    } catch (IOException e) {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      // We are not able to serialize the procedure.<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      // this is a code error, and we are not able to go on.<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      LOG.fatal("Unable to serialize the procedure: " + proc, e);<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      throw new RuntimeException(e);<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    } finally {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      releaseSlot(slot);<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">377</span>    ByteSlot slot = acquireSlot();<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    try {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      // Serialize the update<a name="line.379"></a>
+<span class="sourceLineNo">380</span>      ProcedureWALFormat.writeUpdate(slot, proc);<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>      // Push the transaction data and wait until it is persisted<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      pushData(PushType.UPDATE, slot, proc.getProcId(), null);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    } catch (IOException e) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      // We are not able to serialize the procedure.<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      // this is a code error, and we are not able to go on.<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      LOG.fatal("Unable to serialize the procedure: " + proc, e);<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      throw new RuntimeException(e);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    } finally {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      releaseSlot(slot);<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    }<a name="line.391"></a>
+<span class="sourceLineNo">392</span>  }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>  @Override<a name="line.394"></a>
+<span class="sourceLineNo">395</span>  public void delete(final long procId) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    if (LOG.isTraceEnabled()) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>      LOG.trace("Delete " + procId);<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>  @Override<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  public void delete(final long procId) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    if (LOG.isTraceEnabled()) {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      LOG.trace("Delete " + procId);<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>    ByteSlot slot = acquireSlot();<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    try {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      // Serialize the delete<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      ProcedureWALFormat.writeDelete(slot, procId);<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>      // Push the transaction data and wait until it is persisted<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      pushData(PushType.DELETE, slot, procId, null);<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    } catch (IOException e) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      // We are not able to serialize the procedure.<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      // this is a code error, and we are not able to go on.<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      LOG.fatal("Unable to serialize the procedure: " + procId, e);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      throw new RuntimeException(e);<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    } finally {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      releaseSlot(slot);<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>  private ByteSlot acquireSlot() {<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    ByteSlot slot = slotsCache.poll();<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    return slot != null ? slot : new ByteSlot();<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>  private void releaseSlot(final ByteSlot slot) {<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    slot.reset();<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    slotsCache.offer(slot);<a name="line.430"></a>
-<span class="sourceLineNo">431</span>  }<a name="line.431"></a>
-<span class="sourceLineNo">432</span><a name="line.432"></a>
-<span class="sourceLineNo">433</span>  private enum PushType { INSERT, UPDATE, DELETE };<a name="line.433"></a>
-<span class="sourceLineNo">434</span><a name="line.434"></a>
-<span class="sourceLineNo">435</span>  private long pushData(final PushType type, final ByteSlot slot,<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      final long procId, final long[] subProcIds) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    if (!isRunning()) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      throw new RuntimeException("the store must be running before inserting data");<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    }<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    if (logs.isEmpty()) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      throw new RuntimeException("recoverLease() must be called before inserting data");<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>    long logId = -1;<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    lock.lock();<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    try {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      // Wait for the sync to be completed<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      while (true) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>        if (!isRunning()) {<a name="line.449"></a>
-<span class="sourceLineNo">450</span>          throw new RuntimeException("store no longer running");<a name="line.450"></a>
-<span class="sourceLineNo">451</span>        } else if (isSyncAborted()) {<a name="line.451"></a>
-<span class="sourceLineNo">452</span>          throw new RuntimeException("sync aborted", syncException.get());<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        } else if (inSync.get()) {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>          syncCond.await();<a name="line.454"></a>
-<span class="sourceLineNo">455</span>        } else if (slotIndex == slots.length) {<a name="line.455"></a>
-<span class="sourceLineNo">456</span>          slotCond.signal();<a name="line.456"></a>
-<span class="sourceLineNo">457</span>          syncCond.await();<a name="line.457"></a>
-<span class="sourceLineNo">458</span>        } else {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>          break;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>        }<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      }<a name="line.461"></a>
-<span class="sourceLineNo">462</span><a name="line.462"></a>
-<span class="sourceLineNo">463</span>      updateStoreTracker(type, procId, subProcIds);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      slots[slotIndex++] = slot;<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      logId = flushLogId;<a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>      // Notify that there is new data<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      if (slotIndex == 1) {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>        waitCond.signal();<a name="line.469"></a>
+<span class="sourceLineNo">400</span>    ByteSlot slot = acquireSlot();<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    try {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>      // Serialize the delete<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      ProcedureWALFormat.writeDelete(slot, procId);<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>      // Push the transaction data and wait until it is persisted<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      pushData(PushType.DELETE, slot, procId, null);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    } catch (IOException e) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>      // We are not able to serialize the procedure.<a name="line.408"></a>
+<span class="sourceLineNo">409</span>      // this is a code error, and we are not able to go on.<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      LOG.fatal("Unable to serialize the procedure: " + procId, e);<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      throw new RuntimeException(e);<a name="line.411"></a>
+<span class="sourceLineNo">412</span>    } finally {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      releaseSlot(slot);<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    }<a name="line.414"></a>
+<span class="sourceLineNo">415</span>  }<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span>  private ByteSlot acquireSlot() {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    ByteSlot slot = slotsCache.poll();<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    return slot != null ? slot : new ByteSlot();<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>  private void releaseSlot(final ByteSlot slot) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    slot.reset();<a name="line.423"></a>
+<span class="sourceLineNo">424</span>    slotsCache.offer(slot);<a name="line.424"></a>
+<span class="sourceLineNo">425</span>  }<a name="line.425"></a>
+<span class="sourceLineNo">426</span><a name="line.426"></a>
+<span class="sourceLineNo">427</span>  private enum PushType { INSERT, UPDATE, DELETE };<a name="line.427"></a>
+<span class="sourceLineNo">428</span><a name="line.428"></a>
+<span class="sourceLineNo">429</span>  private long pushData(final PushType type, final ByteSlot slot,<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      final long procId, final long[] subProcIds) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    if (!isRunning()) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      throw new RuntimeException("the store must be running before inserting data");<a name="line.432"></a>
+<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    if (logs.isEmpty()) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      throw new RuntimeException("recoverLease() must be called before inserting data");<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    }<a name="line.436"></a>
+<span class="sourceLineNo">437</span><a name="line.437"></a>
+<span class="sourceLineNo">438</span>    long logId = -1;<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    lock.lock();<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    try {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      // Wait for the sync to be completed<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      while (true) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        if (!isRunning()) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>          throw new RuntimeException("store no longer running");<a name="line.444"></a>
+<span class="sourceLineNo">445</span>        } else if (isSyncAborted()) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>          throw new RuntimeException("sync aborted", syncException.get());<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        } else if (inSync.get()) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>          syncCond.await();<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        } else if (slotIndex == slots.length) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>          slotCond.signal();<a name="line.450"></a>
+<span class="sourceLineNo">451</span>          syncCond.await();<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        } else {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>          break;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        }<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>      updateStoreTracker(type, procId, subProcIds);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>      slots[slotIndex++] = slot;<a name="line.458"></a>
+<span class="sourceLineNo">459</span>      logId = flushLogId;<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>      // Notify that there is new data<a name="line.461"></a>
+<span class="sourceLineNo">462</span>      if (slotIndex == 1) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        waitCond.signal();<a name="line.463"></a>
+<span class="sourceLineNo">464</span>      }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>      // Notify that the slots are full<a name="line.466"></a>
+<span class="sourceLineNo">467</span>      if (slotIndex == slots.length) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>        waitCond.signal();<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        slotCond.signal();<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>      // Notify that the slots are full<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      if (slotIndex == slots.length) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        waitCond.signal();<a name="line.474"></a>
-<span class="sourceLineNo">475</span>        slotCond.signal();<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>      syncCond.await();<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    } catch (InterruptedException e) {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      Thread.currentThread().interrupt();<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      sendAbortProcessSignal();<a name="line.481"></a>
-<span class="sourceLineNo">482</span>      throw new RuntimeException(e);<a name="line.482"></a>
-<span class="sourceLineNo">483</span>    } finally {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      lock.unlock();<a name="line.484"></a>
-<span class="sourceLineNo">485</span>      if (isSyncAborted()) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>        throw new RuntimeException("sync aborted", syncException.get());<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      }<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    }<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    return logId;<a name="line.489"></a>
-<span class="sourceLineNo">490</span>  }<a name="line.490"></a>
-<span class="sourceLineNo">491</span><a name="line.491"></a>
-<span class="sourceLineNo">492</span>  private void updateStoreTracker(final PushType type,<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      final long procId, final long[] subProcIds) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    switch (type) {<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      case INSERT:<a name="line.495"></a>
-<span class="sourceLineNo">496</span>        if (subProcIds == null) {<a name="line.496"></a>
-<span class="sourceLineNo">497</span>          storeTracker.insert(procId);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>        } else {<a name="line.498"></a>
-<span class="sourceLineNo">499</span>          storeTracker.insert(procId, subProcIds);<a name="line.499"></a>
-<span class="sourceLineNo">500</span>        }<a name="line.500"></a>
+<span class="sourceLineNo">472</span>      syncCond.await();<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    } catch (InterruptedException e) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>      Thread.currentThread().interrupt();<a name="line.474"></a>
+<span class="sourceLineNo">475</span>      sendAbortProcessSignal();<a name="line.475"></a>
+<span class="sourceLineNo">476</span>      throw new RuntimeException(e);<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    } finally {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>      lock.unlock();<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      if (isSyncAborted()) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        throw new RuntimeException("sync aborted", syncException.get());<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      }<a name="line.481"></a>
+<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
+<span class="sourceLineNo">483</span>    return logId;<a name="line.483"></a>
+<span class="sourceLineNo">484</span>  }<a name="line.484"></a>
+<span class="sourceLineNo">485</span><a name="line.485"></a>
+<span class="sourceLineNo">486</span>  private void updateStoreTracker(final PushType type,<a name="line.486"></a>
+<span class="sourceLineNo">487</span>      final long procId, final long[] subProcIds) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>    switch (type) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>      case INSERT:<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        if (subProcIds == null) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>          storeTracker.insert(procId);<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        } else {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>          storeTracker.insert(procId, subProcIds);<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        }<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        break;<a name="line.495"></a>
+<span class="sourceLineNo">496</span>      case UPDATE:<a name="line.496"></a>
+<span class="sourceLineNo">497</span>        storeTracker.update(procId);<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        break;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>      case DELETE:<a name="line.499"></a>
+<span class="sourceLineNo">500</span>        storeTracker.delete(procId);<a name="line.500"></a>
 <span class="sourceLineNo">501</span>        break;<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      case UPDATE:<a name="line.502"></a>
-<span class="sourceLineNo">503</span>        storeTracker.update(procId);<a name="line.503"></a>
-<span class="sourceLineNo">504</span>        break;<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      case DELETE:<a name="line.505"></a>
-<span class="sourceLineNo">506</span>        storeTracker.delete(procId);<a name="line.506"></a>
-<span class="sourceLineNo">507</span>        break;<a name="line.507"></a>
-<span class="sourceLineNo">508</span>      default:<a name="line.508"></a>
-<span class="sourceLineNo">509</span>        throw new RuntimeException("invalid push type " + type);<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    }<a name="line.510"></a>
-<span class="sourceLineNo">511</span>  }<a name="line.511"></a>
-<span class="sourceLineNo">512</span><a name="line.512"></a>
-<span class="sourceLineNo">513</span>  private boolean isSyncAborted() {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>    return syncException.get() != null;<a name="line.514"></a>
-<span class="sourceLineNo">515</span>  }<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>  private void syncLoop() throws Throwable {<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    inSync.set(false);<a name="line.518"></a>
-<span class="sourceLineNo">519</span>    lock.lock();<a name="line.519"></a>
-<span class="sourceLineNo">520</span>    try {<a name="line.520"></a>
-<span class="sourceLineNo">521</span>      while (isRunning()) {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>        try {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>          // Wait until new data is available<a name="line.523"></a>
-<span class="sourceLineNo">524</span>          if (slotIndex == 0) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>            if (!loading.get()) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>              periodicRoll();<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>            if (LOG.isTraceEnabled()) {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>              float rollTsSec = getMillisFromLastRoll() / 1000.0f;<a name="line.530"></a>
-<span class="sourceLineNo">531</span>              LOG.trace(String.format("Waiting for data. flushed=%s (%s/sec)",<a name="line.531"></a>
-<span class="sourceLineNo">532</span>                        StringUtils.humanSize(totalSynced.get()),<a name="line.532"></a>
-<span class="sourceLineNo">533</span>                        StringUtils.humanSize(totalSynced.get() / rollTsSec)));<a name="line.533"></a>
+<span class="sourceLineNo">502</span>      default:<a name="line.502"></a>
+<span class="sourceLineNo">503</span>        throw new RuntimeException("invalid push type " + type);<a name="line.503"></a>
+<span class="sourceLineNo">504</span>    }<a name="line.504"></a>
+<span class="sourceLineNo">505</span>  }<a name="line.505"></a>
+<span class="sourceLineNo">506</span><a name="line.506"></a>
+<span class="sourceLineNo">507</span>  private boolean isSyncAborted() {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>    return syncException.get() != null;<a name="line.508"></a>
+<span class="sourceLineNo">509</span>  }<a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span>  private void syncLoop() throws Throwable {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>    inSync.set(false);<a name="line.512"></a>
+<span class="sourceLineNo">513</span>    lock.lock();<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    try {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>      while (isRunning()) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        try {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>          // Wait until new data is available<a name="line.517"></a>
+<span class="sourceLineNo">518</span>          if (slotIndex == 0) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>            if (!loading.get()) {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>              periodicRoll();<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>            if (LOG.isTraceEnabled()) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>              float rollTsSec = getMillisFromLastRoll() / 1000.0f;<a name="line.524"></a>
+<span class="sourceLineNo">525</span>              LOG.trace(String.format("Waiting for data. flushed=%s (%s/sec)",<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                        StringUtils.humanSize(totalSynced.get()),<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                        StringUtils.humanSize(totalSynced.get() / rollTsSec)));<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>            waitCond.await(getMillisToNextPeriodicRoll(), TimeUnit.MILLISECONDS);<a name="line.530"></a>
+<span class="sourceLineNo">531</span>            if (slotIndex == 0) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>              // no data.. probably a stop() or a periodic roll<a name="line.532"></a>
+<span class="sourceLineNo">533</span>              continue;<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>            waitCond.await(getMillisToNextPeriodicRoll(), TimeUnit.MILLISECONDS);<a name="line.536"></a>
-<span class="sourceLineNo">537</span>            if (slotIndex == 0) {<a name="line.537"></a>
-<span class="sourceLineNo">538</span>              // no data.. probably a stop() or a periodic roll<a name="line.538"></a>
-<span class="sourceLineNo">539</span>              continue;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>            }<a name="line.540"></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>          // Wait SYNC_WAIT_MSEC or the signal of "slots full" before flushing<a name="line.537"></a>
+<span class="sourceLineNo">538</span>          long syncWaitSt = System.currentTimeMillis();<a name="line.538"></a>
+<span class="sourceLineNo">539</span>          if (slotIndex != slots.length) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>            slotCond.await(syncWaitMsec, TimeUnit.MILLISECONDS);<a name="line.540"></a>
 <span class="sourceLineNo">541</span>          }<a name="line.541"></a>
-<span class="sourceLineNo">542</span><a name="line.542"></a>
-<span class="sourceLineNo">543</span>          // Wait SYNC_WAIT_MSEC or the signal of "slots full" before flushing<a name="line.543"></a>
-<span class="sourceLineNo">544</span>          long syncWaitSt = System.currentTimeMillis();<a name="line.544"></a>
-<span class="sourceLineNo">545</span>          if (slotIndex != slots.length) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>            slotCond.await(syncWaitMsec, TimeUnit.MILLISECONDS);<a name="line.546"></a>
-<span class="sourceLineNo">547</span>          }<a name="line.547"></a>
-<span class="sourceLineNo">548</span>          long syncWaitMs = System.currentTimeMillis() - syncWaitSt;<a name="line.548"></a>
-<span class="sourceLineNo">549</span>          if (LOG.isTraceEnabled() &amp;&amp; (syncWaitMs &gt; 10 || slotIndex &lt; slots.length)) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>            float rollSec = getMillisFromLastRoll() / 1000.0f;<a name="line.550"></a>
-<span class="sourceLineNo">551</span>            LOG.trace(String.format("Sync wait %s, slotIndex=%s , totalSynced=%s (%s/sec)",<a name="line.551"></a>
-<span class="sourceLineNo">552</span>                      StringUtils.humanTimeDiff(syncWaitMs), slotIndex,<a name="line.552"></a>
-<span class="sourceLineNo">553</span>                      StringUtils.humanSize(totalSynced.get()),<a name="line.553"></a>
-<span class="sourceLineNo">554</span>                      StringUtils.humanSize(totalSynced.get() / rollSec)));<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>          inSync.set(true);<a name="line.557"></a>
-<span class="sourceLineNo">558</span>          totalSynced.addAndGet(syncSlots());<a name="line.558"></a>
-<span class="sourceLineNo">559</span>          slotIndex = 0;<a name="line.559"></a>
-<span class="sourceLineNo">560</span>          inSync.set(false);<a name="line.560"></a>
-<span class="sourceLineNo">561</span>        } catch (InterruptedException e) {<a name="line.561"></a>
-<span class="sourceLineNo">562</span>          Thread.currentThread().interrupt();<a name="line.562"></a>
-<span class="sourceLineNo">563</span>          sendAbortProcessSignal();<a name="line.563"></a>
-<span class="sourceLineNo">564</span>          syncException.compareAndSet(null, e);<a name="line.564"></a>
-<span class="sourceLineNo">565</span>          throw e;<a name="line.565"></a>
-<span class="sourceLineNo">566</span>        } catch (Throwable t) {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>          syncException.compareAndSet(null, t);<a name="line.567"></a>
-<span class="sourceLineNo">568</span>          throw t;<a name="line.568"></a>
-<span class="sourceLineNo">569</span>        } finally {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>          syncCond.signalAll();<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        }<a name="line.571"></a>
-<span class="sourceLineNo">572</span>      }<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    } finally {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      lock.unlock();<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>  }<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>  private long syncSlots() throws Throwable {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    int retry = 0;<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    int logRolled = 0;<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    long totalSynced = 0;<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    do {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      try {<a name="line.583"></a>
-<span class="sourceLineNo">584</span>        totalSynced = syncSlots(stream, slots, 0, slotIndex);<a name="line.584"></a>
-<span class="sourceLineNo">585</span>        break;<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      } catch (Throwable e) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>        if (++retry &gt;= maxRetriesBeforeRoll) {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>          if (logRolled &gt;= maxSyncFailureRoll) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>            LOG.error("Sync slots after log roll failed, abort.", e);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>            sendAbortProcessSignal();<a name="line.590"></a>
-<span class="sourceLineNo">591</span>            throw e;<a name="line.591"></a>
-<span class="sourceLineNo">592</span>          }<a name="line.592"></a>
-<span class="sourceLineNo">593</span><a name="line.593"></a>
-<span class="sourceLineNo">594</span>          if (!rollWriterOrDie()) {<a name="line.594"></a>
-<span class="sourceLineNo">595</span>            throw e;<a name="line.595"></a>
-<span class="sourceLineNo">596</span>          }<a name="line.596"></a>
-<span class="sourceLineNo">597</span><a name="line.597"></a>
-<span class="sourceLineNo">598</span>          logRolled++;<a name="line.598"></a>
-<span class="sourceLineNo">599</span>          retry = 0;<a name="line.599"></a>
-<span class="sourceLineNo">600</span>        }<a name="line.600"></a>
-<span class="sourceLineNo">601</span>      }<a name="line.601"></a>
-<span class="sourceLineNo">602</span>    } while (isRunning());<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    return totalSynced;<a name="line.603"></a>
-<span class="sourceLineNo">604</span>  }<a name="line.604"></a>
-<span class="sourceLineNo">605</span><a name="line.605"></a>
-<span class="sourceLineNo">606</span>  protected long syncSlots(FSDataOutputStream stream, ByteSlot[] slots, int offset, int count)<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      throws IOException {<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    long totalSynced = 0;<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    for (int i = 0; i &lt; count; ++i) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      ByteSlot data = slots[offset + i];<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      data.writeTo(stream);<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      totalSynced += data.size();<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    }<a name="line.613"></a>
-<span class="sourceLineNo">614</span><a name="line.614"></a>
-<span class="sourceLineNo">615</span>    if (useHsync) {<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      stream.hsync();<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    } else {<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      stream.hflush();<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    }<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    sendPostSyncSignal();<a name="line.620"></a>
-<span class="sourceLineNo">621</span><a name="line.621"></a>
-<span class="sourceLineNo">622</span>    if (LOG.isTraceEnabled()) {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      LOG.trace("Sync slots=" + count + '/' + slots.length +<a name="line.623"></a>
-<span class="sourceLineNo">624</span>                ", flushed=" + StringUtils.humanSize(totalSynced));<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    }<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    return totalSynced;<a name="line.626"></a>
-<span class="sourceLineNo">627</span>  }<a name="line.627"></a>
-<span class="sourceLineNo">628</span><a name="line.628"></a>
-<span class="sourceLineNo">629</span>  private boolean rollWriterOrDie() {<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    for (int i = 1; i &lt;= rollRetries; ++i) {<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      try {<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        if (rollWriter()) {<a name="line.632"></a>
-<span class="sourceLineNo">633</span>          return true;<a name="line.633"></a>
-<span class="sourceLineNo">634</span>        }<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      } catch (IOException e) {<a name="line.635"></a>
-<span class="sourceLineNo">636</span>        LOG.warn("Unable to roll the log, attempt=" + i, e);<a name="line.636"></a>
-<span class="sourceLineNo">637</span>        Threads.sleepWithoutInterrupt(waitBeforeRoll);<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      }<a name="line.638"></a>
-<span class="sourceLineNo">639</span>    }<a name="line.639"></a>
-<span class="sourceLineNo">640</span>    LOG.fatal("Unable to roll the log");<a name="line.640"></a>
-<span class="sourceLineNo">641</span>    sendAbortProcessSignal();<a name="line.641"></a>
-<span class="sourceLineNo">642</span>    throw new RuntimeException("unable to roll the log");<a name="line.642"></a>
-<span class="sourceLineNo">643</span>  }<a name="line.643"></a>
-<span class="sourceLineNo">644</span><a name="line.644"></a>
-<span class="sourceLineNo">645</span>  private boolean tryRollWriter() {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    try {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>      return rollWriter();<a name="line.647"></a>
-<span class="sourceLineNo">648</span>    } catch (IOException e) {<a name="line.648"></a>
-<span class="sourceLineNo">649</span>      LOG.warn("Unable to roll the log", e);<a name="line.649"></a>
-<span class="sourceLineNo">650</span>      return false;<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    }<a name="line.651"></a>
-<span class="sourceLineNo">652</span>  }<a name="line.652"></a>
-<span class="sourceLineNo">653</span><a name="line.653"></a>
-<span class="sourceLineNo">654</span>  private long getMillisToNextPeriodicRoll() {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    if (lastRollTs.get() &gt; 0 &amp;&amp; periodicRollMsec &gt; 0) {<a name="line.655"></a>
-<span class="sourceLineNo">656</span>      return periodicRollMsec - getMillisFromLastRoll();<a name="line.656"></a>
-<span class="sourceLineNo">657</span>    }<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    return Long.MAX_VALUE;<a name="line.658"></a>
+<span class="sourceLineNo">542</span>          long syncWaitMs = System.currentTimeMillis() - syncWaitSt;<a name="line.542"></a>
+<span class="sourceLineNo">543</span>          if (LOG.isTraceEnabled() &amp;&amp; (syncWaitMs &gt; 10 || slotIndex &lt; slots.length)) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>            float rollSec = getMillisFromLastRoll() / 1000.0f;<a name="line.544"></a>
+<span class="sourceLineNo">545</span>            LOG.trace(String.format("Sync wait %s, slotIndex=%s , totalSynced=%s (%s/sec)",<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                      StringUtils.humanTimeDiff(syncWaitMs), slotIndex,<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                      StringUtils.humanSize(totalSynced.get()),<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                      StringUtils.humanSize(totalSynced.get() / rollSec)));<a name="line.548"></a>
+<span class="sourceLineNo">549</span>          }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>          inSync.set(true);<a name="line.551"></a>
+<span class="sourceLineNo">552</span>          totalSynced.addAndGet(syncSlots());<a name="line.552"></a>
+<span class="sourceLineNo">553</span>          slotIndex = 0;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>          inSync.set(false);<a name="line.554"></a>
+<span class="sourceLineNo">555</span>        } catch (InterruptedException e) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>          Thread.currentThread().interrupt();<a name="line.556"></a>
+<span class="sourceLineNo">557</span>          sendAbortProcessSignal();<a name="line.557"></a>
+<span class="sourceLineNo">558</span>          syncException.compareAndSet(null, e);<a name="line.558"></a>
+<span class="sourceLineNo">559</span>          throw e;<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        } catch (Throwable t) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>          syncException.compareAndSet(null, t);<a name="line.561"></a>
+<span class="sourceLineNo">562</span>          throw t;<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        } finally {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>          syncCond.signalAll();<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>    } finally {<a name="line.567"></a>
+<span class="sourceLineNo">568</span>      lock.unlock();<a name="line.568"></a>
+<span class="sourceLineNo">569</span>    }<a name="line.569"></a>
+<span class="sourceLineNo">570</span>  }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>  private long syncSlots() throws Throwable {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>    int retry = 0;<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    int logRolled = 0;<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    long totalSynced = 0;<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    do {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>      try {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>        totalSynced = syncSlots(stream, slots, 0, slotIndex);<a name="line.578"></a>
+<span class="sourceLineNo">579</span>        break;<a name="line.579"></a>
+<span class="sourceLineNo">580</span>      } catch (Throwable e) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>        LOG.warn("unable to sync slots, retry=" + retry);<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        if (++retry &gt;= maxRetriesBeforeRoll) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>          if (logRolled &gt;= maxSyncFailureRoll) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>            LOG.error("Sync slots after log roll failed, abort.", e);<a name="line.584"></a>
+<span class="sourceLineNo">585</span>            sendAbortProcessSignal();<a name="line.585"></a>
+<span class="sourceLineNo">586</span>            throw e;<a name="line.586"></a>
+<span class="sourceLineNo">587</span>          }<a name="line.587"></a>
+<span class="sourceLineNo">588</span><a name="line.588"></a>
+<span class="sourceLineNo">589</span>          if (!rollWriterOrDie()) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>            throw e;<a name="line.590"></a>
+<span class="sourceLineNo">591</span>          }<a name="line.591"></a>
+<span class="sourceLineNo">592</span><a name="line.592"></a>
+<span class="sourceLineNo">593</span>          logRolled++;<a name="line.593"></a>
+<span class="sourceLineNo">594</span>          retry = 0;<a name="line.594"></a>
+<span class="sourceLineNo">595</span>        }<a name="line.595"></a>
+<span class="sourceLineNo">596</span>      }<a name="line.596"></a>
+<span class="sourceLineNo">597</span>    } while (isRunning());<a name="line.597"></a>
+<span class="sourceLineNo">598</span>    return totalSynced;<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>  protected long syncSlots(FSDataOutputStream stream, ByteSlot[] slots, int offset, int count)<a name="line.601"></a>
+<span class="sourceLineNo">602</span>      throws IOException {<a name="line.602"></a>
+<span class="sourceLineNo">603</span>    long totalSynced = 0;<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    for (int i = 0; i &lt; count; ++i) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      ByteSlot data = slots[offset + i];<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      data.writeTo(stream);<a name="line.606"></a>
+<span class="sourceLineNo">607</span>      totalSynced += data.size();<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>    if (useHsync) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>      stream.hsync();<a name="line.611"></a>
+<span class="sourceLineNo">612</span>    } else {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>      stream.hflush();<a name="line.613"></a>
+<span class="sourceLineNo">614</span>    }<a name="line.614"></a>
+<span class="sourceLineNo">615</span>    sendPostSyncSignal();<a name="line.615"></a>
+<span class="sourceLineNo">616</span><a name="line.616"></a>
+<span class="sourceLineNo">617</span>    if (LOG.isTraceEnabled()) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>      LOG.trace("Sync slots=" + count + '/' + slots.length +<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                ", flushed=" + StringUtils.humanSize(totalSynced));<a name="line.619"></a>
+<span class="sourceLineNo">620</span>    }<a name="line.620"></a>
+<span class="sourceLineNo">621</span>    return totalSynced;<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>  private boolean rollWriterOrDie() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>    for (int i = 0; i &lt; rollRetries; ++i) {<a name="line.625"></a>
+<span class="sourceLineNo">626</span>      if (i &gt; 0) Threads.sleepWithoutInterrupt(waitBeforeRoll * i);<a name="line.626"></a>
+<span class="sourceLineNo">627</span><a name="line.627"></a>
+<span class="sourceLineNo">628</span>      try {<a name="line.628"></a>
+<span class="sourceLineNo">629</span>        if (rollWriter()) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>          return true;<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        }<a name="line.631"></a>
+<span class="sourceLineNo">632</span>      } catch (IOException e) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>        LOG.warn("Unable to roll the log, attempt=" + (i + 1), e);<a name="line.633"></a>
+<span class="sourceLineNo">634</span>      }<a name="line.634"></a>
+<span class="sourceLineNo">635</span>    }<a name="line.635"></a>
+<span class="sourceLineNo">636</span>    LOG.fatal("Unable to roll the log");<a name="line.636"></a>
+<span class="sourceLineNo">637</span>    sendAbortProcessSignal();<a name="line.637"></a>
+<span class="sourceLineNo">638</span>    throw new RuntimeException("unable to roll the log");<a name="line.638"></a>
+<span class="sourceLineNo">639</span>  }<a name="line.639"></a>
+<span class="sourceLineNo">640</span><a name="line.640"></a>
+<span class="sourceLineNo">641</span>  private boolean tryRollWriter() {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    try {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>      return rollWriter();<a name="line.643"></a>
+<span class="sourceLineNo">644</span>    } catch (IOException e) {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      LOG.warn("Unable to roll the log", e);<a name="line.645"></a>
+<span class="sourceLineNo">646</span>      return false;<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>  private long getMillisToNextPeriodicRoll() {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>    if (lastRollTs.get() &gt; 0 &amp;&amp; periodicRollMsec &gt; 0) {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>      return periodicRollMsec - getMillisFromLastRoll();<a name="line.652"></a>
+<span class="sourceLineNo">653</span>    }<a name="line.653"></a>
+<span class="sourceLineNo">654</span>    return Long.MAX_VALUE;<a name="line.654"></a>
+<span class="sourceLineNo">655</span>  }<a name="line.655"></a>
+<span class="sourceLineNo">656</span><a name="line.656"></a>
+<span class="sourceLineNo">657</span>  private long getMillisFromLastRoll() {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>    return (System.currentTimeMillis() - lastRollTs.get());<a name="line.658"></a>
 <span class="sourceLineNo">659</span>  }<a name="line.659"></a>
 <span class="sourceLineNo">660</span><a name="line.660"></a>
-<span class="sourceLineNo">661</span>  private long getMillisFromLastRoll() {<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    return (System.currentTimeMillis() - lastRollTs.get());<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>  @VisibleForTesting<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  protected void periodicRollForTesting() throws IOException {<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    lock.lock();<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    try {<a name="line.668"></a>
-<span class="sourceLineNo">669</span>      periodicRoll();<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    } finally {<a name="line.670"></a>
-<span class="sourceLineNo">671</span>      lock.unlock();<a name="line.671"></a>
-<span class="sourceLineNo">672</span>    }<a name="line.672"></a>
-<span class="sourceLineNo">673</span>  }<a name="line.673"></a>
-<span class="sourceLineNo">674</span><a name="line.674"></a>
-<span class="sourceLineNo">675</span>  @VisibleForTesting<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  protected boolean rollWriterForTesting() throws IOException {<a name="line.676"></a>
-<span class="sourceLineNo">677</span>    lock.lock();<a name="line.677"></a>
-<span class="sourceLineNo">678</span>    try {<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      return rollWriter();<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    } finally {<a name="line.680"></a>
-<span class="sourceLineNo">681</span>      lock.unlock();<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    }<a name="line.682"></a>
-<span class="sourceLineNo">683</span>  }<a name="line.683"></a>
-<span class="sourceLineNo">684</span><a name="line.684"></a>
-<span class="sourceLineNo">685</span>  private void periodicRoll() throws IOException {<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    if (storeTracker.isEmpty()) {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>      if (LOG.isTraceEnabled()) {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>        LOG.trace("no active procedures");<a name="line.688"></a>
-<span class="sourceLineNo">689</span>      }<a name="line.689"></a>
-<span class="sourceLineNo">690</span>      tryRollWriter();<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      removeAllLogs(flushLogId - 1);<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    } else {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>      if (storeTracker.isUpdated()) {<a name="line.693"></a>
-<span class="sourceLineNo">694</span>        if (LOG.isTraceEnabled()) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>          LOG.trace("all the active procedures are in the latest log");<a name="line.695"></a>
-<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        removeAllLogs(flushLogId - 1);<a name="line.697"></a>
-<span class="sourceLineNo">698</span>      }<a name="line.698"></a>
-<span class="sourceLineNo">699</span><a name="line.699"></a>
-<span class="sourceLineNo">700</span>      // if the log size has exceeded the roll threshold<a name="line.700"></a>
-<span class="sourceLineNo">701</span>      // or the periodic roll timeout is expired, try to roll the wal.<a name="line.701"></a>
-<span class="sourceLineNo">702</span>      if (totalSynced.get() &gt; rollThreshold || getMillisToNextPeriodicRoll() &lt;= 0) {<a name="line.702"></a>
-<span class="sourceLineNo">703</span>        tryRollWriter();<a name="line.703"></a>
-<span class="sourceLineNo">704</span>      }<a name="line.704"></a>
+<span class="sourceLineNo">661</span>  @VisibleForTesting<a name="line.661"></a>
+<span class="sourceLineNo">662</span>  protected void periodicRollForTesting() throws IOException {<a name="line.662"></a>
+<span class="sourceLineNo">663</span>    lock.lock();<a name="line.663"></a>
+<span class="sourceLineNo">664</span>    try {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>      periodicRoll();<a name="line.665"></a>
+<span class="sourceLineNo">666</span>    } finally {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>      lock.unlock();<a name="line.667"></a>
+<span class="sourceLineNo">668</span>    }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>  }<a name="line.669"></a>
+<span class="sourceLineNo">670</span><a name="line.670"></a>
+<span class="sourceLineNo">671</span>  @VisibleForTesting<a name="line.671"></a>
+<span class="sourceLineNo">672</span>  protected boolean rollWriterForTesting() throws IOException {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>    lock.lock();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>    try {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>      return rollWriter();<a name="line.675"></a>
+<span class="sourceLineNo">676</span>    } finally {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>      lock.unlock();<a name="line.677"></a>
+<span class="sourceLineNo">678</span>    }<a name="line.678"></a>
+<span class="sourceLineNo">679</span>  }<a name="line.679"></a>
+<span class="sourceLineNo">680</span><a name="line.680"></a>
+<span class="sourceLineNo">681</span>  private void periodicRoll() throws IOException {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>    if (storeTracker.isEmpty()) {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>      if (LOG.isTraceEnabled()) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>        LOG.trace("no active procedures");<a name="line.684"></a>
+<span class="sourceLineNo">685</span>      }<a name="line.685"></a>
+<span class="sourceLineNo">686</span>      tryRollWriter();<a name="line.686"></a>
+<span class="sourceLineNo">687</span>      removeAllLogs(flushLogId - 1);<a name="line.687"></a>
+<span class="sourceLineNo">688</span>    } else {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>      if (storeTracker.isUpdated()) {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>        if (LOG.isTraceEnabled()) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>          LOG.trace("all the active procedures are in the latest log");<a name="line.691"></a>
+<span class="sourceLineNo">692</span>        }<a name="line.692"></a>
+<span class="sourceLineNo">693</span>        removeAllLogs(flushLogId - 1);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>      }<a name="line.694"></a>
+<span class="sourceLineNo">695</span><a name="line.695"></a>
+<span class="sourceLineNo">696</span>      // if the log size has exceeded the roll threshold<a name="line.696"></a>
+<span class="sourceLineNo">697</span>      // or the periodic roll timeout is expired, try to roll the wal.<a name="line.697"></a>
+<span class="sourceLineNo">698</span>      if (totalSynced.get() &gt; rollThreshold || getMillisToNextPeriodicRoll() &lt;= 0) {<a name="line.698"></a>
+<span class="sourceLineNo">699</span>        tryRollWriter();<a name="line.699"></a>
+<span class="sourceLineNo">700</span>      }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>      removeInactiveLogs();<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>      removeInactiveLogs();<a name="line.706"></a>
-<span class="sourceLineNo">707</span>    }<a name="line.707"></a>
-<span class="sourceLineNo">708</span>  }<a name="line.708"></a>
-<span class="sourceLineNo">709</span><a name="line.709"></a>
-<span class="sourceLineNo">710</span>  private boolean rollWriter() throws IOException {<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    // Create new state-log<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    if (!rollWriter(flushLogId + 1)) {<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      LOG.warn("someone else has already created log " + flushLogId);<a name="line.713"></a>
-<span class="sourceLineNo">714</span>      return false;<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    }<a name="line.715"></a>
-<span class="sourceLineNo">716</span><a name="line.716"></a>
-<span class="sourceLineNo">717</span>    // We have the lease on the log,<a name="line.717"></a>
-<span class="sourceLineNo">718</span>    // but we should check if someone else has created new files<a name="line.718"></a>
-<span class="sourceLineNo">719</span>    if (getMaxLogId(getLogFiles()) &gt; flushLogId) {<a name="line.719"></a>
-<span class="sourceLineNo">720</span>      LOG.warn("Someone else created new logs. Expected maxLogId &lt; " + flushLogId);<a name="line.720"></a>
-<span class="sourceLineNo">721</span>      logs.getLast().removeFile();<a name="line.721"></a>
-<span class="sourceLineNo">722</span>      return false;<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    }<a name="line.723"></a>
+<span class="sourceLineNo">706</span>  private boolean rollWriter() throws IOException {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>    // Create new state-log<a name="line.707"></a>
+<span class="sourceLineNo">708</span>    if (!rollWriter(flushLogId + 1)) {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>      LOG.warn("someone else has already created log " + flushLogId);<a name="line.709"></a>
+<span class="sourceLineNo">710</span>      return false;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>    }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>    // We have the lease on the log,<a name="line.713"></a>
+<span class="sourceLineNo">714</span>    // but we should check if someone else has created new files<a name="line.714"></a>
+<span class="sourceLineNo">715</span>    if (getMaxLogId(getLogFiles()) &gt; flushLogId) {<a name="line.715"></a>
+<span class="sourceLineNo">716</span>      LOG.warn("Someone else created new logs. Expected maxLogId &lt; " + flushLogId);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>      logs.getLast().removeFile();<a name="line.717"></a>
+<span class="sourceLineNo">718</span>      return false;<a name="line.718"></a>
+<span class="sourceLineNo">719</span>    }<a name="line.719"></a>
+<span class="sourceLineNo">720</span><a name="line.720"></a>
+<span class="sourceLineNo">721</span>    // We have the lease on the log<a name="line.721"></a>
+<span class="sourceLineNo">722</span>    return true;<a name="line.722"></a>
+<span class="sourceLineNo">723</span>  }<a name="line.723"></a>
 <span class="sourceLineNo">724</span><a name="line.724"></a>
-<span class="sourceLineNo">725</span>    // We have the lease on the log<a name="line.725"></a>
-<span class="sourceLineNo">726</span>    return true;<a name="line.726"></a>
-<span class="sourceLineNo">727</span>  }<a name="line.727"></a>
+<span class="sourceLineNo">725</span>  private boolean rollWriter(final long logId) throws IOException {<a name="line.725"></a>
+<span class="sourceLineNo">726</span>    assert logId &gt; flushLogId : "logId=" + logId + " flushLogId=" + flushLogId;<a name="line.726"></a>
+<span class="sourceLineNo">727</span>    assert lock.isHeldByCurrentThread() : "expected to be the lock owner. " + lock.isLocked();<a name="line.727"></a>
 <span class="sourceLineNo">728</span><a name="line.728"></a>
-<span class="sourceLineNo">729</span>  private boolean rollWriter(final long logId) throws IOException {<a name="line.729"></a>
-<span class="sourceLineNo">730</span>    assert logId &gt; flushLogId : "logId=" + logId + " flushLogId=" + flushLogId;<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    assert lock.isHeldByCurrentThread() : "expected to be the lock owner. " + lock.isLocked();<a name="line.731"></a>
-<span class="sourceLineNo">732</span><a name="line.732"></a>
-<span class="sourceLineNo">733</span>    ProcedureWALHeader header = ProcedureWALHeader.newBuilder()<a name="line.733"></a>
-<span class="sourceLineNo">734</span>      .setVersion(ProcedureWALFormat.HEADER_VERSION)<a name="line.734"></a>
-<span class="sourceLineNo">735</span>      .setType(ProcedureWALFormat.LOG_TYPE_STREAM)<a name="line.735"></a>
-<span class="sourceLineNo">736</span>      .setMinProcId(storeTracker.getMinProcId())<a name="line.736"></a>
-<span class="sourceLineNo">737</span>      .setLogId(logId)<a name="line.737"></a>
-<span class="sourceLineNo">738</span>      .build();<a name="line.738"></a>
-<span class="sourceLineNo">739</span><a name="line.739"></a>
-<span c

<TRUNCATED>

[23/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html
index b64c029..b4de8ca 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html
@@ -737,426 +737,448 @@
 <span class="sourceLineNo">729</span>    });<a name="line.729"></a>
 <span class="sourceLineNo">730</span>  }<a name="line.730"></a>
 <span class="sourceLineNo">731</span><a name="line.731"></a>
-<span class="sourceLineNo">732</span>  public boolean preBalance() throws IOException {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    return execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.733"></a>
-<span class="sourceLineNo">734</span>      @Override<a name="line.734"></a>
-<span class="sourceLineNo">735</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.735"></a>
-<span class="sourceLineNo">736</span>          throws IOException {<a name="line.736"></a>
-<span class="sourceLineNo">737</span>        oserver.preBalance(ctx);<a name="line.737"></a>
-<span class="sourceLineNo">738</span>      }<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    });<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  }<a name="line.740"></a>
-<span class="sourceLineNo">741</span><a name="line.741"></a>
-<span class="sourceLineNo">742</span>  public void postBalance(final List&lt;RegionPlan&gt; plans) throws IOException {<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.743"></a>
-<span class="sourceLineNo">744</span>      @Override<a name="line.744"></a>
-<span class="sourceLineNo">745</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.745"></a>
-<span class="sourceLineNo">746</span>          throws IOException {<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        oserver.postBalance(ctx, plans);<a name="line.747"></a>
-<span class="sourceLineNo">748</span>      }<a name="line.748"></a>
-<span class="sourceLineNo">749</span>    });<a name="line.749"></a>
-<span class="sourceLineNo">750</span>  }<a name="line.750"></a>
-<span class="sourceLineNo">751</span><a name="line.751"></a>
-<span class="sourceLineNo">752</span>  public boolean preBalanceSwitch(final boolean b) throws IOException {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    return execOperationWithResult(b, coprocessors.isEmpty() ? null :<a name="line.753"></a>
-<span class="sourceLineNo">754</span>        new CoprocessorOperationWithResult&lt;Boolean&gt;() {<a name="line.754"></a>
-<span class="sourceLineNo">755</span>      @Override<a name="line.755"></a>
-<span class="sourceLineNo">756</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          throws IOException {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>        setResult(oserver.preBalanceSwitch(ctx, getResult()));<a name="line.758"></a>
-<span class="sourceLineNo">759</span>      }<a name="line.759"></a>
-<span class="sourceLineNo">760</span>    });<a name="line.760"></a>
-<span class="sourceLineNo">761</span>  }<a name="line.761"></a>
-<span class="sourceLineNo">762</span><a name="line.762"></a>
-<span class="sourceLineNo">763</span>  public void postBalanceSwitch(final boolean oldValue, final boolean newValue)<a name="line.763"></a>
-<span class="sourceLineNo">764</span>      throws IOException {<a name="line.764"></a>
+<span class="sourceLineNo">732</span>  public void preDispatchMerge(final HRegionInfo regionInfoA, final HRegionInfo regionInfoB)<a name="line.732"></a>
+<span class="sourceLineNo">733</span>      throws IOException {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>      @Override<a name="line.735"></a>
+<span class="sourceLineNo">736</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.736"></a>
+<span class="sourceLineNo">737</span>          throws IOException {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>        oserver.preDispatchMerge(ctx, regionInfoA, regionInfoB);<a name="line.738"></a>
+<span class="sourceLineNo">739</span>      }<a name="line.739"></a>
+<span class="sourceLineNo">740</span>    });<a name="line.740"></a>
+<span class="sourceLineNo">741</span>  }<a name="line.741"></a>
+<span class="sourceLineNo">742</span><a name="line.742"></a>
+<span class="sourceLineNo">743</span>  public void postDispatchMerge(final HRegionInfo regionInfoA, final HRegionInfo regionInfoB)<a name="line.743"></a>
+<span class="sourceLineNo">744</span>      throws IOException {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>      @Override<a name="line.746"></a>
+<span class="sourceLineNo">747</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.747"></a>
+<span class="sourceLineNo">748</span>          throws IOException {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>        oserver.postDispatchMerge(ctx, regionInfoA, regionInfoB);<a name="line.749"></a>
+<span class="sourceLineNo">750</span>      }<a name="line.750"></a>
+<span class="sourceLineNo">751</span>    });<a name="line.751"></a>
+<span class="sourceLineNo">752</span>  }<a name="line.752"></a>
+<span class="sourceLineNo">753</span><a name="line.753"></a>
+<span class="sourceLineNo">754</span>  public boolean preBalance() throws IOException {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>    return execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>      @Override<a name="line.756"></a>
+<span class="sourceLineNo">757</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.757"></a>
+<span class="sourceLineNo">758</span>          throws IOException {<a name="line.758"></a>
+<span class="sourceLineNo">759</span>        oserver.preBalance(ctx);<a name="line.759"></a>
+<span class="sourceLineNo">760</span>      }<a name="line.760"></a>
+<span class="sourceLineNo">761</span>    });<a name="line.761"></a>
+<span class="sourceLineNo">762</span>  }<a name="line.762"></a>
+<span class="sourceLineNo">763</span><a name="line.763"></a>
+<span class="sourceLineNo">764</span>  public void postBalance(final List&lt;RegionPlan&gt; plans) throws IOException {<a name="line.764"></a>
 <span class="sourceLineNo">765</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.765"></a>
 <span class="sourceLineNo">766</span>      @Override<a name="line.766"></a>
 <span class="sourceLineNo">767</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.767"></a>
 <span class="sourceLineNo">768</span>          throws IOException {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>        oserver.postBalanceSwitch(ctx, oldValue, newValue);<a name="line.769"></a>
+<span class="sourceLineNo">769</span>        oserver.postBalance(ctx, plans);<a name="line.769"></a>
 <span class="sourceLineNo">770</span>      }<a name="line.770"></a>
 <span class="sourceLineNo">771</span>    });<a name="line.771"></a>
 <span class="sourceLineNo">772</span>  }<a name="line.772"></a>
 <span class="sourceLineNo">773</span><a name="line.773"></a>
-<span class="sourceLineNo">774</span>  public void preShutdown() throws IOException {<a name="line.774"></a>
-<span class="sourceLineNo">775</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.775"></a>
-<span class="sourceLineNo">776</span>      @Override<a name="line.776"></a>
-<span class="sourceLineNo">777</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.777"></a>
-<span class="sourceLineNo">778</span>          throws IOException {<a name="line.778"></a>
-<span class="sourceLineNo">779</span>        oserver.preShutdown(ctx);<a name="line.779"></a>
-<span class="sourceLineNo">780</span>      }<a name="line.780"></a>
-<span class="sourceLineNo">781</span>      @Override<a name="line.781"></a>
-<span class="sourceLineNo">782</span>      public void postEnvCall(MasterEnvironment env) {<a name="line.782"></a>
-<span class="sourceLineNo">783</span>        // invoke coprocessor stop method<a name="line.783"></a>
-<span class="sourceLineNo">784</span>        shutdown(env);<a name="line.784"></a>
-<span class="sourceLineNo">785</span>      }<a name="line.785"></a>
-<span class="sourceLineNo">786</span>    });<a name="line.786"></a>
-<span class="sourceLineNo">787</span>  }<a name="line.787"></a>
-<span class="sourceLineNo">788</span><a name="line.788"></a>
-<span class="sourceLineNo">789</span>  public void preStopMaster() throws IOException {<a name="line.789"></a>
-<span class="sourceLineNo">790</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.790"></a>
-<span class="sourceLineNo">791</span>      @Override<a name="line.791"></a>
-<span class="sourceLineNo">792</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.792"></a>
-<span class="sourceLineNo">793</span>          throws IOException {<a name="line.793"></a>
-<span class="sourceLineNo">794</span>        oserver.preStopMaster(ctx);<a name="line.794"></a>
-<span class="sourceLineNo">795</span>      }<a name="line.795"></a>
-<span class="sourceLineNo">796</span>      @Override<a name="line.796"></a>
-<span class="sourceLineNo">797</span>      public void postEnvCall(MasterEnvironment env) {<a name="line.797"></a>
-<span class="sourceLineNo">798</span>        // invoke coprocessor stop method<a name="line.798"></a>
-<span class="sourceLineNo">799</span>        shutdown(env);<a name="line.799"></a>
-<span class="sourceLineNo">800</span>      }<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    });<a name="line.801"></a>
-<span class="sourceLineNo">802</span>  }<a name="line.802"></a>
-<span class="sourceLineNo">803</span><a name="line.803"></a>
-<span class="sourceLineNo">804</span>  public void preMasterInitialization() throws IOException {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>      @Override<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.807"></a>
-<span class="sourceLineNo">808</span>          throws IOException {<a name="line.808"></a>
-<span class="sourceLineNo">809</span>        oserver.preMasterInitialization(ctx);<a name="line.809"></a>
-<span class="sourceLineNo">810</span>      }<a name="line.810"></a>
-<span class="sourceLineNo">811</span>    });<a name="line.811"></a>
-<span class="sourceLineNo">812</span>  }<a name="line.812"></a>
-<span class="sourceLineNo">813</span><a name="line.813"></a>
-<span class="sourceLineNo">814</span>  public void postStartMaster() throws IOException {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.815"></a>
-<span class="sourceLineNo">816</span>      @Override<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.817"></a>
-<span class="sourceLineNo">818</span>          throws IOException {<a name="line.818"></a>
-<span class="sourceLineNo">819</span>        oserver.postStartMaster(ctx);<a name="line.819"></a>
-<span class="sourceLineNo">820</span>      }<a name="line.820"></a>
-<span class="sourceLineNo">821</span>    });<a name="line.821"></a>
-<span class="sourceLineNo">822</span>  }<a name="line.822"></a>
-<span class="sourceLineNo">823</span><a name="line.823"></a>
-<span class="sourceLineNo">824</span>  public void preSnapshot(final SnapshotDescription snapshot,<a name="line.824"></a>
-<span class="sourceLineNo">825</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.825"></a>
-<span class="sourceLineNo">826</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.826"></a>
-<span class="sourceLineNo">827</span>      @Override<a name="line.827"></a>
-<span class="sourceLineNo">828</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.828"></a>
-<span class="sourceLineNo">829</span>          throws IOException {<a name="line.829"></a>
-<span class="sourceLineNo">830</span>        oserver.preSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      }<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    });<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  }<a name="line.833"></a>
-<span class="sourceLineNo">834</span><a name="line.834"></a>
-<span class="sourceLineNo">835</span>  public void postSnapshot(final SnapshotDescription snapshot,<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.836"></a>
+<span class="sourceLineNo">774</span>  public boolean preBalanceSwitch(final boolean b) throws IOException {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>    return execOperationWithResult(b, coprocessors.isEmpty() ? null :<a name="line.775"></a>
+<span class="sourceLineNo">776</span>        new CoprocessorOperationWithResult&lt;Boolean&gt;() {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>      @Override<a name="line.777"></a>
+<span class="sourceLineNo">778</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.778"></a>
+<span class="sourceLineNo">779</span>          throws IOException {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>        setResult(oserver.preBalanceSwitch(ctx, getResult()));<a name="line.780"></a>
+<span class="sourceLineNo">781</span>      }<a name="line.781"></a>
+<span class="sourceLineNo">782</span>    });<a name="line.782"></a>
+<span class="sourceLineNo">783</span>  }<a name="line.783"></a>
+<span class="sourceLineNo">784</span><a name="line.784"></a>
+<span class="sourceLineNo">785</span>  public void postBalanceSwitch(final boolean oldValue, final boolean newValue)<a name="line.785"></a>
+<span class="sourceLineNo">786</span>      throws IOException {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>      @Override<a name="line.788"></a>
+<span class="sourceLineNo">789</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.789"></a>
+<span class="sourceLineNo">790</span>          throws IOException {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>        oserver.postBalanceSwitch(ctx, oldValue, newValue);<a name="line.791"></a>
+<span class="sourceLineNo">792</span>      }<a name="line.792"></a>
+<span class="sourceLineNo">793</span>    });<a name="line.793"></a>
+<span class="sourceLineNo">794</span>  }<a name="line.794"></a>
+<span class="sourceLineNo">795</span><a name="line.795"></a>
+<span class="sourceLineNo">796</span>  public void preShutdown() throws IOException {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>      @Override<a name="line.798"></a>
+<span class="sourceLineNo">799</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.799"></a>
+<span class="sourceLineNo">800</span>          throws IOException {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>        oserver.preShutdown(ctx);<a name="line.801"></a>
+<span class="sourceLineNo">802</span>      }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>      @Override<a name="line.803"></a>
+<span class="sourceLineNo">804</span>      public void postEnvCall(MasterEnvironment env) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>        // invoke coprocessor stop method<a name="line.805"></a>
+<span class="sourceLineNo">806</span>        shutdown(env);<a name="line.806"></a>
+<span class="sourceLineNo">807</span>      }<a name="line.807"></a>
+<span class="sourceLineNo">808</span>    });<a name="line.808"></a>
+<span class="sourceLineNo">809</span>  }<a name="line.809"></a>
+<span class="sourceLineNo">810</span><a name="line.810"></a>
+<span class="sourceLineNo">811</span>  public void preStopMaster() throws IOException {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.812"></a>
+<span class="sourceLineNo">813</span>      @Override<a name="line.813"></a>
+<span class="sourceLineNo">814</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.814"></a>
+<span class="sourceLineNo">815</span>          throws IOException {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>        oserver.preStopMaster(ctx);<a name="line.816"></a>
+<span class="sourceLineNo">817</span>      }<a name="line.817"></a>
+<span class="sourceLineNo">818</span>      @Override<a name="line.818"></a>
+<span class="sourceLineNo">819</span>      public void postEnvCall(MasterEnvironment env) {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>        // invoke coprocessor stop method<a name="line.820"></a>
+<span class="sourceLineNo">821</span>        shutdown(env);<a name="line.821"></a>
+<span class="sourceLineNo">822</span>      }<a name="line.822"></a>
+<span class="sourceLineNo">823</span>    });<a name="line.823"></a>
+<span class="sourceLineNo">824</span>  }<a name="line.824"></a>
+<span class="sourceLineNo">825</span><a name="line.825"></a>
+<span class="sourceLineNo">826</span>  public void preMasterInitialization() throws IOException {<a name="line.826"></a>
+<span class="sourceLineNo">827</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>      @Override<a name="line.828"></a>
+<span class="sourceLineNo">829</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.829"></a>
+<span class="sourceLineNo">830</span>          throws IOException {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>        oserver.preMasterInitialization(ctx);<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      }<a name="line.832"></a>
+<span class="sourceLineNo">833</span>    });<a name="line.833"></a>
+<span class="sourceLineNo">834</span>  }<a name="line.834"></a>
+<span class="sourceLineNo">835</span><a name="line.835"></a>
+<span class="sourceLineNo">836</span>  public void postStartMaster() throws IOException {<a name="line.836"></a>
 <span class="sourceLineNo">837</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.837"></a>
 <span class="sourceLineNo">838</span>      @Override<a name="line.838"></a>
 <span class="sourceLineNo">839</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.839"></a>
 <span class="sourceLineNo">840</span>          throws IOException {<a name="line.840"></a>
-<span class="sourceLineNo">841</span>        oserver.postSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.841"></a>
+<span class="sourceLineNo">841</span>        oserver.postStartMaster(ctx);<a name="line.841"></a>
 <span class="sourceLineNo">842</span>      }<a name="line.842"></a>
 <span class="sourceLineNo">843</span>    });<a name="line.843"></a>
 <span class="sourceLineNo">844</span>  }<a name="line.844"></a>
 <span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  public void preListSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.846"></a>
-<span class="sourceLineNo">847</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.847"></a>
-<span class="sourceLineNo">848</span>      @Override<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      public void call(MasterObserver observer, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.849"></a>
-<span class="sourceLineNo">850</span>          throws IOException {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        observer.preListSnapshot(ctx, snapshot);<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      }<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    });<a name="line.853"></a>
-<span class="sourceLineNo">854</span>  }<a name="line.854"></a>
-<span class="sourceLineNo">855</span><a name="line.855"></a>
-<span class="sourceLineNo">856</span>  public void postListSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      @Override<a name="line.858"></a>
-<span class="sourceLineNo">859</span>      public void call(MasterObserver observer, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.859"></a>
-<span class="sourceLineNo">860</span>          throws IOException {<a name="line.860"></a>
-<span class="sourceLineNo">861</span>        observer.postListSnapshot(ctx, snapshot);<a name="line.861"></a>
-<span class="sourceLineNo">862</span>      }<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    });<a name="line.863"></a>
-<span class="sourceLineNo">864</span>  }<a name="line.864"></a>
-<span class="sourceLineNo">865</span><a name="line.865"></a>
-<span class="sourceLineNo">866</span>  public void preCloneSnapshot(final SnapshotDescription snapshot,<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      @Override<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.870"></a>
-<span class="sourceLineNo">871</span>          throws IOException {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>        oserver.preCloneSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.872"></a>
-<span class="sourceLineNo">873</span>      }<a name="line.873"></a>
-<span class="sourceLineNo">874</span>    });<a name="line.874"></a>
-<span class="sourceLineNo">875</span>  }<a name="line.875"></a>
-<span class="sourceLineNo">876</span><a name="line.876"></a>
-<span class="sourceLineNo">877</span>  public void postCloneSnapshot(final SnapshotDescription snapshot,<a name="line.877"></a>
-<span class="sourceLineNo">878</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.878"></a>
+<span class="sourceLineNo">846</span>  public void preSnapshot(final SnapshotDescription snapshot,<a name="line.846"></a>
+<span class="sourceLineNo">847</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>      @Override<a name="line.849"></a>
+<span class="sourceLineNo">850</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.850"></a>
+<span class="sourceLineNo">851</span>          throws IOException {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        oserver.preSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.852"></a>
+<span class="sourceLineNo">853</span>      }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>    });<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  }<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>  public void postSnapshot(final SnapshotDescription snapshot,<a name="line.857"></a>
+<span class="sourceLineNo">858</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>      @Override<a name="line.860"></a>
+<span class="sourceLineNo">861</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.861"></a>
+<span class="sourceLineNo">862</span>          throws IOException {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>        oserver.postSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>      }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>    });<a name="line.865"></a>
+<span class="sourceLineNo">866</span>  }<a name="line.866"></a>
+<span class="sourceLineNo">867</span><a name="line.867"></a>
+<span class="sourceLineNo">868</span>  public void preListSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>      @Override<a name="line.870"></a>
+<span class="sourceLineNo">871</span>      public void call(MasterObserver observer, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.871"></a>
+<span class="sourceLineNo">872</span>          throws IOException {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>        observer.preListSnapshot(ctx, snapshot);<a name="line.873"></a>
+<span class="sourceLineNo">874</span>      }<a name="line.874"></a>
+<span class="sourceLineNo">875</span>    });<a name="line.875"></a>
+<span class="sourceLineNo">876</span>  }<a name="line.876"></a>
+<span class="sourceLineNo">877</span><a name="line.877"></a>
+<span class="sourceLineNo">878</span>  public void postListSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.878"></a>
 <span class="sourceLineNo">879</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.879"></a>
 <span class="sourceLineNo">880</span>      @Override<a name="line.880"></a>
-<span class="sourceLineNo">881</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.881"></a>
+<span class="sourceLineNo">881</span>      public void call(MasterObserver observer, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.881"></a>
 <span class="sourceLineNo">882</span>          throws IOException {<a name="line.882"></a>
-<span class="sourceLineNo">883</span>        oserver.postCloneSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.883"></a>
+<span class="sourceLineNo">883</span>        observer.postListSnapshot(ctx, snapshot);<a name="line.883"></a>
 <span class="sourceLineNo">884</span>      }<a name="line.884"></a>
 <span class="sourceLineNo">885</span>    });<a name="line.885"></a>
 <span class="sourceLineNo">886</span>  }<a name="line.886"></a>
 <span class="sourceLineNo">887</span><a name="line.887"></a>
-<span class="sourceLineNo">888</span>  public void preRestoreSnapshot(final SnapshotDescription snapshot,<a name="line.888"></a>
+<span class="sourceLineNo">888</span>  public void preCloneSnapshot(final SnapshotDescription snapshot,<a name="line.888"></a>
 <span class="sourceLineNo">889</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.889"></a>
 <span class="sourceLineNo">890</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.890"></a>
 <span class="sourceLineNo">891</span>      @Override<a name="line.891"></a>
 <span class="sourceLineNo">892</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.892"></a>
 <span class="sourceLineNo">893</span>          throws IOException {<a name="line.893"></a>
-<span class="sourceLineNo">894</span>        oserver.preRestoreSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.894"></a>
+<span class="sourceLineNo">894</span>        oserver.preCloneSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.894"></a>
 <span class="sourceLineNo">895</span>      }<a name="line.895"></a>
 <span class="sourceLineNo">896</span>    });<a name="line.896"></a>
 <span class="sourceLineNo">897</span>  }<a name="line.897"></a>
 <span class="sourceLineNo">898</span><a name="line.898"></a>
-<span class="sourceLineNo">899</span>  public void postRestoreSnapshot(final SnapshotDescription snapshot,<a name="line.899"></a>
+<span class="sourceLineNo">899</span>  public void postCloneSnapshot(final SnapshotDescription snapshot,<a name="line.899"></a>
 <span class="sourceLineNo">900</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.900"></a>
 <span class="sourceLineNo">901</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.901"></a>
 <span class="sourceLineNo">902</span>      @Override<a name="line.902"></a>
 <span class="sourceLineNo">903</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.903"></a>
 <span class="sourceLineNo">904</span>          throws IOException {<a name="line.904"></a>
-<span class="sourceLineNo">905</span>        oserver.postRestoreSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.905"></a>
+<span class="sourceLineNo">905</span>        oserver.postCloneSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.905"></a>
 <span class="sourceLineNo">906</span>      }<a name="line.906"></a>
 <span class="sourceLineNo">907</span>    });<a name="line.907"></a>
 <span class="sourceLineNo">908</span>  }<a name="line.908"></a>
 <span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>  public void preDeleteSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.910"></a>
-<span class="sourceLineNo">911</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      @Override<a name="line.912"></a>
-<span class="sourceLineNo">913</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.913"></a>
-<span class="sourceLineNo">914</span>          throws IOException {<a name="line.914"></a>
-<span class="sourceLineNo">915</span>        oserver.preDeleteSnapshot(ctx, snapshot);<a name="line.915"></a>
-<span class="sourceLineNo">916</span>      }<a name="line.916"></a>
-<span class="sourceLineNo">917</span>    });<a name="line.917"></a>
-<span class="sourceLineNo">918</span>  }<a name="line.918"></a>
-<span class="sourceLineNo">919</span><a name="line.919"></a>
-<span class="sourceLineNo">920</span>  public void postDeleteSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.920"></a>
-<span class="sourceLineNo">921</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      @Override<a name="line.922"></a>
-<span class="sourceLineNo">923</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.923"></a>
-<span class="sourceLineNo">924</span>          throws IOException {<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        oserver.postDeleteSnapshot(ctx, snapshot);<a name="line.925"></a>
-<span class="sourceLineNo">926</span>      }<a name="line.926"></a>
-<span class="sourceLineNo">927</span>    });<a name="line.927"></a>
-<span class="sourceLineNo">928</span>  }<a name="line.928"></a>
-<span class="sourceLineNo">929</span><a name="line.929"></a>
-<span class="sourceLineNo">930</span>  public boolean preGetTableDescriptors(final List&lt;TableName&gt; tableNamesList,<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      final List&lt;HTableDescriptor&gt; descriptors, final String regex) throws IOException {<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    return execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      @Override<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.934"></a>
-<span class="sourceLineNo">935</span>          throws IOException {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>        oserver.preGetTableDescriptors(ctx, tableNamesList, descriptors, regex);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>      }<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    });<a name="line.938"></a>
-<span class="sourceLineNo">939</span>  }<a name="line.939"></a>
-<span class="sourceLineNo">940</span><a name="line.940"></a>
-<span class="sourceLineNo">941</span>  public void postGetTableDescriptors(final List&lt;TableName&gt; tableNamesList,<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      final List&lt;HTableDescriptor&gt; descriptors, final String regex) throws IOException {<a name="line.942"></a>
+<span class="sourceLineNo">910</span>  public void preRestoreSnapshot(final SnapshotDescription snapshot,<a name="line.910"></a>
+<span class="sourceLineNo">911</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.911"></a>
+<span class="sourceLineNo">912</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>      @Override<a name="line.913"></a>
+<span class="sourceLineNo">914</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.914"></a>
+<span class="sourceLineNo">915</span>          throws IOException {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>        oserver.preRestoreSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.916"></a>
+<span class="sourceLineNo">917</span>      }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>    });<a name="line.918"></a>
+<span class="sourceLineNo">919</span>  }<a name="line.919"></a>
+<span class="sourceLineNo">920</span><a name="line.920"></a>
+<span class="sourceLineNo">921</span>  public void postRestoreSnapshot(final SnapshotDescription snapshot,<a name="line.921"></a>
+<span class="sourceLineNo">922</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>      @Override<a name="line.924"></a>
+<span class="sourceLineNo">925</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.925"></a>
+<span class="sourceLineNo">926</span>          throws IOException {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>        oserver.postRestoreSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      }<a name="line.928"></a>
+<span class="sourceLineNo">929</span>    });<a name="line.929"></a>
+<span class="sourceLineNo">930</span>  }<a name="line.930"></a>
+<span class="sourceLineNo">931</span><a name="line.931"></a>
+<span class="sourceLineNo">932</span>  public void preDeleteSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      @Override<a name="line.934"></a>
+<span class="sourceLineNo">935</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.935"></a>
+<span class="sourceLineNo">936</span>          throws IOException {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>        oserver.preDeleteSnapshot(ctx, snapshot);<a name="line.937"></a>
+<span class="sourceLineNo">938</span>      }<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    });<a name="line.939"></a>
+<span class="sourceLineNo">940</span>  }<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>  public void postDeleteSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.942"></a>
 <span class="sourceLineNo">943</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.943"></a>
 <span class="sourceLineNo">944</span>      @Override<a name="line.944"></a>
 <span class="sourceLineNo">945</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.945"></a>
 <span class="sourceLineNo">946</span>          throws IOException {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>        oserver.postGetTableDescriptors(ctx, tableNamesList, descriptors, regex);<a name="line.947"></a>
+<span class="sourceLineNo">947</span>        oserver.postDeleteSnapshot(ctx, snapshot);<a name="line.947"></a>
 <span class="sourceLineNo">948</span>      }<a name="line.948"></a>
 <span class="sourceLineNo">949</span>    });<a name="line.949"></a>
 <span class="sourceLineNo">950</span>  }<a name="line.950"></a>
 <span class="sourceLineNo">951</span><a name="line.951"></a>
-<span class="sourceLineNo">952</span>  public boolean preGetTableNames(final List&lt;HTableDescriptor&gt; descriptors,<a name="line.952"></a>
-<span class="sourceLineNo">953</span>      final String regex) throws IOException {<a name="line.953"></a>
+<span class="sourceLineNo">952</span>  public boolean preGetTableDescriptors(final List&lt;TableName&gt; tableNamesList,<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      final List&lt;HTableDescriptor&gt; descriptors, final String regex) throws IOException {<a name="line.953"></a>
 <span class="sourceLineNo">954</span>    return execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.954"></a>
 <span class="sourceLineNo">955</span>      @Override<a name="line.955"></a>
 <span class="sourceLineNo">956</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.956"></a>
 <span class="sourceLineNo">957</span>          throws IOException {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>        oserver.preGetTableNames(ctx, descriptors, regex);<a name="line.958"></a>
+<span class="sourceLineNo">958</span>        oserver.preGetTableDescriptors(ctx, tableNamesList, descriptors, regex);<a name="line.958"></a>
 <span class="sourceLineNo">959</span>      }<a name="line.959"></a>
 <span class="sourceLineNo">960</span>    });<a name="line.960"></a>
 <span class="sourceLineNo">961</span>  }<a name="line.961"></a>
 <span class="sourceLineNo">962</span><a name="line.962"></a>
-<span class="sourceLineNo">963</span>  public void postGetTableNames(final List&lt;HTableDescriptor&gt; descriptors,<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      final String regex) throws IOException {<a name="line.964"></a>
+<span class="sourceLineNo">963</span>  public void postGetTableDescriptors(final List&lt;TableName&gt; tableNamesList,<a name="line.963"></a>
+<span class="sourceLineNo">964</span>      final List&lt;HTableDescriptor&gt; descriptors, final String regex) throws IOException {<a name="line.964"></a>
 <span class="sourceLineNo">965</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.965"></a>
 <span class="sourceLineNo">966</span>      @Override<a name="line.966"></a>
 <span class="sourceLineNo">967</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.967"></a>
 <span class="sourceLineNo">968</span>          throws IOException {<a name="line.968"></a>
-<span class="sourceLineNo">969</span>        oserver.postGetTableNames(ctx, descriptors, regex);<a name="line.969"></a>
+<span class="sourceLineNo">969</span>        oserver.postGetTableDescriptors(ctx, tableNamesList, descriptors, regex);<a name="line.969"></a>
 <span class="sourceLineNo">970</span>      }<a name="line.970"></a>
 <span class="sourceLineNo">971</span>    });<a name="line.971"></a>
 <span class="sourceLineNo">972</span>  }<a name="line.972"></a>
 <span class="sourceLineNo">973</span><a name="line.973"></a>
-<span class="sourceLineNo">974</span>  public void preTableFlush(final TableName tableName) throws IOException {<a name="line.974"></a>
-<span class="sourceLineNo">975</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>      @Override<a name="line.976"></a>
-<span class="sourceLineNo">977</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.977"></a>
-<span class="sourceLineNo">978</span>          throws IOException {<a name="line.978"></a>
-<span class="sourceLineNo">979</span>        oserver.preTableFlush(ctx, tableName);<a name="line.979"></a>
-<span class="sourceLineNo">980</span>      }<a name="line.980"></a>
-<span class="sourceLineNo">981</span>    });<a name="line.981"></a>
-<span class="sourceLineNo">982</span>  }<a name="line.982"></a>
-<span class="sourceLineNo">983</span><a name="line.983"></a>
-<span class="sourceLineNo">984</span>  public void postTableFlush(final TableName tableName) throws IOException {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      @Override<a name="line.986"></a>
-<span class="sourceLineNo">987</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.987"></a>
-<span class="sourceLineNo">988</span>          throws IOException {<a name="line.988"></a>
-<span class="sourceLineNo">989</span>        oserver.postTableFlush(ctx, tableName);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>      }<a name="line.990"></a>
-<span class="sourceLineNo">991</span>    });<a name="line.991"></a>
-<span class="sourceLineNo">992</span>  }<a name="line.992"></a>
-<span class="sourceLineNo">993</span><a name="line.993"></a>
-<span class="sourceLineNo">994</span>  public void preSetUserQuota(final String user, final Quotas quotas) throws IOException {<a name="line.994"></a>
-<span class="sourceLineNo">995</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.995"></a>
-<span class="sourceLineNo">996</span>      @Override<a name="line.996"></a>
-<span class="sourceLineNo">997</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.997"></a>
-<span class="sourceLineNo">998</span>          throws IOException {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>        oserver.preSetUserQuota(ctx, user, quotas);<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>      }<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    });<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>  }<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>  public void postSetUserQuota(final String user, final Quotas quotas) throws IOException {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      @Override<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>          throws IOException {<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>        oserver.postSetUserQuota(ctx, user, quotas);<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      }<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>    });<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>  }<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span><a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  public void preSetUserQuota(final String user, final TableName table, final Quotas quotas)<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      throws IOException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>      @Override<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>          throws IOException {<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        oserver.preSetUserQuota(ctx, user, table, quotas);<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    });<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>  }<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span><a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>  public void postSetUserQuota(final String user, final TableName table, final Quotas quotas)<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>      throws IOException {<a name="line.1026"></a>
+<span class="sourceLineNo">974</span>  public boolean preGetTableNames(final List&lt;HTableDescriptor&gt; descriptors,<a name="line.974"></a>
+<span class="sourceLineNo">975</span>      final String regex) throws IOException {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>    return execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      @Override<a name="line.977"></a>
+<span class="sourceLineNo">978</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.978"></a>
+<span class="sourceLineNo">979</span>          throws IOException {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>        oserver.preGetTableNames(ctx, descriptors, regex);<a name="line.980"></a>
+<span class="sourceLineNo">981</span>      }<a name="line.981"></a>
+<span class="sourceLineNo">982</span>    });<a name="line.982"></a>
+<span class="sourceLineNo">983</span>  }<a name="line.983"></a>
+<span class="sourceLineNo">984</span><a name="line.984"></a>
+<span class="sourceLineNo">985</span>  public void postGetTableNames(final List&lt;HTableDescriptor&gt; descriptors,<a name="line.985"></a>
+<span class="sourceLineNo">986</span>      final String regex) throws IOException {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      @Override<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.989"></a>
+<span class="sourceLineNo">990</span>          throws IOException {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>        oserver.postGetTableNames(ctx, descriptors, regex);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>      }<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    });<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  }<a name="line.994"></a>
+<span class="sourceLineNo">995</span><a name="line.995"></a>
+<span class="sourceLineNo">996</span>  public void preTableFlush(final TableName tableName) throws IOException {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>      @Override<a name="line.998"></a>
+<span class="sourceLineNo">999</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>          throws IOException {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>        oserver.preTableFlush(ctx, tableName);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>      }<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>    });<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>  }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span><a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>  public void postTableFlush(final TableName tableName) throws IOException {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>      @Override<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>          throws IOException {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>        oserver.postTableFlush(ctx, tableName);<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>      }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>    });<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>  }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>  public void preSetUserQuota(final String user, final Quotas quotas) throws IOException {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>      @Override<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          throws IOException {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>        oserver.preSetUserQuota(ctx, user, quotas);<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>      }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>    });<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>  }<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span><a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>  public void postSetUserQuota(final String user, final Quotas quotas) throws IOException {<a name="line.1026"></a>
 <span class="sourceLineNo">1027</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1027"></a>
 <span class="sourceLineNo">1028</span>      @Override<a name="line.1028"></a>
 <span class="sourceLineNo">1029</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1029"></a>
 <span class="sourceLineNo">1030</span>          throws IOException {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>        oserver.postSetUserQuota(ctx, user, table, quotas);<a name="line.1031"></a>
+<span class="sourceLineNo">1031</span>        oserver.postSetUserQuota(ctx, user, quotas);<a name="line.1031"></a>
 <span class="sourceLineNo">1032</span>      }<a name="line.1032"></a>
 <span class="sourceLineNo">1033</span>    });<a name="line.1033"></a>
 <span class="sourceLineNo">1034</span>  }<a name="line.1034"></a>
 <span class="sourceLineNo">1035</span><a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>  public void preSetUserQuota(final String user, final String namespace, final Quotas quotas)<a name="line.1036"></a>
+<span class="sourceLineNo">1036</span>  public void preSetUserQuota(final String user, final TableName table, final Quotas quotas)<a name="line.1036"></a>
 <span class="sourceLineNo">1037</span>      throws IOException {<a name="line.1037"></a>
 <span class="sourceLineNo">1038</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1038"></a>
 <span class="sourceLineNo">1039</span>      @Override<a name="line.1039"></a>
 <span class="sourceLineNo">1040</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1040"></a>
 <span class="sourceLineNo">1041</span>          throws IOException {<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        oserver.preSetUserQuota(ctx, user, namespace, quotas);<a name="line.1042"></a>
+<span class="sourceLineNo">1042</span>        oserver.preSetUserQuota(ctx, user, table, quotas);<a name="line.1042"></a>
 <span class="sourceLineNo">1043</span>      }<a name="line.1043"></a>
 <span class="sourceLineNo">1044</span>    });<a name="line.1044"></a>
 <span class="sourceLineNo">1045</span>  }<a name="line.1045"></a>
 <span class="sourceLineNo">1046</span><a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>  public void postSetUserQuota(final String user, final String namespace, final Quotas quotas)<a name="line.1047"></a>
+<span class="sourceLineNo">1047</span>  public void postSetUserQuota(final String user, final TableName table, final Quotas quotas)<a name="line.1047"></a>
 <span class="sourceLineNo">1048</span>      throws IOException {<a name="line.1048"></a>
 <span class="sourceLineNo">1049</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1049"></a>
 <span class="sourceLineNo">1050</span>      @Override<a name="line.1050"></a>
 <span class="sourceLineNo">1051</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1051"></a>
 <span class="sourceLineNo">1052</span>          throws IOException {<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>        oserver.postSetUserQuota(ctx, user, namespace, quotas);<a name="line.1053"></a>
+<span class="sourceLineNo">1053</span>        oserver.postSetUserQuota(ctx, user, table, quotas);<a name="line.1053"></a>
 <span class="sourceLineNo">1054</span>      }<a name="line.1054"></a>
 <span class="sourceLineNo">1055</span>    });<a name="line.1055"></a>
 <span class="sourceLineNo">1056</span>  }<a name="line.1056"></a>
 <span class="sourceLineNo">1057</span><a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>  public void preSetTableQuota(final TableName table, final Quotas quotas) throws IOException {<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>      @Override<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>          throws IOException {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>        oserver.preSetTableQuota(ctx, table, quotas);<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>      }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>    });<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>  }<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span><a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>  public void postSetTableQuota(final TableName table, final Quotas quotas) throws IOException {<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      @Override<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>          throws IOException {<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>        oserver.postSetTableQuota(ctx, table, quotas);<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      }<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    });<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>  }<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span><a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>  public void preSetNamespaceQuota(final String namespace, final Quotas quotas) throws IOException {<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>      @Override<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>          throws IOException {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>        oserver.preSetNamespaceQuota(ctx, namespace, quotas);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>      }<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>    });<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>  }<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span><a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>  public void postSetNamespaceQuota(final String namespace, final Quotas quotas) throws IOException{<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>      @Override<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>          throws IOException {<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>        oserver.postSetNamespaceQuota(ctx, namespace, quotas);<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>      }<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    });<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>  }<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span><a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>  private static abstract class CoprocessorOperation<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>      extends ObserverContext&lt;MasterCoprocessorEnvironment&gt; {<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>    public CoprocessorOperation() {<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span><a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    public abstract void call(MasterObserver oserver,<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>        ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx) throws IOException;<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span><a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>    public void postEnvCall(MasterEnvironment env) {<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    }<a name="line.1107"></a>
+<span class="sourceLineNo">1058</span>  public void preSetUserQuota(final String user, final String namespace, final Quotas quotas)<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      throws IOException {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>      @Override<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>          throws IOException {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        oserver.preSetUserQuota(ctx, user, namespace, quotas);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>      }<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>    });<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>  }<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span><a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>  public void postSetUserQuota(final String user, final String namespace, final Quotas quotas)<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      throws IOException {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      @Override<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>          throws IOException {<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>        oserver.postSetUserQuota(ctx, user, namespace, quotas);<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>      }<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>    });<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>  }<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span><a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>  public void preSetTableQuota(final TableName table, final Quotas quotas) throws IOException {<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      @Override<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>          throws IOException {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>        oserver.preSetTableQuota(ctx, table, quotas);<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>      }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>    });<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>  }<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span><a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>  public void postSetTableQuota(final TableName table, final Quotas quotas) throws IOException {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>      @Override<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>          throws IOException {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>        oserver.postSetTableQuota(ctx, table, quotas);<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>      }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>    });<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>  }<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span><a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>  public void preSetNamespaceQuota(final String namespace, final Quotas quotas) throws IOException {<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      @Override<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>          throws IOException {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>        oserver.preSetNamespaceQuota(ctx, namespace, quotas);<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>      }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    });<a name="line.1107"></a>
 <span class="sourceLineNo">1108</span>  }<a name="line.1108"></a>
 <span class="sourceLineNo">1109</span><a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>  private static abstract class CoprocessorOperationWithResult&lt;T&gt; extends CoprocessorOperation {<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>    private T result = null;<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    public void setResult(final T result) { this.result = result; }<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    public T getResult() { return this.result; }<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>  }<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span><a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>  private &lt;T&gt; T execOperationWithResult(final T defaultValue,<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>      final CoprocessorOperationWithResult&lt;T&gt; ctx) throws IOException {<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>    if (ctx == null) return defaultValue;<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    ctx.setResult(defaultValue);<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    execOperation(ctx);<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    return ctx.getResult();<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>  }<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span><a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>  private boolean execOperation(final CoprocessorOperation ctx) throws IOException {<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    if (ctx == null) return false;<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>    boolean bypass = false;<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>    List&lt;MasterEnvironment&gt; envs = coprocessors.get();<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>    for (int i = 0; i &lt; envs.size(); i++) {<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>      MasterEnvironment env = envs.get(i);<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>      if (env.getInstance() instanceof MasterObserver) {<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>        ctx.prepare(env);<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>        Thread currentThread = Thread.currentThread();<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>        ClassLoader cl = currentThread.getContextClassLoader();<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>        try {<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>          currentThread.setContextClassLoader(env.getClassLoader());<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>          ctx.call((MasterObserver)env.getInstance(), ctx);<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>        } catch (Throwable e) {<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>          handleCoprocessorThrowable(env, e);<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>        } finally {<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>          currentThread.setContextClassLoader(cl);<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>        }<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>        bypass |= ctx.shouldBypass();<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>        if (ctx.shouldComplete()) {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>          break;<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>        }<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>      }<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>      ctx.postEnvCall(env);<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    }<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>    return bypass;<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>  }<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>}<a name="line.1151"></a>
+<span class="sourceLineNo">1110</span>  public void postSetNamespaceQuota(final String namespace, final Quotas quotas) throws IOException{<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      @Override<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>          throws IOException {<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>        oserver.postSetNamespaceQuota(ctx, namespace, quotas);<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>      }<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>    });<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>  }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span><a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>  private static abstract class CoprocessorOperation<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      extends ObserverContext&lt;MasterCoprocessorEnvironment&gt; {<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>    public CoprocessorOperation() {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>    }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>    public abstract void call(MasterObserver oserver,<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>        ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx) throws IOException;<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span><a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>    public void postEnvCall(MasterEnvironment env) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>    }<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>  }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span><a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>  private static abstract class CoprocessorOperationWithResult&lt;T&gt; extends CoprocessorOperation {<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>    private T result = null;<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>    public void setResult(final T result) { this.result = result; }<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>    public T getResult() { return this.result; }<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>  }<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span><a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>  private &lt;T&gt; T execOperationWithResult(final T defaultValue,<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>      final CoprocessorOperationWithResult&lt;T&gt; ctx) throws IOException {<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>    if (ctx == null) return defaultValue;<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>    ctx.setResult(defaultValue);<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    execOperation(ctx);<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>    return ctx.getResult();<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>  }<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span><a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>  private boolean execOperation(final CoprocessorOperation ctx) throws IOException {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>    if (ctx == null) return false;<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>    boolean bypass = false;<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>    List&lt;MasterEnvironment&gt; envs = coprocessors.get();<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>    for (int i = 0; i &lt; envs.size(); i++) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>      MasterEnvironment env = envs.get(i);<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>      if (env.getInstance() instanceof MasterObserver) {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        ctx.prepare(env);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>        Thread currentThread = Thread.currentThread();<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>        ClassLoader cl = currentThread.getContextClassLoader();<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>        try {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>          currentThread.setContextClassLoader(env.getClassLoader());<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>          ctx.call((MasterObserver)env.getInstance(), ctx);<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>        } catch (Throwable e) {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>          handleCoprocessorThrowable(env, e);<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>        } finally {<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>          currentThread.setContextClassLoader(cl);<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>        }<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>        bypass |= ctx.shouldBypass();<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>        if (ctx.shouldComplete()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>          break;<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>        }<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>      }<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>      ctx.postEnvCall(env);<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    }<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    return bypass;<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>  }<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>}<a name="line.1173"></a>
 
 
 


[26/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/MasterObserver.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/MasterObserver.html b/devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/MasterObserver.html
index 1cf9118..bf56f58 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/MasterObserver.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/MasterObserver.html
@@ -1225,7 +1225,28 @@
 <span class="sourceLineNo">1217</span>   */<a name="line.1217"></a>
 <span class="sourceLineNo">1218</span>  void postSetNamespaceQuota(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1218"></a>
 <span class="sourceLineNo">1219</span>      final String namespace, final Quotas quotas) throws IOException;<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>}<a name="line.1220"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  /**<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>   * Called before dispatching region merge request. <a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>   * It can't bypass the default action, e.g., ctx.bypass() won't have effect.<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>   * @param ctx coprocessor environment<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>   * @param regionA first region to be merged<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>   * @param regionB second region to be merged<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>   * @throws IOException if an error occurred on the coprocessor<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>   */<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>  public void preDispatchMerge(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>      HRegionInfo regionA, HRegionInfo regionB) throws IOException;<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>  <a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>  /**<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>   * called after dispatching the region merge request.<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>   * @param c coprocessor environment<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>   * @param regionA first region to be merged<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>   * @param regionB second region to be merged<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>   * @throws IOException if an error occurred on the coprocessor<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>   */<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>  void postDispatchMerge(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; c,<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>      final HRegionInfo regionA, final HRegionInfo regionB) throws IOException;<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>}<a name="line.1241"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperation.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperation.html
index b64c029..b4de8ca 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperation.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperation.html
@@ -737,426 +737,448 @@
 <span class="sourceLineNo">729</span>    });<a name="line.729"></a>
 <span class="sourceLineNo">730</span>  }<a name="line.730"></a>
 <span class="sourceLineNo">731</span><a name="line.731"></a>
-<span class="sourceLineNo">732</span>  public boolean preBalance() throws IOException {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    return execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.733"></a>
-<span class="sourceLineNo">734</span>      @Override<a name="line.734"></a>
-<span class="sourceLineNo">735</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.735"></a>
-<span class="sourceLineNo">736</span>          throws IOException {<a name="line.736"></a>
-<span class="sourceLineNo">737</span>        oserver.preBalance(ctx);<a name="line.737"></a>
-<span class="sourceLineNo">738</span>      }<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    });<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  }<a name="line.740"></a>
-<span class="sourceLineNo">741</span><a name="line.741"></a>
-<span class="sourceLineNo">742</span>  public void postBalance(final List&lt;RegionPlan&gt; plans) throws IOException {<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.743"></a>
-<span class="sourceLineNo">744</span>      @Override<a name="line.744"></a>
-<span class="sourceLineNo">745</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.745"></a>
-<span class="sourceLineNo">746</span>          throws IOException {<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        oserver.postBalance(ctx, plans);<a name="line.747"></a>
-<span class="sourceLineNo">748</span>      }<a name="line.748"></a>
-<span class="sourceLineNo">749</span>    });<a name="line.749"></a>
-<span class="sourceLineNo">750</span>  }<a name="line.750"></a>
-<span class="sourceLineNo">751</span><a name="line.751"></a>
-<span class="sourceLineNo">752</span>  public boolean preBalanceSwitch(final boolean b) throws IOException {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    return execOperationWithResult(b, coprocessors.isEmpty() ? null :<a name="line.753"></a>
-<span class="sourceLineNo">754</span>        new CoprocessorOperationWithResult&lt;Boolean&gt;() {<a name="line.754"></a>
-<span class="sourceLineNo">755</span>      @Override<a name="line.755"></a>
-<span class="sourceLineNo">756</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          throws IOException {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>        setResult(oserver.preBalanceSwitch(ctx, getResult()));<a name="line.758"></a>
-<span class="sourceLineNo">759</span>      }<a name="line.759"></a>
-<span class="sourceLineNo">760</span>    });<a name="line.760"></a>
-<span class="sourceLineNo">761</span>  }<a name="line.761"></a>
-<span class="sourceLineNo">762</span><a name="line.762"></a>
-<span class="sourceLineNo">763</span>  public void postBalanceSwitch(final boolean oldValue, final boolean newValue)<a name="line.763"></a>
-<span class="sourceLineNo">764</span>      throws IOException {<a name="line.764"></a>
+<span class="sourceLineNo">732</span>  public void preDispatchMerge(final HRegionInfo regionInfoA, final HRegionInfo regionInfoB)<a name="line.732"></a>
+<span class="sourceLineNo">733</span>      throws IOException {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>      @Override<a name="line.735"></a>
+<span class="sourceLineNo">736</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.736"></a>
+<span class="sourceLineNo">737</span>          throws IOException {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>        oserver.preDispatchMerge(ctx, regionInfoA, regionInfoB);<a name="line.738"></a>
+<span class="sourceLineNo">739</span>      }<a name="line.739"></a>
+<span class="sourceLineNo">740</span>    });<a name="line.740"></a>
+<span class="sourceLineNo">741</span>  }<a name="line.741"></a>
+<span class="sourceLineNo">742</span><a name="line.742"></a>
+<span class="sourceLineNo">743</span>  public void postDispatchMerge(final HRegionInfo regionInfoA, final HRegionInfo regionInfoB)<a name="line.743"></a>
+<span class="sourceLineNo">744</span>      throws IOException {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>      @Override<a name="line.746"></a>
+<span class="sourceLineNo">747</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.747"></a>
+<span class="sourceLineNo">748</span>          throws IOException {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>        oserver.postDispatchMerge(ctx, regionInfoA, regionInfoB);<a name="line.749"></a>
+<span class="sourceLineNo">750</span>      }<a name="line.750"></a>
+<span class="sourceLineNo">751</span>    });<a name="line.751"></a>
+<span class="sourceLineNo">752</span>  }<a name="line.752"></a>
+<span class="sourceLineNo">753</span><a name="line.753"></a>
+<span class="sourceLineNo">754</span>  public boolean preBalance() throws IOException {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>    return execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>      @Override<a name="line.756"></a>
+<span class="sourceLineNo">757</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.757"></a>
+<span class="sourceLineNo">758</span>          throws IOException {<a name="line.758"></a>
+<span class="sourceLineNo">759</span>        oserver.preBalance(ctx);<a name="line.759"></a>
+<span class="sourceLineNo">760</span>      }<a name="line.760"></a>
+<span class="sourceLineNo">761</span>    });<a name="line.761"></a>
+<span class="sourceLineNo">762</span>  }<a name="line.762"></a>
+<span class="sourceLineNo">763</span><a name="line.763"></a>
+<span class="sourceLineNo">764</span>  public void postBalance(final List&lt;RegionPlan&gt; plans) throws IOException {<a name="line.764"></a>
 <span class="sourceLineNo">765</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.765"></a>
 <span class="sourceLineNo">766</span>      @Override<a name="line.766"></a>
 <span class="sourceLineNo">767</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.767"></a>
 <span class="sourceLineNo">768</span>          throws IOException {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>        oserver.postBalanceSwitch(ctx, oldValue, newValue);<a name="line.769"></a>
+<span class="sourceLineNo">769</span>        oserver.postBalance(ctx, plans);<a name="line.769"></a>
 <span class="sourceLineNo">770</span>      }<a name="line.770"></a>
 <span class="sourceLineNo">771</span>    });<a name="line.771"></a>
 <span class="sourceLineNo">772</span>  }<a name="line.772"></a>
 <span class="sourceLineNo">773</span><a name="line.773"></a>
-<span class="sourceLineNo">774</span>  public void preShutdown() throws IOException {<a name="line.774"></a>
-<span class="sourceLineNo">775</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.775"></a>
-<span class="sourceLineNo">776</span>      @Override<a name="line.776"></a>
-<span class="sourceLineNo">777</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.777"></a>
-<span class="sourceLineNo">778</span>          throws IOException {<a name="line.778"></a>
-<span class="sourceLineNo">779</span>        oserver.preShutdown(ctx);<a name="line.779"></a>
-<span class="sourceLineNo">780</span>      }<a name="line.780"></a>
-<span class="sourceLineNo">781</span>      @Override<a name="line.781"></a>
-<span class="sourceLineNo">782</span>      public void postEnvCall(MasterEnvironment env) {<a name="line.782"></a>
-<span class="sourceLineNo">783</span>        // invoke coprocessor stop method<a name="line.783"></a>
-<span class="sourceLineNo">784</span>        shutdown(env);<a name="line.784"></a>
-<span class="sourceLineNo">785</span>      }<a name="line.785"></a>
-<span class="sourceLineNo">786</span>    });<a name="line.786"></a>
-<span class="sourceLineNo">787</span>  }<a name="line.787"></a>
-<span class="sourceLineNo">788</span><a name="line.788"></a>
-<span class="sourceLineNo">789</span>  public void preStopMaster() throws IOException {<a name="line.789"></a>
-<span class="sourceLineNo">790</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.790"></a>
-<span class="sourceLineNo">791</span>      @Override<a name="line.791"></a>
-<span class="sourceLineNo">792</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.792"></a>
-<span class="sourceLineNo">793</span>          throws IOException {<a name="line.793"></a>
-<span class="sourceLineNo">794</span>        oserver.preStopMaster(ctx);<a name="line.794"></a>
-<span class="sourceLineNo">795</span>      }<a name="line.795"></a>
-<span class="sourceLineNo">796</span>      @Override<a name="line.796"></a>
-<span class="sourceLineNo">797</span>      public void postEnvCall(MasterEnvironment env) {<a name="line.797"></a>
-<span class="sourceLineNo">798</span>        // invoke coprocessor stop method<a name="line.798"></a>
-<span class="sourceLineNo">799</span>        shutdown(env);<a name="line.799"></a>
-<span class="sourceLineNo">800</span>      }<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    });<a name="line.801"></a>
-<span class="sourceLineNo">802</span>  }<a name="line.802"></a>
-<span class="sourceLineNo">803</span><a name="line.803"></a>
-<span class="sourceLineNo">804</span>  public void preMasterInitialization() throws IOException {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>      @Override<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.807"></a>
-<span class="sourceLineNo">808</span>          throws IOException {<a name="line.808"></a>
-<span class="sourceLineNo">809</span>        oserver.preMasterInitialization(ctx);<a name="line.809"></a>
-<span class="sourceLineNo">810</span>      }<a name="line.810"></a>
-<span class="sourceLineNo">811</span>    });<a name="line.811"></a>
-<span class="sourceLineNo">812</span>  }<a name="line.812"></a>
-<span class="sourceLineNo">813</span><a name="line.813"></a>
-<span class="sourceLineNo">814</span>  public void postStartMaster() throws IOException {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.815"></a>
-<span class="sourceLineNo">816</span>      @Override<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.817"></a>
-<span class="sourceLineNo">818</span>          throws IOException {<a name="line.818"></a>
-<span class="sourceLineNo">819</span>        oserver.postStartMaster(ctx);<a name="line.819"></a>
-<span class="sourceLineNo">820</span>      }<a name="line.820"></a>
-<span class="sourceLineNo">821</span>    });<a name="line.821"></a>
-<span class="sourceLineNo">822</span>  }<a name="line.822"></a>
-<span class="sourceLineNo">823</span><a name="line.823"></a>
-<span class="sourceLineNo">824</span>  public void preSnapshot(final SnapshotDescription snapshot,<a name="line.824"></a>
-<span class="sourceLineNo">825</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.825"></a>
-<span class="sourceLineNo">826</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.826"></a>
-<span class="sourceLineNo">827</span>      @Override<a name="line.827"></a>
-<span class="sourceLineNo">828</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.828"></a>
-<span class="sourceLineNo">829</span>          throws IOException {<a name="line.829"></a>
-<span class="sourceLineNo">830</span>        oserver.preSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      }<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    });<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  }<a name="line.833"></a>
-<span class="sourceLineNo">834</span><a name="line.834"></a>
-<span class="sourceLineNo">835</span>  public void postSnapshot(final SnapshotDescription snapshot,<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.836"></a>
+<span class="sourceLineNo">774</span>  public boolean preBalanceSwitch(final boolean b) throws IOException {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>    return execOperationWithResult(b, coprocessors.isEmpty() ? null :<a name="line.775"></a>
+<span class="sourceLineNo">776</span>        new CoprocessorOperationWithResult&lt;Boolean&gt;() {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>      @Override<a name="line.777"></a>
+<span class="sourceLineNo">778</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.778"></a>
+<span class="sourceLineNo">779</span>          throws IOException {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>        setResult(oserver.preBalanceSwitch(ctx, getResult()));<a name="line.780"></a>
+<span class="sourceLineNo">781</span>      }<a name="line.781"></a>
+<span class="sourceLineNo">782</span>    });<a name="line.782"></a>
+<span class="sourceLineNo">783</span>  }<a name="line.783"></a>
+<span class="sourceLineNo">784</span><a name="line.784"></a>
+<span class="sourceLineNo">785</span>  public void postBalanceSwitch(final boolean oldValue, final boolean newValue)<a name="line.785"></a>
+<span class="sourceLineNo">786</span>      throws IOException {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>      @Override<a name="line.788"></a>
+<span class="sourceLineNo">789</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.789"></a>
+<span class="sourceLineNo">790</span>          throws IOException {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>        oserver.postBalanceSwitch(ctx, oldValue, newValue);<a name="line.791"></a>
+<span class="sourceLineNo">792</span>      }<a name="line.792"></a>
+<span class="sourceLineNo">793</span>    });<a name="line.793"></a>
+<span class="sourceLineNo">794</span>  }<a name="line.794"></a>
+<span class="sourceLineNo">795</span><a name="line.795"></a>
+<span class="sourceLineNo">796</span>  public void preShutdown() throws IOException {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>      @Override<a name="line.798"></a>
+<span class="sourceLineNo">799</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.799"></a>
+<span class="sourceLineNo">800</span>          throws IOException {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>        oserver.preShutdown(ctx);<a name="line.801"></a>
+<span class="sourceLineNo">802</span>      }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>      @Override<a name="line.803"></a>
+<span class="sourceLineNo">804</span>      public void postEnvCall(MasterEnvironment env) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>        // invoke coprocessor stop method<a name="line.805"></a>
+<span class="sourceLineNo">806</span>        shutdown(env);<a name="line.806"></a>
+<span class="sourceLineNo">807</span>      }<a name="line.807"></a>
+<span class="sourceLineNo">808</span>    });<a name="line.808"></a>
+<span class="sourceLineNo">809</span>  }<a name="line.809"></a>
+<span class="sourceLineNo">810</span><a name="line.810"></a>
+<span class="sourceLineNo">811</span>  public void preStopMaster() throws IOException {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.812"></a>
+<span class="sourceLineNo">813</span>      @Override<a name="line.813"></a>
+<span class="sourceLineNo">814</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.814"></a>
+<span class="sourceLineNo">815</span>          throws IOException {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>        oserver.preStopMaster(ctx);<a name="line.816"></a>
+<span class="sourceLineNo">817</span>      }<a name="line.817"></a>
+<span class="sourceLineNo">818</span>      @Override<a name="line.818"></a>
+<span class="sourceLineNo">819</span>      public void postEnvCall(MasterEnvironment env) {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>        // invoke coprocessor stop method<a name="line.820"></a>
+<span class="sourceLineNo">821</span>        shutdown(env);<a name="line.821"></a>
+<span class="sourceLineNo">822</span>      }<a name="line.822"></a>
+<span class="sourceLineNo">823</span>    });<a name="line.823"></a>
+<span class="sourceLineNo">824</span>  }<a name="line.824"></a>
+<span class="sourceLineNo">825</span><a name="line.825"></a>
+<span class="sourceLineNo">826</span>  public void preMasterInitialization() throws IOException {<a name="line.826"></a>
+<span class="sourceLineNo">827</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>      @Override<a name="line.828"></a>
+<span class="sourceLineNo">829</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.829"></a>
+<span class="sourceLineNo">830</span>          throws IOException {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>        oserver.preMasterInitialization(ctx);<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      }<a name="line.832"></a>
+<span class="sourceLineNo">833</span>    });<a name="line.833"></a>
+<span class="sourceLineNo">834</span>  }<a name="line.834"></a>
+<span class="sourceLineNo">835</span><a name="line.835"></a>
+<span class="sourceLineNo">836</span>  public void postStartMaster() throws IOException {<a name="line.836"></a>
 <span class="sourceLineNo">837</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.837"></a>
 <span class="sourceLineNo">838</span>      @Override<a name="line.838"></a>
 <span class="sourceLineNo">839</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.839"></a>
 <span class="sourceLineNo">840</span>          throws IOException {<a name="line.840"></a>
-<span class="sourceLineNo">841</span>        oserver.postSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.841"></a>
+<span class="sourceLineNo">841</span>        oserver.postStartMaster(ctx);<a name="line.841"></a>
 <span class="sourceLineNo">842</span>      }<a name="line.842"></a>
 <span class="sourceLineNo">843</span>    });<a name="line.843"></a>
 <span class="sourceLineNo">844</span>  }<a name="line.844"></a>
 <span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  public void preListSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.846"></a>
-<span class="sourceLineNo">847</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.847"></a>
-<span class="sourceLineNo">848</span>      @Override<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      public void call(MasterObserver observer, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.849"></a>
-<span class="sourceLineNo">850</span>          throws IOException {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        observer.preListSnapshot(ctx, snapshot);<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      }<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    });<a name="line.853"></a>
-<span class="sourceLineNo">854</span>  }<a name="line.854"></a>
-<span class="sourceLineNo">855</span><a name="line.855"></a>
-<span class="sourceLineNo">856</span>  public void postListSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      @Override<a name="line.858"></a>
-<span class="sourceLineNo">859</span>      public void call(MasterObserver observer, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.859"></a>
-<span class="sourceLineNo">860</span>          throws IOException {<a name="line.860"></a>
-<span class="sourceLineNo">861</span>        observer.postListSnapshot(ctx, snapshot);<a name="line.861"></a>
-<span class="sourceLineNo">862</span>      }<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    });<a name="line.863"></a>
-<span class="sourceLineNo">864</span>  }<a name="line.864"></a>
-<span class="sourceLineNo">865</span><a name="line.865"></a>
-<span class="sourceLineNo">866</span>  public void preCloneSnapshot(final SnapshotDescription snapshot,<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      @Override<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.870"></a>
-<span class="sourceLineNo">871</span>          throws IOException {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>        oserver.preCloneSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.872"></a>
-<span class="sourceLineNo">873</span>      }<a name="line.873"></a>
-<span class="sourceLineNo">874</span>    });<a name="line.874"></a>
-<span class="sourceLineNo">875</span>  }<a name="line.875"></a>
-<span class="sourceLineNo">876</span><a name="line.876"></a>
-<span class="sourceLineNo">877</span>  public void postCloneSnapshot(final SnapshotDescription snapshot,<a name="line.877"></a>
-<span class="sourceLineNo">878</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.878"></a>
+<span class="sourceLineNo">846</span>  public void preSnapshot(final SnapshotDescription snapshot,<a name="line.846"></a>
+<span class="sourceLineNo">847</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>      @Override<a name="line.849"></a>
+<span class="sourceLineNo">850</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.850"></a>
+<span class="sourceLineNo">851</span>          throws IOException {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        oserver.preSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.852"></a>
+<span class="sourceLineNo">853</span>      }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>    });<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  }<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>  public void postSnapshot(final SnapshotDescription snapshot,<a name="line.857"></a>
+<span class="sourceLineNo">858</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>      @Override<a name="line.860"></a>
+<span class="sourceLineNo">861</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.861"></a>
+<span class="sourceLineNo">862</span>          throws IOException {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>        oserver.postSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>      }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>    });<a name="line.865"></a>
+<span class="sourceLineNo">866</span>  }<a name="line.866"></a>
+<span class="sourceLineNo">867</span><a name="line.867"></a>
+<span class="sourceLineNo">868</span>  public void preListSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>      @Override<a name="line.870"></a>
+<span class="sourceLineNo">871</span>      public void call(MasterObserver observer, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.871"></a>
+<span class="sourceLineNo">872</span>          throws IOException {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>        observer.preListSnapshot(ctx, snapshot);<a name="line.873"></a>
+<span class="sourceLineNo">874</span>      }<a name="line.874"></a>
+<span class="sourceLineNo">875</span>    });<a name="line.875"></a>
+<span class="sourceLineNo">876</span>  }<a name="line.876"></a>
+<span class="sourceLineNo">877</span><a name="line.877"></a>
+<span class="sourceLineNo">878</span>  public void postListSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.878"></a>
 <span class="sourceLineNo">879</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.879"></a>
 <span class="sourceLineNo">880</span>      @Override<a name="line.880"></a>
-<span class="sourceLineNo">881</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.881"></a>
+<span class="sourceLineNo">881</span>      public void call(MasterObserver observer, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.881"></a>
 <span class="sourceLineNo">882</span>          throws IOException {<a name="line.882"></a>
-<span class="sourceLineNo">883</span>        oserver.postCloneSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.883"></a>
+<span class="sourceLineNo">883</span>        observer.postListSnapshot(ctx, snapshot);<a name="line.883"></a>
 <span class="sourceLineNo">884</span>      }<a name="line.884"></a>
 <span class="sourceLineNo">885</span>    });<a name="line.885"></a>
 <span class="sourceLineNo">886</span>  }<a name="line.886"></a>
 <span class="sourceLineNo">887</span><a name="line.887"></a>
-<span class="sourceLineNo">888</span>  public void preRestoreSnapshot(final SnapshotDescription snapshot,<a name="line.888"></a>
+<span class="sourceLineNo">888</span>  public void preCloneSnapshot(final SnapshotDescription snapshot,<a name="line.888"></a>
 <span class="sourceLineNo">889</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.889"></a>
 <span class="sourceLineNo">890</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.890"></a>
 <span class="sourceLineNo">891</span>      @Override<a name="line.891"></a>
 <span class="sourceLineNo">892</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.892"></a>
 <span class="sourceLineNo">893</span>          throws IOException {<a name="line.893"></a>
-<span class="sourceLineNo">894</span>        oserver.preRestoreSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.894"></a>
+<span class="sourceLineNo">894</span>        oserver.preCloneSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.894"></a>
 <span class="sourceLineNo">895</span>      }<a name="line.895"></a>
 <span class="sourceLineNo">896</span>    });<a name="line.896"></a>
 <span class="sourceLineNo">897</span>  }<a name="line.897"></a>
 <span class="sourceLineNo">898</span><a name="line.898"></a>
-<span class="sourceLineNo">899</span>  public void postRestoreSnapshot(final SnapshotDescription snapshot,<a name="line.899"></a>
+<span class="sourceLineNo">899</span>  public void postCloneSnapshot(final SnapshotDescription snapshot,<a name="line.899"></a>
 <span class="sourceLineNo">900</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.900"></a>
 <span class="sourceLineNo">901</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.901"></a>
 <span class="sourceLineNo">902</span>      @Override<a name="line.902"></a>
 <span class="sourceLineNo">903</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.903"></a>
 <span class="sourceLineNo">904</span>          throws IOException {<a name="line.904"></a>
-<span class="sourceLineNo">905</span>        oserver.postRestoreSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.905"></a>
+<span class="sourceLineNo">905</span>        oserver.postCloneSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.905"></a>
 <span class="sourceLineNo">906</span>      }<a name="line.906"></a>
 <span class="sourceLineNo">907</span>    });<a name="line.907"></a>
 <span class="sourceLineNo">908</span>  }<a name="line.908"></a>
 <span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>  public void preDeleteSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.910"></a>
-<span class="sourceLineNo">911</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      @Override<a name="line.912"></a>
-<span class="sourceLineNo">913</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.913"></a>
-<span class="sourceLineNo">914</span>          throws IOException {<a name="line.914"></a>
-<span class="sourceLineNo">915</span>        oserver.preDeleteSnapshot(ctx, snapshot);<a name="line.915"></a>
-<span class="sourceLineNo">916</span>      }<a name="line.916"></a>
-<span class="sourceLineNo">917</span>    });<a name="line.917"></a>
-<span class="sourceLineNo">918</span>  }<a name="line.918"></a>
-<span class="sourceLineNo">919</span><a name="line.919"></a>
-<span class="sourceLineNo">920</span>  public void postDeleteSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.920"></a>
-<span class="sourceLineNo">921</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      @Override<a name="line.922"></a>
-<span class="sourceLineNo">923</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.923"></a>
-<span class="sourceLineNo">924</span>          throws IOException {<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        oserver.postDeleteSnapshot(ctx, snapshot);<a name="line.925"></a>
-<span class="sourceLineNo">926</span>      }<a name="line.926"></a>
-<span class="sourceLineNo">927</span>    });<a name="line.927"></a>
-<span class="sourceLineNo">928</span>  }<a name="line.928"></a>
-<span class="sourceLineNo">929</span><a name="line.929"></a>
-<span class="sourceLineNo">930</span>  public boolean preGetTableDescriptors(final List&lt;TableName&gt; tableNamesList,<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      final List&lt;HTableDescriptor&gt; descriptors, final String regex) throws IOException {<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    return execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      @Override<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.934"></a>
-<span class="sourceLineNo">935</span>          throws IOException {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>        oserver.preGetTableDescriptors(ctx, tableNamesList, descriptors, regex);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>      }<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    });<a name="line.938"></a>
-<span class="sourceLineNo">939</span>  }<a name="line.939"></a>
-<span class="sourceLineNo">940</span><a name="line.940"></a>
-<span class="sourceLineNo">941</span>  public void postGetTableDescriptors(final List&lt;TableName&gt; tableNamesList,<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      final List&lt;HTableDescriptor&gt; descriptors, final String regex) throws IOException {<a name="line.942"></a>
+<span class="sourceLineNo">910</span>  public void preRestoreSnapshot(final SnapshotDescription snapshot,<a name="line.910"></a>
+<span class="sourceLineNo">911</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.911"></a>
+<span class="sourceLineNo">912</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>      @Override<a name="line.913"></a>
+<span class="sourceLineNo">914</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.914"></a>
+<span class="sourceLineNo">915</span>          throws IOException {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>        oserver.preRestoreSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.916"></a>
+<span class="sourceLineNo">917</span>      }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>    });<a name="line.918"></a>
+<span class="sourceLineNo">919</span>  }<a name="line.919"></a>
+<span class="sourceLineNo">920</span><a name="line.920"></a>
+<span class="sourceLineNo">921</span>  public void postRestoreSnapshot(final SnapshotDescription snapshot,<a name="line.921"></a>
+<span class="sourceLineNo">922</span>      final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>      @Override<a name="line.924"></a>
+<span class="sourceLineNo">925</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.925"></a>
+<span class="sourceLineNo">926</span>          throws IOException {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>        oserver.postRestoreSnapshot(ctx, snapshot, hTableDescriptor);<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      }<a name="line.928"></a>
+<span class="sourceLineNo">929</span>    });<a name="line.929"></a>
+<span class="sourceLineNo">930</span>  }<a name="line.930"></a>
+<span class="sourceLineNo">931</span><a name="line.931"></a>
+<span class="sourceLineNo">932</span>  public void preDeleteSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      @Override<a name="line.934"></a>
+<span class="sourceLineNo">935</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.935"></a>
+<span class="sourceLineNo">936</span>          throws IOException {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>        oserver.preDeleteSnapshot(ctx, snapshot);<a name="line.937"></a>
+<span class="sourceLineNo">938</span>      }<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    });<a name="line.939"></a>
+<span class="sourceLineNo">940</span>  }<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>  public void postDeleteSnapshot(final SnapshotDescription snapshot) throws IOException {<a name="line.942"></a>
 <span class="sourceLineNo">943</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.943"></a>
 <span class="sourceLineNo">944</span>      @Override<a name="line.944"></a>
 <span class="sourceLineNo">945</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.945"></a>
 <span class="sourceLineNo">946</span>          throws IOException {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>        oserver.postGetTableDescriptors(ctx, tableNamesList, descriptors, regex);<a name="line.947"></a>
+<span class="sourceLineNo">947</span>        oserver.postDeleteSnapshot(ctx, snapshot);<a name="line.947"></a>
 <span class="sourceLineNo">948</span>      }<a name="line.948"></a>
 <span class="sourceLineNo">949</span>    });<a name="line.949"></a>
 <span class="sourceLineNo">950</span>  }<a name="line.950"></a>
 <span class="sourceLineNo">951</span><a name="line.951"></a>
-<span class="sourceLineNo">952</span>  public boolean preGetTableNames(final List&lt;HTableDescriptor&gt; descriptors,<a name="line.952"></a>
-<span class="sourceLineNo">953</span>      final String regex) throws IOException {<a name="line.953"></a>
+<span class="sourceLineNo">952</span>  public boolean preGetTableDescriptors(final List&lt;TableName&gt; tableNamesList,<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      final List&lt;HTableDescriptor&gt; descriptors, final String regex) throws IOException {<a name="line.953"></a>
 <span class="sourceLineNo">954</span>    return execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.954"></a>
 <span class="sourceLineNo">955</span>      @Override<a name="line.955"></a>
 <span class="sourceLineNo">956</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.956"></a>
 <span class="sourceLineNo">957</span>          throws IOException {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>        oserver.preGetTableNames(ctx, descriptors, regex);<a name="line.958"></a>
+<span class="sourceLineNo">958</span>        oserver.preGetTableDescriptors(ctx, tableNamesList, descriptors, regex);<a name="line.958"></a>
 <span class="sourceLineNo">959</span>      }<a name="line.959"></a>
 <span class="sourceLineNo">960</span>    });<a name="line.960"></a>
 <span class="sourceLineNo">961</span>  }<a name="line.961"></a>
 <span class="sourceLineNo">962</span><a name="line.962"></a>
-<span class="sourceLineNo">963</span>  public void postGetTableNames(final List&lt;HTableDescriptor&gt; descriptors,<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      final String regex) throws IOException {<a name="line.964"></a>
+<span class="sourceLineNo">963</span>  public void postGetTableDescriptors(final List&lt;TableName&gt; tableNamesList,<a name="line.963"></a>
+<span class="sourceLineNo">964</span>      final List&lt;HTableDescriptor&gt; descriptors, final String regex) throws IOException {<a name="line.964"></a>
 <span class="sourceLineNo">965</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.965"></a>
 <span class="sourceLineNo">966</span>      @Override<a name="line.966"></a>
 <span class="sourceLineNo">967</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.967"></a>
 <span class="sourceLineNo">968</span>          throws IOException {<a name="line.968"></a>
-<span class="sourceLineNo">969</span>        oserver.postGetTableNames(ctx, descriptors, regex);<a name="line.969"></a>
+<span class="sourceLineNo">969</span>        oserver.postGetTableDescriptors(ctx, tableNamesList, descriptors, regex);<a name="line.969"></a>
 <span class="sourceLineNo">970</span>      }<a name="line.970"></a>
 <span class="sourceLineNo">971</span>    });<a name="line.971"></a>
 <span class="sourceLineNo">972</span>  }<a name="line.972"></a>
 <span class="sourceLineNo">973</span><a name="line.973"></a>
-<span class="sourceLineNo">974</span>  public void preTableFlush(final TableName tableName) throws IOException {<a name="line.974"></a>
-<span class="sourceLineNo">975</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>      @Override<a name="line.976"></a>
-<span class="sourceLineNo">977</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.977"></a>
-<span class="sourceLineNo">978</span>          throws IOException {<a name="line.978"></a>
-<span class="sourceLineNo">979</span>        oserver.preTableFlush(ctx, tableName);<a name="line.979"></a>
-<span class="sourceLineNo">980</span>      }<a name="line.980"></a>
-<span class="sourceLineNo">981</span>    });<a name="line.981"></a>
-<span class="sourceLineNo">982</span>  }<a name="line.982"></a>
-<span class="sourceLineNo">983</span><a name="line.983"></a>
-<span class="sourceLineNo">984</span>  public void postTableFlush(final TableName tableName) throws IOException {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      @Override<a name="line.986"></a>
-<span class="sourceLineNo">987</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.987"></a>
-<span class="sourceLineNo">988</span>          throws IOException {<a name="line.988"></a>
-<span class="sourceLineNo">989</span>        oserver.postTableFlush(ctx, tableName);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>      }<a name="line.990"></a>
-<span class="sourceLineNo">991</span>    });<a name="line.991"></a>
-<span class="sourceLineNo">992</span>  }<a name="line.992"></a>
-<span class="sourceLineNo">993</span><a name="line.993"></a>
-<span class="sourceLineNo">994</span>  public void preSetUserQuota(final String user, final Quotas quotas) throws IOException {<a name="line.994"></a>
-<span class="sourceLineNo">995</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.995"></a>
-<span class="sourceLineNo">996</span>      @Override<a name="line.996"></a>
-<span class="sourceLineNo">997</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.997"></a>
-<span class="sourceLineNo">998</span>          throws IOException {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>        oserver.preSetUserQuota(ctx, user, quotas);<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>      }<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    });<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>  }<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>  public void postSetUserQuota(final String user, final Quotas quotas) throws IOException {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      @Override<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>          throws IOException {<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>        oserver.postSetUserQuota(ctx, user, quotas);<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      }<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>    });<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>  }<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span><a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  public void preSetUserQuota(final String user, final TableName table, final Quotas quotas)<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      throws IOException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>      @Override<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>          throws IOException {<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        oserver.preSetUserQuota(ctx, user, table, quotas);<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    });<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>  }<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span><a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>  public void postSetUserQuota(final String user, final TableName table, final Quotas quotas)<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>      throws IOException {<a name="line.1026"></a>
+<span class="sourceLineNo">974</span>  public boolean preGetTableNames(final List&lt;HTableDescriptor&gt; descriptors,<a name="line.974"></a>
+<span class="sourceLineNo">975</span>      final String regex) throws IOException {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>    return execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      @Override<a name="line.977"></a>
+<span class="sourceLineNo">978</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.978"></a>
+<span class="sourceLineNo">979</span>          throws IOException {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>        oserver.preGetTableNames(ctx, descriptors, regex);<a name="line.980"></a>
+<span class="sourceLineNo">981</span>      }<a name="line.981"></a>
+<span class="sourceLineNo">982</span>    });<a name="line.982"></a>
+<span class="sourceLineNo">983</span>  }<a name="line.983"></a>
+<span class="sourceLineNo">984</span><a name="line.984"></a>
+<span class="sourceLineNo">985</span>  public void postGetTableNames(final List&lt;HTableDescriptor&gt; descriptors,<a name="line.985"></a>
+<span class="sourceLineNo">986</span>      final String regex) throws IOException {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      @Override<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.989"></a>
+<span class="sourceLineNo">990</span>          throws IOException {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>        oserver.postGetTableNames(ctx, descriptors, regex);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>      }<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    });<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  }<a name="line.994"></a>
+<span class="sourceLineNo">995</span><a name="line.995"></a>
+<span class="sourceLineNo">996</span>  public void preTableFlush(final TableName tableName) throws IOException {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>      @Override<a name="line.998"></a>
+<span class="sourceLineNo">999</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>          throws IOException {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>        oserver.preTableFlush(ctx, tableName);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>      }<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>    });<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>  }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span><a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>  public void postTableFlush(final TableName tableName) throws IOException {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>      @Override<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>          throws IOException {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>        oserver.postTableFlush(ctx, tableName);<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>      }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>    });<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>  }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>  public void preSetUserQuota(final String user, final Quotas quotas) throws IOException {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>      @Override<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          throws IOException {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>        oserver.preSetUserQuota(ctx, user, quotas);<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>      }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>    });<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>  }<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span><a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>  public void postSetUserQuota(final String user, final Quotas quotas) throws IOException {<a name="line.1026"></a>
 <span class="sourceLineNo">1027</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1027"></a>
 <span class="sourceLineNo">1028</span>      @Override<a name="line.1028"></a>
 <span class="sourceLineNo">1029</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1029"></a>
 <span class="sourceLineNo">1030</span>          throws IOException {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>        oserver.postSetUserQuota(ctx, user, table, quotas);<a name="line.1031"></a>
+<span class="sourceLineNo">1031</span>        oserver.postSetUserQuota(ctx, user, quotas);<a name="line.1031"></a>
 <span class="sourceLineNo">1032</span>      }<a name="line.1032"></a>
 <span class="sourceLineNo">1033</span>    });<a name="line.1033"></a>
 <span class="sourceLineNo">1034</span>  }<a name="line.1034"></a>
 <span class="sourceLineNo">1035</span><a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>  public void preSetUserQuota(final String user, final String namespace, final Quotas quotas)<a name="line.1036"></a>
+<span class="sourceLineNo">1036</span>  public void preSetUserQuota(final String user, final TableName table, final Quotas quotas)<a name="line.1036"></a>
 <span class="sourceLineNo">1037</span>      throws IOException {<a name="line.1037"></a>
 <span class="sourceLineNo">1038</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1038"></a>
 <span class="sourceLineNo">1039</span>      @Override<a name="line.1039"></a>
 <span class="sourceLineNo">1040</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1040"></a>
 <span class="sourceLineNo">1041</span>          throws IOException {<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        oserver.preSetUserQuota(ctx, user, namespace, quotas);<a name="line.1042"></a>
+<span class="sourceLineNo">1042</span>        oserver.preSetUserQuota(ctx, user, table, quotas);<a name="line.1042"></a>
 <span class="sourceLineNo">1043</span>      }<a name="line.1043"></a>
 <span class="sourceLineNo">1044</span>    });<a name="line.1044"></a>
 <span class="sourceLineNo">1045</span>  }<a name="line.1045"></a>
 <span class="sourceLineNo">1046</span><a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>  public void postSetUserQuota(final String user, final String namespace, final Quotas quotas)<a name="line.1047"></a>
+<span class="sourceLineNo">1047</span>  public void postSetUserQuota(final String user, final TableName table, final Quotas quotas)<a name="line.1047"></a>
 <span class="sourceLineNo">1048</span>      throws IOException {<a name="line.1048"></a>
 <span class="sourceLineNo">1049</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1049"></a>
 <span class="sourceLineNo">1050</span>      @Override<a name="line.1050"></a>
 <span class="sourceLineNo">1051</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1051"></a>
 <span class="sourceLineNo">1052</span>          throws IOException {<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>        oserver.postSetUserQuota(ctx, user, namespace, quotas);<a name="line.1053"></a>
+<span class="sourceLineNo">1053</span>        oserver.postSetUserQuota(ctx, user, table, quotas);<a name="line.1053"></a>
 <span class="sourceLineNo">1054</span>      }<a name="line.1054"></a>
 <span class="sourceLineNo">1055</span>    });<a name="line.1055"></a>
 <span class="sourceLineNo">1056</span>  }<a name="line.1056"></a>
 <span class="sourceLineNo">1057</span><a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>  public void preSetTableQuota(final TableName table, final Quotas quotas) throws IOException {<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>      @Override<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>          throws IOException {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>        oserver.preSetTableQuota(ctx, table, quotas);<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>      }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>    });<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>  }<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span><a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>  public void postSetTableQuota(final TableName table, final Quotas quotas) throws IOException {<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      @Override<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>          throws IOException {<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>        oserver.postSetTableQuota(ctx, table, quotas);<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      }<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    });<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>  }<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span><a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>  public void preSetNamespaceQuota(final String namespace, final Quotas quotas) throws IOException {<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>      @Override<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>          throws IOException {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>        oserver.preSetNamespaceQuota(ctx, namespace, quotas);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>      }<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>    });<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>  }<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span><a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>  public void postSetNamespaceQuota(final String namespace, final Quotas quotas) throws IOException{<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>      @Override<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>          throws IOException {<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>        oserver.postSetNamespaceQuota(ctx, namespace, quotas);<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>      }<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    });<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>  }<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span><a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>  private static abstract class CoprocessorOperation<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>      extends ObserverContext&lt;MasterCoprocessorEnvironment&gt; {<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>    public CoprocessorOperation() {<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span><a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    public abstract void call(MasterObserver oserver,<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>        ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx) throws IOException;<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span><a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>    public void postEnvCall(MasterEnvironment env) {<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    }<a name="line.1107"></a>
+<span class="sourceLineNo">1058</span>  public void preSetUserQuota(final String user, final String namespace, final Quotas quotas)<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      throws IOException {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>      @Override<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>          throws IOException {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        oserver.preSetUserQuota(ctx, user, namespace, quotas);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>      }<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>    });<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>  }<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span><a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>  public void postSetUserQuota(final String user, final String namespace, final Quotas quotas)<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      throws IOException {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      @Override<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>          throws IOException {<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>        oserver.postSetUserQuota(ctx, user, namespace, quotas);<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>      }<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>    });<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>  }<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span><a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>  public void preSetTableQuota(final TableName table, final Quotas quotas) throws IOException {<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      @Override<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>          throws IOException {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>        oserver.preSetTableQuota(ctx, table, quotas);<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>      }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>    });<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>  }<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span><a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>  public void postSetTableQuota(final TableName table, final Quotas quotas) throws IOException {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>      @Override<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>          throws IOException {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>        oserver.postSetTableQuota(ctx, table, quotas);<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>      }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>    });<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>  }<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span><a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>  public void preSetNamespaceQuota(final String namespace, final Quotas quotas) throws IOException {<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      @Override<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>          throws IOException {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>        oserver.preSetNamespaceQuota(ctx, namespace, quotas);<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>      }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    });<a name="line.1107"></a>
 <span class="sourceLineNo">1108</span>  }<a name="line.1108"></a>
 <span class="sourceLineNo">1109</span><a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>  private static abstract class CoprocessorOperationWithResult&lt;T&gt; extends CoprocessorOperation {<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>    private T result = null;<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    public void setResult(final T result) { this.result = result; }<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    public T getResult() { return this.result; }<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>  }<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span><a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>  private &lt;T&gt; T execOperationWithResult(final T defaultValue,<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>      final CoprocessorOperationWithResult&lt;T&gt; ctx) throws IOException {<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>    if (ctx == null) return defaultValue;<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    ctx.setResult(defaultValue);<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    execOperation(ctx);<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    return ctx.getResult();<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>  }<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span><a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>  private boolean execOperation(final CoprocessorOperation ctx) throws IOException {<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    if (ctx == null) return false;<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>    boolean bypass = false;<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>    List&lt;MasterEnvironment&gt; envs = coprocessors.get();<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>    for (int i = 0; i &lt; envs.size(); i++) {<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>      MasterEnvironment env = envs.get(i);<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>      if (env.getInstance() instanceof MasterObserver) {<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>        ctx.prepare(env);<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>        Thread currentThread = Thread.currentThread();<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>        ClassLoader cl = currentThread.getContextClassLoader();<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>        try {<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>          currentThread.setContextClassLoader(env.getClassLoader());<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>          ctx.call((MasterObserver)env.getInstance(), ctx);<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>        } catch (Throwable e) {<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>          handleCoprocessorThrowable(env, e);<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>        } finally {<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>          currentThread.setContextClassLoader(cl);<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>        }<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>        bypass |= ctx.shouldBypass();<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>        if (ctx.shouldComplete()) {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>          break;<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>        }<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>      }<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>      ctx.postEnvCall(env);<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    }<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>    return bypass;<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>  }<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>}<a name="line.1151"></a>
+<span class="sourceLineNo">1110</span>  public void postSetNamespaceQuota(final String namespace, final Quotas quotas) throws IOException{<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>    execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      @Override<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>      public void call(MasterObserver oserver, ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>          throws IOException {<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>        oserver.postSetNamespaceQuota(ctx, namespace, quotas);<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>      }<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>    });<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>  }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span><a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>  private static abstract class CoprocessorOperation<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      extends ObserverContext&lt;MasterCoprocessorEnvironment&gt; {<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>    public CoprocessorOperation() {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>    }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>    public abstract void call(MasterObserver oserver,<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>        ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx) throws IOException;<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span><a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>    public void postEnvCall(MasterEnvironment env) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>    }<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>  }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span><a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>  private static abstract class CoprocessorOperationWithResult&lt;T&gt; extends CoprocessorOperation {<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>    private T result = null;<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>    public void setResult(final T result) { this.result = result; }<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>    public T getResult() { return this.result; }<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>  }<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span><a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>  private &lt;T&gt; T execOperationWithResult(final T defaultValue,<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>      final CoprocessorOperationWithResult&lt;T&gt; ctx) throws IOException {<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>    if (ctx == null) return defaultValue;<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>    ctx.setResult(defaultValue);<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    execOperation(ctx);<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>    return ctx.getResult();<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>  }<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span><a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>  private boolean execOperation(final CoprocessorOperation ctx) throws IOException {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>    if (ctx == null) return false;<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>    boolean bypass = false;<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>    List&lt;MasterEnvironment&gt; envs = coprocessors.get();<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>    for (int i = 0; i &lt; envs.size(); i++) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>      MasterEnvironment env = envs.get(i);<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>      if (env.getInstance() instanceof MasterObserver) {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        ctx.prepare(env);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>        Thread currentThread = Thread.currentThread();<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>        ClassLoader cl = currentThread.getContextClassLoader();<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>        try {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>          currentThread.setContextClassLoader(env.getClassLoader());<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>          ctx.call((MasterObserver)env.getInstance(), ctx);<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>        } catch (Throwable e) {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>          handleCoprocessorThrowable(env, e);<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>        } finally {<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>          currentThread.setContextClassLoader(cl);<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>        }<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>        bypass |= ctx.shouldBypass();<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>        if (ctx.shouldComplete()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>          break;<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>        }<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>      }<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>      ctx.postEnvCall(env);<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    }<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    return bypass;<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>  }<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>}<a name="line.1173"></a>
 
 
 


[31/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemRegion.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemRegion.html b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemRegion.html
index b8f9751..1b0345a 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemRegion.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemRegion.html
@@ -103,7 +103,7 @@
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3979">HBaseFsck.WorkItemRegion</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.html#line.3980">HBaseFsck.WorkItemRegion</a>
 extends <a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</pre>
 <div class="block">Contact a region server and get all information from it</div>
@@ -212,7 +212,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockList">
 <li class="blockList">
 <h4>hbck</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemRegion.html#line.3980">hbck</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemRegion.html#line.3981">hbck</a></pre>
 </li>
 </ul>
 <a name="rsinfo">
@@ -221,7 +221,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockList">
 <li class="blockList">
 <h4>rsinfo</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemRegion.html#line.3981">rsinfo</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemRegion.html#line.3982">rsinfo</a></pre>
 </li>
 </ul>
 <a name="errors">
@@ -230,7 +230,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockList">
 <li class="blockList">
 <h4>errors</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemRegion.html#line.3982">errors</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemRegion.html#line.3983">errors</a></pre>
 </li>
 </ul>
 <a name="connection">
@@ -239,7 +239,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>connection</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/HConnection.html" title="interface in org.apache.hadoop.hbase.client">HConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemRegion.html#line.3983">connection</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/HConnection.html" title="interface in org.apache.hadoop.hbase.client">HConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemRegion.html#line.3984">connection</a></pre>
 </li>
 </ul>
 </li>
@@ -256,7 +256,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HBaseFsck.WorkItemRegion</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemRegion.html#line.3985">HBaseFsck.WorkItemRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck</a>&nbsp;hbck,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemRegion.html#line.3986">HBaseFsck.WorkItemRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck</a>&nbsp;hbck,
                         <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;info,
                         <a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a>&nbsp;errors,
                         <a href="../../../../../org/apache/hadoop/hbase/client/HConnection.html" title="interface in org.apache.hadoop.hbase.client">HConnection</a>&nbsp;connection)</pre>
@@ -276,7 +276,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockList">
 <li class="blockList">
 <h4>call</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemRegion.html#line.3994">call</a>()
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/HBaseFsck.WorkItemRegion.html#line.3995">call</a>()
           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
@@ -291,7 +291,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>filterRegions</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.WorkItemRegion.html#line.4028">filterRegions</a>(<a href="http://docs.oracle.com/javase/7/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;regions)</pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/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/util/HBaseFsck.WorkItemRegion.html#line.4029">filterRegions</a>(<a href="http://docs.oracle.com/javase/7/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;regions)</pre>
 </li>
 </ul>
 </li>


[38/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html b/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html
index 3b458dc..c2288ce 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html
@@ -367,7 +367,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ProcedureWALFormat</h4>
-<pre>private&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.72">ProcedureWALFormat</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.71">ProcedureWALFormat</a>()</pre>
 </li>
 </ul>
 </li>
@@ -384,7 +384,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>load</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.74">load</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&gt;&nbsp;logs,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.73">load</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFile</a>&gt;&nbsp;logs,
         <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker</a>&nbsp;tracker,
         <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.Loader.html" title="interface in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormat.Loader</a>&nbsp;loader)
                  throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -398,7 +398,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>writeHeader</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.97">writeHeader</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;stream,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.96">writeHeader</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;stream,
                org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALHeader&nbsp;header)
                         throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -411,7 +411,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>writeTrailer</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.117">writeTrailer</a>(org.apache.hadoop.fs.FSDataOutputStream&nbsp;stream,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.116">writeTrailer</a>(org.apache.hadoop.fs.FSDataOutputStream&nbsp;stream,
                 <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreTracker</a>&nbsp;tracker)
                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -424,7 +424,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>readHeader</h4>
-<pre>public static&nbsp;org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALHeader&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.134">readHeader</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;stream)
+<pre>public static&nbsp;org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALHeader&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.133">readHeader</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;stream)
                                                                                                 throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -436,7 +436,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>readTrailer</h4>
-<pre>public static&nbsp;org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALTrailer&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.159">readTrailer</a>(org.apache.hadoop.fs.FSDataInputStream&nbsp;stream,
+<pre>public static&nbsp;org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALTrailer&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.158">readTrailer</a>(org.apache.hadoop.fs.FSDataInputStream&nbsp;stream,
                                                                                          long&nbsp;startPos,
                                                                                          long&nbsp;size)
                                                                                                   throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -450,7 +450,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>readEntry</h4>
-<pre>public static&nbsp;org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.195">readEntry</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;stream)
+<pre>public static&nbsp;org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.194">readEntry</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;stream)
                                                                                               throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -462,7 +462,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>writeEntry</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.199">writeEntry</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/util/ByteSlot.html" title="class in org.apache.hadoop.hbase.procedure2.util">ByteSlot</a>&nbsp;slot,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.198">writeEntry</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/util/ByteSlot.html" title="class in org.apache.hadoop.hbase.procedure2.util">ByteSlot</a>&nbsp;slot,
               org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry.Type&nbsp;type,
               <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/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>[]&nbsp;subprocs)
@@ -477,7 +477,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>writeInsert</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.212">writeInsert</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/util/ByteSlot.html" title="class in org.apache.hadoop.hbase.procedure2.util">ByteSlot</a>&nbsp;slot,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.211">writeInsert</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/util/ByteSlot.html" title="class in org.apache.hadoop.hbase.procedure2.util">ByteSlot</a>&nbsp;slot,
                <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc)
                         throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -490,7 +490,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>writeInsert</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.217">writeInsert</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/util/ByteSlot.html" title="class in org.apache.hadoop.hbase.procedure2.util">ByteSlot</a>&nbsp;slot,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.216">writeInsert</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/util/ByteSlot.html" title="class in org.apache.hadoop.hbase.procedure2.util">ByteSlot</a>&nbsp;slot,
                <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/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>[]&nbsp;subprocs)
                         throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -504,7 +504,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>writeUpdate</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.222">writeUpdate</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/util/ByteSlot.html" title="class in org.apache.hadoop.hbase.procedure2.util">ByteSlot</a>&nbsp;slot,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.221">writeUpdate</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/util/ByteSlot.html" title="class in org.apache.hadoop.hbase.procedure2.util">ByteSlot</a>&nbsp;slot,
                <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc)
                         throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -517,7 +517,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>writeDelete</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.227">writeDelete</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/util/ByteSlot.html" title="class in org.apache.hadoop.hbase.procedure2.util">ByteSlot</a>&nbsp;slot,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.html#line.226">writeDelete</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/util/ByteSlot.html" title="class in org.apache.hadoop.hbase.procedure2.util">ByteSlot</a>&nbsp;slot,
                long&nbsp;procId)
                         throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html b/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html
index 660d082..d52d840 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html
@@ -99,7 +99,7 @@
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.245">ProcedureWALFormatReader.Entry</a>
+<pre>private static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.244">ProcedureWALFormatReader.Entry</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -192,17 +192,25 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <td class="colLast"><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#convert()">convert</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#convertToInfo()">convertToInfo</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#getParentId()">getParentId</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#getProcId()">getProcId</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#hasParent()">hasParent</a></strong>()</code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#isCompleted()">isCompleted</a></strong>()</code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#isReady()">isReady</a></strong>()</code>&nbsp;</td>
@@ -239,7 +247,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hashNext</h4>
-<pre>protected&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.247">hashNext</a></pre>
+<pre>protected&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.246">hashNext</a></pre>
 </li>
 </ul>
 <a name="childHead">
@@ -248,7 +256,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>childHead</h4>
-<pre>protected&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.249">childHead</a></pre>
+<pre>protected&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.248">childHead</a></pre>
 </li>
 </ul>
 <a name="linkNext">
@@ -257,7 +265,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>linkNext</h4>
-<pre>protected&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.251">linkNext</a></pre>
+<pre>protected&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.250">linkNext</a></pre>
 </li>
 </ul>
 <a name="linkPrev">
@@ -266,7 +274,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>linkPrev</h4>
-<pre>protected&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.252">linkPrev</a></pre>
+<pre>protected&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.251">linkPrev</a></pre>
 </li>
 </ul>
 <a name="replayNext">
@@ -275,7 +283,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>replayNext</h4>
-<pre>protected&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.254">replayNext</a></pre>
+<pre>protected&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.253">replayNext</a></pre>
 </li>
 </ul>
 <a name="replayPrev">
@@ -284,7 +292,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>replayPrev</h4>
-<pre>protected&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.255">replayPrev</a></pre>
+<pre>protected&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.254">replayPrev</a></pre>
 </li>
 </ul>
 <a name="procedure">
@@ -293,7 +301,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>procedure</h4>
-<pre>protected&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.257">procedure</a></pre>
+<pre>protected&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.256">procedure</a></pre>
 </li>
 </ul>
 <a name="proto">
@@ -302,7 +310,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>proto</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.Procedure <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.258">proto</a></pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.Procedure <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.257">proto</a></pre>
 </li>
 </ul>
 <a name="ready">
@@ -311,7 +319,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ready</h4>
-<pre>protected&nbsp;boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.259">ready</a></pre>
+<pre>protected&nbsp;boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.258">ready</a></pre>
 </li>
 </ul>
 </li>
@@ -328,7 +336,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ProcedureWALFormatReader.Entry</h4>
-<pre>public&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.261">ProcedureWALFormatReader.Entry</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;hashNext)</pre>
+<pre>public&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.260">ProcedureWALFormatReader.Entry</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;hashNext)</pre>
 </li>
 </ul>
 </li>
@@ -345,7 +353,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcId</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.263">getProcId</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.262">getProcId</a>()</pre>
 </li>
 </ul>
 <a name="getParentId()">
@@ -354,7 +362,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getParentId</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.264">getParentId</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.263">getParentId</a>()</pre>
 </li>
 </ul>
 <a name="hasParent()">
@@ -363,7 +371,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hasParent</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.265">hasParent</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.264">hasParent</a>()</pre>
 </li>
 </ul>
 <a name="isReady()">
@@ -372,7 +380,16 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>isReady</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.266">isReady</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.265">isReady</a>()</pre>
+</li>
+</ul>
+<a name="isCompleted()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isCompleted</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.267">isCompleted</a>()</pre>
 </li>
 </ul>
 <a name="convert()">
@@ -381,19 +398,28 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.268">convert</a>()
+<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.281">convert</a>()
                   throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/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="convertToInfo()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convertToInfo</h4>
+<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.288">convertToInfo</a>()</pre>
+</li>
+</ul>
 <a name="toString()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.276">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/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/procedure2/store/wal/ProcedureWALFormatReader.Entry.html#line.293">toString</a>()</pre>
 <dl>
 <dt><strong>Overrides:</strong></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html b/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html
index 75dd5f1..e32aa3d 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html
@@ -103,7 +103,7 @@
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.281">ProcedureWALFormatReader.EntryIterator</a>
+<pre>private static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.298">ProcedureWALFormatReader.EntryIterator</a>
 extends <a href="http://docs.oracle.com/javase/7/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/procedure2/store/ProcedureStore.ProcedureIterator.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureIterator</a></pre>
 </li>
@@ -171,17 +171,31 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/stor
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#isNextCompleted()">isNextCompleted</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></code></td>
-<td class="colLast"><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#next()">next</a></strong>()</code>
+<td class="colLast"><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#nextAsProcedure()">nextAsProcedure</a></strong>()</code>
 <div class="block">Returns the next procedure in the iteration.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#nextAsProcedureInfo()">nextAsProcedureInfo</a></strong>()</code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#reset()">reset</a></strong>()</code>
 <div class="block">Reset the Iterator by seeking to the beginning of the list.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#skipNext()">skipNext</a></strong>()</code>
+<div class="block">Skip the next procedure</div>
+</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
@@ -210,7 +224,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/stor
 <ul class="blockList">
 <li class="blockList">
 <h4>replayHead</h4>
-<pre>private final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#line.282">replayHead</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#line.299">replayHead</a></pre>
 </li>
 </ul>
 <a name="current">
@@ -219,7 +233,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/stor
 <ul class="blockListLast">
 <li class="blockList">
 <h4>current</h4>
-<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#line.283">current</a></pre>
+<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#line.300">current</a></pre>
 </li>
 </ul>
 </li>
@@ -236,7 +250,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/stor
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ProcedureWALFormatReader.EntryIterator</h4>
-<pre>public&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#line.285">ProcedureWALFormatReader.EntryIterator</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;replayHead)</pre>
+<pre>public&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#line.302">ProcedureWALFormatReader.EntryIterator</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;replayHead)</pre>
 </li>
 </ul>
 </li>
@@ -253,7 +267,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/stor
 <ul class="blockList">
 <li class="blockList">
 <h4>reset</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#line.291">reset</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#line.308">reset</a>()</pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#reset()">ProcedureStore.ProcedureIterator</a></code></strong></div>
 <div class="block">Reset the Iterator by seeking to the beginning of the list.</div>
 <dl>
@@ -268,7 +282,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/stor
 <ul class="blockList">
 <li class="blockList">
 <h4>hasNext</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#line.296">hasNext</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#line.313">hasNext</a>()</pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#hasNext()">ProcedureStore.ProcedureIterator</a></code></strong></div>
 <div class="block">Returns true if the iterator has more elements.
  (In other words, returns true if next() would return a Procedure
@@ -279,24 +293,65 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/stor
 <dt><span class="strong">Returns:</span></dt><dd>true if the iterator has more procedures</dd></dl>
 </li>
 </ul>
-<a name="next()">
+<a name="isNextCompleted()">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
+<li class="blockList">
+<h4>isNextCompleted</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#line.318">isNextCompleted</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#isNextCompleted()">isNextCompleted</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if the iterator next element is a completed procedure.</dd></dl>
+</li>
+</ul>
+<a name="skipNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>skipNext</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#line.323">skipNext</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#skipNext()">ProcedureStore.ProcedureIterator</a></code></strong></div>
+<div class="block">Skip the next procedure</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#skipNext()">skipNext</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="nextAsProcedure()">
+<!--   -->
+</a>
+<ul class="blockList">
 <li class="blockList">
-<h4>next</h4>
-<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#line.301">next</a>()
-               throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
-<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#next()">ProcedureStore.ProcedureIterator</a></code></strong></div>
+<h4>nextAsProcedure</h4>
+<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#line.328">nextAsProcedure</a>()
+                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#nextAsProcedure()">ProcedureStore.ProcedureIterator</a></code></strong></div>
 <div class="block">Returns the next procedure in the iteration.</div>
 <dl>
 <dt><strong>Specified by:</strong></dt>
-<dd><code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#next()">next</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureIterator</a></code></dd>
+<dd><code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#nextAsProcedure()">nextAsProcedure</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureIterator</a></code></dd>
 <dt><span class="strong">Returns:</span></dt><dd>the next procedure in the iteration.</dd>
 <dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if there was an error fetching/deserializing the procedure</dd></dl>
 </li>
 </ul>
+<a name="nextAsProcedureInfo()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>nextAsProcedureInfo</h4>
+<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html#line.337">nextAsProcedureInfo</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html#nextAsProcedureInfo()">nextAsProcedureInfo</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the next procedure in the iteration as ProcedureInfo.</dd></dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html b/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html
index 5661832..f8c676d 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html
@@ -99,7 +99,7 @@
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.310">ProcedureWALFormatReader.WalProcedureMap</a>
+<pre>private static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#line.346">ProcedureWALFormatReader.WalProcedureMap</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -306,7 +306,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>procedureMap</h4>
-<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>[] <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.312">procedureMap</a></pre>
+<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>[] <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.348">procedureMap</a></pre>
 </li>
 </ul>
 <a name="replayOrderHead">
@@ -315,7 +315,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>replayOrderHead</h4>
-<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.315">replayOrderHead</a></pre>
+<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.351">replayOrderHead</a></pre>
 </li>
 </ul>
 <a name="replayOrderTail">
@@ -324,7 +324,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>replayOrderTail</h4>
-<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.316">replayOrderTail</a></pre>
+<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.352">replayOrderTail</a></pre>
 </li>
 </ul>
 <a name="rootHead">
@@ -333,7 +333,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>rootHead</h4>
-<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.319">rootHead</a></pre>
+<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.355">rootHead</a></pre>
 </li>
 </ul>
 <a name="childUnlinkedHead">
@@ -342,7 +342,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>childUnlinkedHead</h4>
-<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.322">childUnlinkedHead</a></pre>
+<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.358">childUnlinkedHead</a></pre>
 </li>
 </ul>
 <a name="minProcId">
@@ -351,7 +351,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>minProcId</h4>
-<pre>private&nbsp;long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.325">minProcId</a></pre>
+<pre>private&nbsp;long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.361">minProcId</a></pre>
 </li>
 </ul>
 <a name="maxProcId">
@@ -360,7 +360,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>maxProcId</h4>
-<pre>private&nbsp;long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.326">maxProcId</a></pre>
+<pre>private&nbsp;long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.362">maxProcId</a></pre>
 </li>
 </ul>
 </li>
@@ -377,7 +377,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ProcedureWALFormatReader.WalProcedureMap</h4>
-<pre>public&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.328">ProcedureWALFormatReader.WalProcedureMap</a>(int&nbsp;size)</pre>
+<pre>public&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.364">ProcedureWALFormatReader.WalProcedureMap</a>(int&nbsp;size)</pre>
 </li>
 </ul>
 </li>
@@ -394,7 +394,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>add</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.336">add</a>(org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.Procedure&nbsp;procProto)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.372">add</a>(org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.Procedure&nbsp;procProto)</pre>
 </li>
 </ul>
 <a name="remove(long)">
@@ -403,7 +403,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>remove</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.352">remove</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.388">remove</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="trackProcIds(long)">
@@ -412,7 +412,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>trackProcIds</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.363">trackProcIds</a>(long&nbsp;procId)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.399">trackProcIds</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="getMinProcId()">
@@ -421,7 +421,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getMinProcId</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.368">getMinProcId</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.404">getMinProcId</a>()</pre>
 </li>
 </ul>
 <a name="getMaxProcId()">
@@ -430,7 +430,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxProcId</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.372">getMaxProcId</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.408">getMaxProcId</a>()</pre>
 </li>
 </ul>
 <a name="contains(long)">
@@ -439,7 +439,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>contains</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.376">contains</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.412">contains</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="isEmpty()">
@@ -448,7 +448,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>isEmpty</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.380">isEmpty</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.416">isEmpty</a>()</pre>
 </li>
 </ul>
 <a name="clear()">
@@ -457,7 +457,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>clear</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.384">clear</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.420">clear</a>()</pre>
 </li>
 </ul>
 <a name="mergeTail(org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFormatReader.WalProcedureMap)">
@@ -466,7 +466,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>mergeTail</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.406">mergeTail</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.WalProcedureMap</a>&nbsp;other)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.442">mergeTail</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.WalProcedureMap</a>&nbsp;other)</pre>
 </li>
 </ul>
 <a name="fetchReady()">
@@ -475,7 +475,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>fetchReady</h4>
-<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.EntryIterator</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.455">fetchReady</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.EntryIterator</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.491">fetchReady</a>()</pre>
 </li>
 </ul>
 <a name="fetchAll()">
@@ -484,7 +484,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>fetchAll</h4>
-<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.EntryIterator</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.489">fetchAll</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.EntryIterator.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.EntryIterator</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.525">fetchAll</a>()</pre>
 </li>
 </ul>
 <a name="buildGraph()">
@@ -493,7 +493,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>buildGraph</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.504">buildGraph</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.540">buildGraph</a>()</pre>
 </li>
 </ul>
 <a name="getRootProcedure(org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFormatReader.Entry)">
@@ -502,7 +502,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getRootProcedure</h4>
-<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.520">getRootProcedure</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;entry)</pre>
+<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.556">getRootProcedure</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;entry)</pre>
 </li>
 </ul>
 <a name="checkReadyToRun(org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFormatReader.Entry)">
@@ -511,7 +511,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>checkReadyToRun</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.566">checkReadyToRun</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;rootEntry)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.602">checkReadyToRun</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;rootEntry)</pre>
 </li>
 </ul>
 <a name="unlinkFromReplayList(org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFormatReader.Entry)">
@@ -520,7 +520,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>unlinkFromReplayList</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.593">unlinkFromReplayList</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;entry)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.629">unlinkFromReplayList</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;entry)</pre>
 </li>
 </ul>
 <a name="addToReplayList(org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFormatReader.Entry)">
@@ -529,7 +529,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>addToReplayList</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.608">addToReplayList</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;entry)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.644">addToReplayList</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;entry)</pre>
 </li>
 </ul>
 <a name="unlinkFromLinkList(org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFormatReader.Entry)">
@@ -538,7 +538,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>unlinkFromLinkList</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.620">unlinkFromLinkList</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;entry)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.656">unlinkFromLinkList</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;entry)</pre>
 </li>
 </ul>
 <a name="addToLinkList(org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFormatReader.Entry, org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFormatReader.Entry)">
@@ -547,7 +547,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>addToLinkList</h4>
-<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.634">addToLinkList</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;entry,
+<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.670">addToLinkList</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;entry,
                                            <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;linkHead)</pre>
 </li>
 </ul>
@@ -557,7 +557,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>findLinkListTail</h4>
-<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.644">findLinkListTail</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;linkHead)</pre>
+<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.680">findLinkListTail</a>(<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;linkHead)</pre>
 </li>
 </ul>
 <a name="addToMap(long, boolean)">
@@ -566,7 +566,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>addToMap</h4>
-<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.652">addToMap</a>(long&nbsp;procId,
+<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.688">addToMap</a>(long&nbsp;procId,
                                       boolean&nbsp;hasParent)</pre>
 </li>
 </ul>
@@ -576,7 +576,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>removeFromMap</h4>
-<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.662">removeFromMap</a>(long&nbsp;procId)</pre>
+<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.698">removeFromMap</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="getProcedure(long)">
@@ -585,7 +585,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedure</h4>
-<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.682">getProcedure</a>(long&nbsp;procId)</pre>
+<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.718">getProcedure</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="getProcedure(int, long)">
@@ -594,7 +594,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedure</h4>
-<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.686">getProcedure</a>(int&nbsp;slotIndex,
+<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.Entry.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader.Entry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.722">getProcedure</a>(int&nbsp;slotIndex,
                                           long&nbsp;procId)</pre>
 </li>
 </ul>
@@ -604,7 +604,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getMapSlot</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.697">getMapSlot</a>(long&nbsp;procId)</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.WalProcedureMap.html#line.733">getMapSlot</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 </li>


[40/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/master/MasterRpcServices.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/MasterRpcServices.html b/devapidocs/org/apache/hadoop/hbase/master/MasterRpcServices.html
index d9cf582..6b1006f 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/MasterRpcServices.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/MasterRpcServices.html
@@ -1001,7 +1001,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>enableCatalogJanitor</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.EnableCatalogJanitorResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.546">enableCatalogJanitor</a>(com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.EnableCatalogJanitorResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.552">enableCatalogJanitor</a>(com.google.protobuf.RpcController&nbsp;c,
                                                                                                         org.apache.hadoop.hbase.protobuf.generated.MasterProtos.EnableCatalogJanitorRequest&nbsp;req)
                                                                                                           throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1017,7 +1017,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>enableTable</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.EnableTableResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.558">enableTable</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.EnableTableResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.564">enableTable</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                       org.apache.hadoop.hbase.protobuf.generated.MasterProtos.EnableTableRequest&nbsp;request)
                                                                                         throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1033,7 +1033,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>execMasterService</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.ClientProtos.CoprocessorServiceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.572">execMasterService</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.ClientProtos.CoprocessorServiceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.578">execMasterService</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                                    org.apache.hadoop.hbase.protobuf.generated.ClientProtos.CoprocessorServiceRequest&nbsp;request)
                                                                                                      throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1049,7 +1049,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>execProcedure</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.631">execProcedure</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.637">execProcedure</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureRequest&nbsp;request)
                                                                                             throws com.google.protobuf.ServiceException</pre>
 <div class="block">Triggers an asynchronous attempt to run a distributed procedure.
@@ -1067,7 +1067,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>execProcedureWithRet</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.666">execProcedureWithRet</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.672">execProcedureWithRet</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                                  org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureRequest&nbsp;request)
                                                                                                    throws com.google.protobuf.ServiceException</pre>
 <div class="block">Triggers a synchronous attempt to run a distributed procedure and sets
@@ -1086,7 +1086,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterStatus</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetClusterStatusResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.695">getClusterStatus</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetClusterStatusResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.701">getClusterStatus</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                                 org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetClusterStatusRequest&nbsp;req)
                                                                                                   throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1102,7 +1102,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompletedSnapshots</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.711">getCompletedSnapshots</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.717">getCompletedSnapshots</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                                           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest&nbsp;request)
                                                                                                             throws com.google.protobuf.ServiceException</pre>
 <div class="block">List the currently available/stored snapshots. Any in-progress snapshots are ignored</div>
@@ -1119,7 +1119,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>getNamespaceDescriptor</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.729">getNamespaceDescriptor</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.735">getNamespaceDescriptor</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                                             org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest&nbsp;request)
                                                                                                               throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1135,7 +1135,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>getSchemaAlterStatus</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.751">getSchemaAlterStatus</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.757">getSchemaAlterStatus</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                                         org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest&nbsp;req)
                                                                                                           throws com.google.protobuf.ServiceException</pre>
 <div class="block">Get the number of regions of the table that have been updated by the alter.</div>
@@ -1155,7 +1155,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableDescriptors</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetTableDescriptorsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.780">getTableDescriptors</a>(com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetTableDescriptorsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.786">getTableDescriptors</a>(com.google.protobuf.RpcController&nbsp;c,
                                                                                                       org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetTableDescriptorsRequest&nbsp;req)
                                                                                                         throws com.google.protobuf.ServiceException</pre>
 <div class="block">Get list of TableDescriptors for requested tables.</div>
@@ -1175,7 +1175,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableNames</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetTableNamesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.819">getTableNames</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetTableNamesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.825">getTableNames</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetTableNamesRequest&nbsp;req)
                                                                                             throws com.google.protobuf.ServiceException</pre>
 <div class="block">Get list of userspace table names</div>
@@ -1194,7 +1194,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableState</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetTableStateResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.843">getTableState</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetTableStateResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.849">getTableState</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetTableStateRequest&nbsp;request)
                                                                                             throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1210,7 +1210,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>isCatalogJanitorEnabled</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.860">isCatalogJanitorEnabled</a>(com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.866">isCatalogJanitorEnabled</a>(com.google.protobuf.RpcController&nbsp;c,
                                                                                                               org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledRequest&nbsp;req)
                                                                                                                 throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1226,7 +1226,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>isMasterRunning</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsMasterRunningResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.867">isMasterRunning</a>(com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsMasterRunningResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.873">isMasterRunning</a>(com.google.protobuf.RpcController&nbsp;c,
                                                                                               org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsMasterRunningRequest&nbsp;req)
                                                                                                 throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1242,7 +1242,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>isProcedureDone</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsProcedureDoneResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.884">isProcedureDone</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsProcedureDoneResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.890">isProcedureDone</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                               org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsProcedureDoneRequest&nbsp;request)
                                                                                                 throws com.google.protobuf.ServiceException</pre>
 <div class="block">Checks if the specified procedure is done.</div>
@@ -1260,7 +1260,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>isRestoreSnapshotDone</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsRestoreSnapshotDoneResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.921">isRestoreSnapshotDone</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsRestoreSnapshotDoneResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.927">isRestoreSnapshotDone</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                                           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsRestoreSnapshotDoneRequest&nbsp;request)
                                                                                                             throws com.google.protobuf.ServiceException</pre>
 <div class="block">Returns the status of the requested snapshot restore/clone operation.
@@ -1282,7 +1282,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>isSnapshotDone</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSnapshotDoneResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.945">isSnapshotDone</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSnapshotDoneResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.951">isSnapshotDone</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                             org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSnapshotDoneRequest&nbsp;request)
                                                                                               throws com.google.protobuf.ServiceException</pre>
 <div class="block">Checks if the specified snapshot is done.</div>
@@ -1302,7 +1302,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedureResult</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetProcedureResultResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.963">getProcedureResult</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetProcedureResultResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.969">getProcedureResult</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                                     org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetProcedureResultRequest&nbsp;request)
                                                                                                       throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1318,7 +1318,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>abortProcedure</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1001">abortProcedure</a>(com.google.protobuf.RpcController&nbsp;rpcController,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1007">abortProcedure</a>(com.google.protobuf.RpcController&nbsp;rpcController,
                                                                                             org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureRequest&nbsp;request)
                                                                                               throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1334,7 +1334,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>listNamespaceDescriptors</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1016">listNamespaceDescriptors</a>(com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1022">listNamespaceDescriptors</a>(com.google.protobuf.RpcController&nbsp;c,
                                                                                                                 org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest&nbsp;request)
                                                                                                                   throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1350,7 +1350,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>listProcedures</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1031">listProcedures</a>(com.google.protobuf.RpcController&nbsp;rpcController,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1037">listProcedures</a>(com.google.protobuf.RpcController&nbsp;rpcController,
                                                                                             org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresRequest&nbsp;request)
                                                                                               throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1366,7 +1366,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableDescriptorsByNamespace</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1047">listTableDescriptorsByNamespace</a>(com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1053">listTableDescriptorsByNamespace</a>(com.google.protobuf.RpcController&nbsp;c,
                                                                                                                               org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceRequest&nbsp;request)
                                                                                                                                 throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1382,7 +1382,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableNamesByNamespace</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableNamesByNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1063">listTableNamesByNamespace</a>(com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableNamesByNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1069">listTableNamesByNamespace</a>(com.google.protobuf.RpcController&nbsp;c,
                                                                                                                   org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableNamesByNamespaceRequest&nbsp;request)
                                                                                                                     throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1398,7 +1398,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyColumn</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyColumnResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1078">modifyColumn</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyColumnResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1084">modifyColumn</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                         org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyColumnRequest&nbsp;req)
                                                                                           throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1414,7 +1414,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyNamespace</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1098">modifyNamespace</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1104">modifyNamespace</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                               org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyNamespaceRequest&nbsp;request)
                                                                                                 throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1430,7 +1430,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyTable</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyTableResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1112">modifyTable</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyTableResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1118">modifyTable</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                       org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyTableRequest&nbsp;req)
                                                                                         throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1446,7 +1446,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>moveRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MoveRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1127">moveRegion</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MoveRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1133">moveRegion</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                     org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MoveRegionRequest&nbsp;req)
                                                                                       throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1462,7 +1462,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>offlineRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.OfflineRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1157">offlineRegion</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.OfflineRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1163">offlineRegion</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.OfflineRegionRequest&nbsp;request)
                                                                                             throws com.google.protobuf.ServiceException</pre>
 <div class="block">Offline specified region from master's in-memory state. It will not attempt to
@@ -1482,7 +1482,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>restoreSnapshot</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RestoreSnapshotResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1200">restoreSnapshot</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RestoreSnapshotResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1206">restoreSnapshot</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                               org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RestoreSnapshotRequest&nbsp;request)
                                                                                                 throws com.google.protobuf.ServiceException</pre>
 <div class="block">Execute Restore/Clone snapshot operation.
@@ -1509,7 +1509,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>runCatalogScan</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RunCatalogScanResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1220">runCatalogScan</a>(com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RunCatalogScanResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1226">runCatalogScan</a>(com.google.protobuf.RpcController&nbsp;c,
                                                                                             org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RunCatalogScanRequest&nbsp;req)
                                                                                               throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1525,7 +1525,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>setBalancerRunning</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetBalancerRunningResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1231">setBalancerRunning</a>(com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetBalancerRunningResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1237">setBalancerRunning</a>(com.google.protobuf.RpcController&nbsp;c,
                                                                                                     org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetBalancerRunningRequest&nbsp;req)
                                                                                                       throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1541,7 +1541,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ShutdownResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1244">shutdown</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ShutdownResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1250">shutdown</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                 org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ShutdownRequest&nbsp;request)
                                                                                   throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1557,7 +1557,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>snapshot</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SnapshotResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1256">snapshot</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SnapshotResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1262">snapshot</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                 org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SnapshotRequest&nbsp;request)
                                                                                   throws com.google.protobuf.ServiceException</pre>
 <div class="block">Triggers an asynchronous attempt to take a snapshot.
@@ -1575,7 +1575,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>stopMaster</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.StopMasterResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1281">stopMaster</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.StopMasterResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1287">stopMaster</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                     org.apache.hadoop.hbase.protobuf.generated.MasterProtos.StopMasterRequest&nbsp;request)
                                                                                       throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1591,7 +1591,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>unassignRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.UnassignRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1289">unassignRegion</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.UnassignRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1295">unassignRegion</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                             org.apache.hadoop.hbase.protobuf.generated.MasterProtos.UnassignRegionRequest&nbsp;req)
                                                                                               throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1607,7 +1607,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>reportRegionStateTransition</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1325">reportRegionStateTransition</a>(com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1331">reportRegionStateTransition</a>(com.google.protobuf.RpcController&nbsp;c,
                                                                                                                                   org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionRequest&nbsp;req)
                                                                                                                                     throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1623,7 +1623,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>setQuota</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetQuotaResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1354">setQuota</a>(com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetQuotaResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1360">setQuota</a>(com.google.protobuf.RpcController&nbsp;c,
                                                                                 org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetQuotaRequest&nbsp;req)
                                                                                   throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1639,7 +1639,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastMajorCompactionTimestamp</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1365">getLastMajorCompactionTimestamp</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1371">getLastMajorCompactionTimestamp</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                        org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampRequest&nbsp;request)
                                                                                                                          throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1655,7 +1655,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastMajorCompactionTimestampForRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1380">getLastMajorCompactionTimestampForRegion</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1386">getLastMajorCompactionTimestampForRegion</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                 org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampForRegionRequest&nbsp;request)
                                                                                                                                   throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1671,7 +1671,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>compactRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.AdminProtos.CompactRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1404">compactRegion</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.AdminProtos.CompactRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1410">compactRegion</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                          org.apache.hadoop.hbase.protobuf.generated.AdminProtos.CompactRegionRequest&nbsp;request)
                                                                                            throws com.google.protobuf.ServiceException</pre>
 <div class="block">Compact a region on the master.</div>
@@ -1691,7 +1691,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionInfo</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.AdminProtos.GetRegionInfoResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1423">getRegionInfo</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.AdminProtos.GetRegionInfoResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1429">getRegionInfo</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                          org.apache.hadoop.hbase.protobuf.generated.AdminProtos.GetRegionInfoRequest&nbsp;request)
                                                                                            throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1709,7 +1709,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>compactMob</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.protobuf.generated.AdminProtos.CompactRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1448">compactMob</a>(org.apache.hadoop.hbase.protobuf.generated.AdminProtos.CompactRegionRequest&nbsp;request,
+<pre>private&nbsp;org.apache.hadoop.hbase.protobuf.generated.AdminProtos.CompactRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1454">compactMob</a>(org.apache.hadoop.hbase.protobuf.generated.AdminProtos.CompactRegionRequest&nbsp;request,
                                                                                       <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                                                                                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Compacts the mob files in the current table.</div>
@@ -1725,7 +1725,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>isBalancerEnabled</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1494">isBalancerEnabled</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1500">isBalancerEnabled</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                                   org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledRequest&nbsp;request)
                                                                                                     throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1741,7 +1741,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>normalize</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1502">normalize</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1508">normalize</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                   org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest&nbsp;request)
                                                                                     throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1757,7 +1757,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>setNormalizerRunning</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1512">setNormalizerRunning</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1518">setNormalizerRunning</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                                         org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest&nbsp;request)
                                                                                                           throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1773,7 +1773,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockList">
 <li class="blockList">
 <h4>isNormalizerEnabled</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1524">isNormalizerEnabled</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1530">isNormalizerEnabled</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                                       org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest&nbsp;request)
                                                                                                         throws com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1789,7 +1789,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getSecurityCapabilities</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1535">getSecurityCapabilities</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1541">getSecurityCapabilities</a>(com.google.protobuf.RpcController&nbsp;controller,
                                                                                                            org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest&nbsp;request)
                                                                                                              throws com.google.protobuf.ServiceException</pre>
 <div class="block">Returns the security capabilities in effect on the cluster</div>

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/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 12e13a0..10de9c1 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -361,12 +361,12 @@
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="strong">HealthChecker.HealthCheckerExitStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.Modify.html" title="enum in org.apache.hadoop.hbase"><span class="strong">HConstants.Modify</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="strong">HConstants.OperationStatusCode</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="strong">MetaTableAccessor.QueryType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="strong">KeyValue.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="strong">Coprocessor.State</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="strong">CompatibilitySingletonFactory.SingletonStorage</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="strong">HConstants.Modify</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="strong">MetaTableAccessor.QueryType</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="strong">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="strong">KeepDeletedCells</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/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 11b5667..08b7983 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-use.html
@@ -255,128 +255,132 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.procedure2.store.wal">org.apache.hadoop.hbase.procedure2.store.wal</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.procedure2.store">org.apache.hadoop.hbase.procedure2.store</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<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.procedure2.store.wal">org.apache.hadoop.hbase.procedure2.store.wal</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<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="altColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver.compactions">org.apache.hadoop.hbase.regionserver.compactions</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="rowColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver.handler">org.apache.hadoop.hbase.regionserver.handler</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver.compactions">org.apache.hadoop.hbase.regionserver.compactions</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver.snapshot">org.apache.hadoop.hbase.regionserver.snapshot</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver.handler">org.apache.hadoop.hbase.regionserver.handler</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.snapshot">org.apache.hadoop.hbase.regionserver.snapshot</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.replication">org.apache.hadoop.hbase.replication</a></td>
 <td class="colLast">
 <div class="block">Multi Cluster Replication</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.replication.master">org.apache.hadoop.hbase.replication.master</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.replication.regionserver">org.apache.hadoop.hbase.replication.regionserver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.rest">org.apache.hadoop.hbase.rest</a></td>
 <td class="colLast">
 <div class="block">HBase REST</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.rest.client">org.apache.hadoop.hbase.rest.client</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.rest.model">org.apache.hadoop.hbase.rest.model</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.security">org.apache.hadoop.hbase.security</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <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>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.security.token">org.apache.hadoop.hbase.security.token</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.security.visibility">org.apache.hadoop.hbase.security.visibility</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.snapshot">org.apache.hadoop.hbase.snapshot</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.thrift">org.apache.hadoop.hbase.thrift</a></td>
 <td class="colLast">
 <div class="block">Provides an HBase <a href="http://incubator.apache.org/thrift/">Thrift</a>
 service.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.thrift2">org.apache.hadoop.hbase.thrift2</a></td>
 <td class="colLast">
 <div class="block">Provides an HBase <a href="http://thrift.apache.org/">Thrift</a>
 service.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.tmpl.master">org.apache.hadoop.hbase.tmpl.master</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.tmpl.regionserver">org.apache.hadoop.hbase.tmpl.regionserver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.tool">org.apache.hadoop.hbase.tool</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.util.hbck">org.apache.hadoop.hbase.util.hbck</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.util.test">org.apache.hadoop.hbase.util.test</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.wal">org.apache.hadoop.hbase.wal</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.zookeeper">org.apache.hadoop.hbase.zookeeper</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.zookeeper.lock">org.apache.hadoop.hbase.zookeeper.lock</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
@@ -2442,6 +2446,23 @@ service.</div>
 </tbody>
 </table>
 </li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.procedure2.store">
+<!--   -->
+</a>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/hadoop/hbase/package-summary.html">org.apache.hadoop.hbase</a> used by <a href="../../../../org/apache/hadoop/hbase/procedure2/store/package-summary.html">org.apache.hadoop.hbase.procedure2.store</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/hadoop/hbase/class-use/ProcedureInfo.html#org.apache.hadoop.hbase.procedure2.store">ProcedureInfo</a>
+<div class="block">Procedure information</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.procedure2.store.wal">
 <!--   -->
 </a>
@@ -2456,6 +2477,11 @@ service.</div>
 <div class="block">All hbase specific IOExceptions should be subclasses of HBaseIOException</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/hadoop/hbase/class-use/ProcedureInfo.html#org.apache.hadoop.hbase.procedure2.store.wal">ProcedureInfo</a>
+<div class="block">Procedure information</div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/org/apache/hadoop/hbase/procedure2/Procedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/Procedure.html b/devapidocs/org/apache/hadoop/hbase/procedure2/Procedure.html
index 82266bd..a1dd88e 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/Procedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/Procedure.html
@@ -1468,7 +1468,7 @@ public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ProcedureInfo
 <li class="blockList">
 <h4>convert</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-public static&nbsp;org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.Procedure&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.674">convert</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc)
+public static&nbsp;org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.Procedure&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.663">convert</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc)
                                                                                     throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Helper to convert the procedure to protobuf.
  Used by ProcedureStore implementations.</div>
@@ -1483,7 +1483,7 @@ public static&nbsp;org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.Pr
 <li class="blockList">
 <h4>convert</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.740">convert</a>(org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.Procedure&nbsp;proto)
+public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.729">convert</a>(org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.Procedure&nbsp;proto)
                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Helper to convert the protobuf procedure.
  Used by ProcedureStore implementations.


[06/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html
index 0ba2dff..3541594 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html
@@ -30,683 +30,719 @@
 <span class="sourceLineNo">022</span><a name="line.22"></a>
 <span class="sourceLineNo">023</span>import org.apache.commons.logging.Log;<a name="line.23"></a>
 <span class="sourceLineNo">024</span>import org.apache.commons.logging.LogFactory;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.fs.FSDataInputStream;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStoreTracker;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore.ProcedureIterator;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry;<a name="line.32"></a>
-<span class="sourceLineNo">033</span><a name="line.33"></a>
-<span class="sourceLineNo">034</span>/**<a name="line.34"></a>
-<span class="sourceLineNo">035</span> * Helper class that loads the procedures stored in a WAL<a name="line.35"></a>
-<span class="sourceLineNo">036</span> */<a name="line.36"></a>
-<span class="sourceLineNo">037</span>@InterfaceAudience.Private<a name="line.37"></a>
-<span class="sourceLineNo">038</span>@InterfaceStability.Evolving<a name="line.38"></a>
-<span class="sourceLineNo">039</span>public class ProcedureWALFormatReader {<a name="line.39"></a>
-<span class="sourceLineNo">040</span>  private static final Log LOG = LogFactory.getLog(ProcedureWALFormatReader.class);<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>  // ==============================================================================================<a name="line.42"></a>
-<span class="sourceLineNo">043</span>  //  We read the WALs in reverse order. from the newest to the oldest.<a name="line.43"></a>
-<span class="sourceLineNo">044</span>  //  We have different entry types:<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  //   - INIT: Procedure submitted by the user (also known as 'root procedure')<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  //   - INSERT: Children added to the procedure &lt;parentId&gt;:[&lt;childId&gt;, ...]<a name="line.46"></a>
-<span class="sourceLineNo">047</span>  //   - UPDATE: The specified procedure was updated<a name="line.47"></a>
-<span class="sourceLineNo">048</span>  //   - DELETE: The procedure was removed (completed/rolledback and result TTL expired)<a name="line.48"></a>
-<span class="sourceLineNo">049</span>  //<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  // In the WAL we can find multiple times the same procedure as UPDATE or INSERT.<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  // We read the WAL from top to bottom, so every time we find an entry of the<a name="line.51"></a>
-<span class="sourceLineNo">052</span>  // same procedure, that will be the "latest" update.<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  //<a name="line.53"></a>
-<span class="sourceLineNo">054</span>  // We keep two in-memory maps:<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  //  - localProcedureMap: is the map containing the entries in the WAL we are processing<a name="line.55"></a>
-<span class="sourceLineNo">056</span>  //  - procedureMap: is the map containing all the procedures we found up to the WAL in process.<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  // localProcedureMap is merged with the procedureMap once we reach the WAL EOF.<a name="line.57"></a>
-<span class="sourceLineNo">058</span>  //<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  // Since we are reading the WALs in reverse order (newest to oldest),<a name="line.59"></a>
-<span class="sourceLineNo">060</span>  // if we find an entry related to a procedure we already have in 'procedureMap' we can discard it.<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  //<a name="line.61"></a>
-<span class="sourceLineNo">062</span>  // The WAL is append-only so the last procedure in the WAL is the one that<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  // was in execution at the time we crashed/closed the server.<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  // given that, the procedure replay order can be inferred by the WAL order.<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  //<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  // Example:<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  //    WAL-2: [A, B, A, C, D]<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  //    WAL-1: [F, G, A, F, B]<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  //    Replay-Order: [D, C, A, B, F, G]<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  //<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  // The "localProcedureMap" keeps a "replayOrder" list. Every time we add the<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  // record to the map that record is moved to the head of the "replayOrder" list.<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  // Using the example above:<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  //    WAL-2 localProcedureMap.replayOrder is [D, C, A, B]<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  //    WAL-1 localProcedureMap.replayOrder is [F, G]<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  //<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  // each time we reach the WAL-EOF, the "replayOrder" list is merged/appended in 'procedureMap'<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  // so using the example above we end up with: [D, C, A, B] + [F, G] as replay order.<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  //<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  //  Fast Start: INIT/INSERT record and StackIDs<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  // ---------------------------------------------<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  // We have to special record, INIT and INSERT that tracks the first time<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  // the procedure was added to the WAL. We can use that information to be able<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  // to start procedures before reaching the end of the WAL, or before reading all the WALs.<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  // but in some cases the WAL with that record can be already gone.<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  // In alternative we can use the stackIds on each procedure,<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  // to identify when a procedure is ready to start.<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  // If there are gaps in the sum of the stackIds we need to read more WALs.<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  //<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  // Example (all procs child of A):<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  //   WAL-2: [A, B]                   A stackIds = [0, 4], B stackIds = [1, 5]<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  //   WAL-1: [A, B, C, D]<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  //<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  // In the case above we need to read one more WAL to be able to consider<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  // the root procedure A and all children as ready.<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  // ==============================================================================================<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  private final WalProcedureMap localProcedureMap = new WalProcedureMap(1024);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  private final WalProcedureMap procedureMap = new WalProcedureMap(1024);<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>  //private long compactionLogId;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  private long maxProcId = 0;<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>  private final ProcedureStoreTracker tracker;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>  private final boolean hasFastStartSupport;<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public ProcedureWALFormatReader(final ProcedureStoreTracker tracker) {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    this.tracker = tracker;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    // we support fast-start only if we have a clean shutdown.<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    this.hasFastStartSupport = !tracker.isEmpty();<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>  public void read(ProcedureWALFile log, ProcedureWALFormat.Loader loader) throws IOException {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    FSDataInputStream stream = log.getStream();<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    try {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      boolean hasMore = true;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      while (hasMore) {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>        ProcedureWALEntry entry = ProcedureWALFormat.readEntry(stream);<a name="line.117"></a>
-<span class="sourceLineNo">118</span>        if (entry == null) {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>          LOG.warn("nothing left to decode. exiting with missing EOF");<a name="line.119"></a>
-<span class="sourceLineNo">120</span>          hasMore = false;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>          break;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>        switch (entry.getType()) {<a name="line.123"></a>
-<span class="sourceLineNo">124</span>          case PROCEDURE_WAL_INIT:<a name="line.124"></a>
-<span class="sourceLineNo">125</span>            readInitEntry(entry);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>            break;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>          case PROCEDURE_WAL_INSERT:<a name="line.127"></a>
-<span class="sourceLineNo">128</span>            readInsertEntry(entry);<a name="line.128"></a>
-<span class="sourceLineNo">129</span>            break;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>          case PROCEDURE_WAL_UPDATE:<a name="line.130"></a>
-<span class="sourceLineNo">131</span>          case PROCEDURE_WAL_COMPACT:<a name="line.131"></a>
-<span class="sourceLineNo">132</span>            readUpdateEntry(entry);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>            break;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>          case PROCEDURE_WAL_DELETE:<a name="line.134"></a>
-<span class="sourceLineNo">135</span>            readDeleteEntry(entry);<a name="line.135"></a>
-<span class="sourceLineNo">136</span>            break;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>          case PROCEDURE_WAL_EOF:<a name="line.137"></a>
-<span class="sourceLineNo">138</span>            hasMore = false;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>            break;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>          default:<a name="line.140"></a>
-<span class="sourceLineNo">141</span>            throw new CorruptedWALProcedureStoreException("Invalid entry: " + entry);<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>    } catch (IOException e) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      LOG.error("got an exception while reading the procedure WAL: " + log, e);<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      loader.markCorruptedWAL(log, e);<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>    if (localProcedureMap.isEmpty()) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      LOG.info("No active entry found in state log " + log + ". removing it");<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      loader.removeLog(log);<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    } else {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      log.setProcIds(localProcedureMap.getMinProcId(), localProcedureMap.getMaxProcId());<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      procedureMap.mergeTail(localProcedureMap);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      //if (hasFastStartSupport) {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>        // TODO: Some procedure may be already runnables (see readInitEntry())<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        //       (we can also check the "update map" in the log trackers)<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        // --------------------------------------------------<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        //EntryIterator iter = procedureMap.fetchReady();<a name="line.159"></a>
-<span class="sourceLineNo">160</span>        //if (iter != null) loader.load(iter);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        // --------------------------------------------------<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      //}<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    }<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  }<a name="line.164"></a>
-<span class="sourceLineNo">165</span><a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public void finalize(ProcedureWALFormat.Loader loader) throws IOException {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    // notify the loader about the max proc ID<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    loader.setMaxProcId(maxProcId);<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>    // fetch the procedure ready to run.<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    ProcedureIterator procIter = procedureMap.fetchReady();<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    if (procIter != null) loader.load(procIter);<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span>    // remaining procedures have missing link or dependencies<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    // consider them as corrupted, manual fix is probably required.<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    procIter = procedureMap.fetchAll();<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    if (procIter != null) loader.handleCorrupted(procIter);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>  private void loadProcedure(final ProcedureWALEntry entry, final ProcedureProtos.Procedure proc) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    maxProcId = Math.max(maxProcId, proc.getProcId());<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    if (isRequired(proc.getProcId())) {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      if (LOG.isTraceEnabled()) {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>        LOG.trace("read " + entry.getType() + " entry " + proc.getProcId());<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      }<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      localProcedureMap.add(proc);<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      tracker.setDeleted(proc.getProcId(), false);<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    }<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  }<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private void readInitEntry(final ProcedureWALEntry entry)<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      throws IOException {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    assert entry.getProcedureCount() == 1 : "Expected only one procedure";<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  }<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private void readInsertEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    assert entry.getProcedureCount() &gt;= 1 : "Expected one or more procedures";<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    for (int i = 1; i &lt; entry.getProcedureCount(); ++i) {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      loadProcedure(entry, entry.getProcedure(i));<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>  private void readUpdateEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    assert entry.getProcedureCount() == 1 : "Expected only one procedure";<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  }<a name="line.208"></a>
-<span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span>  private void readDeleteEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    assert entry.getProcedureCount() == 0 : "Expected no procedures";<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    assert entry.hasProcId() : "expected ProcID";<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    if (LOG.isTraceEnabled()) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      LOG.trace("read delete entry " + entry.getProcId());<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    }<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    maxProcId = Math.max(maxProcId, entry.getProcId());<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    localProcedureMap.remove(entry.getProcId());<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    tracker.setDeleted(entry.getProcId(), true);<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 boolean isDeleted(final long procId) {<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    return tracker.isDeleted(procId) == ProcedureStoreTracker.DeleteState.YES;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  }<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  private boolean isRequired(final long procId) {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    return !isDeleted(procId) &amp;&amp; !procedureMap.contains(procId);<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>  // ==========================================================================<a name="line.229"></a>
-<span class="sourceLineNo">230</span>  //  We keep an in-memory map of the procedures sorted by replay order.<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  //  (see the details in the beginning of the file)<a name="line.231"></a>
-<span class="sourceLineNo">232</span>  //                      _______________________________________________<a name="line.232"></a>
-<span class="sourceLineNo">233</span>  //      procedureMap = | A |   | E |   | C |   |   |   |   | G |   |   |<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  //                       D               B<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  //      replayOrderHead = C &lt;-&gt; B &lt;-&gt; E &lt;-&gt; D &lt;-&gt; A &lt;-&gt; G<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  //<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  //  We also have a lazy grouping by "root procedure", and a list of<a name="line.237"></a>
-<span class="sourceLineNo">238</span>  //  unlinked procedure. If after reading all the WALs we have unlinked<a name="line.238"></a>
-<span class="sourceLineNo">239</span>  //  procedures it means that we had a missing WAL or a corruption.<a name="line.239"></a>
-<span class="sourceLineNo">240</span>  //      rootHead = A &lt;-&gt; D &lt;-&gt; G<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  //                 B     E<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  //                 C<a name="line.242"></a>
-<span class="sourceLineNo">243</span>  //      unlinkFromLinkList = None<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  // ==========================================================================<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  private static class Entry {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    // hash-table next<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    protected Entry hashNext;<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    // child head<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    protected Entry childHead;<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    // double-link for rootHead or childHead<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    protected Entry linkNext;<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    protected Entry linkPrev;<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    // replay double-linked-list<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    protected Entry replayNext;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    protected Entry replayPrev;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    // procedure-infos<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    protected Procedure procedure;<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    protected ProcedureProtos.Procedure proto;<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    protected boolean ready = false;<a name="line.259"></a>
-<span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>    public Entry(Entry hashNext) { this.hashNext = hashNext; }<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>    public long getProcId() { return proto.getProcId(); }<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    public long getParentId() { return proto.getParentId(); }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    public boolean hasParent() { return proto.hasParentId(); }<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    public boolean isReady() { return ready; }<a name="line.266"></a>
-<span class="sourceLineNo">267</span><a name="line.267"></a>
-<span class="sourceLineNo">268</span>    public Procedure convert() throws IOException {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      if (procedure == null) {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>        procedure = Procedure.convert(proto);<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      }<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      return procedure;<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>    @Override<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    public String toString() {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      return "Entry(" + getProcId() + ", parentId=" + getParentId() + ")";<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">025</span>import org.apache.hadoop.fs.FSDataInputStream;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStoreTracker;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore.ProcedureIterator;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.protobuf.generated.ProcedureProtos.ProcedureWALEntry;<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>/**<a name="line.35"></a>
+<span class="sourceLineNo">036</span> * Helper class that loads the procedures stored in a WAL<a name="line.36"></a>
+<span class="sourceLineNo">037</span> */<a name="line.37"></a>
+<span class="sourceLineNo">038</span>@InterfaceAudience.Private<a name="line.38"></a>
+<span class="sourceLineNo">039</span>@InterfaceStability.Evolving<a name="line.39"></a>
+<span class="sourceLineNo">040</span>public class ProcedureWALFormatReader {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  private static final Log LOG = LogFactory.getLog(ProcedureWALFormatReader.class);<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>  // ==============================================================================================<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  //  We read the WALs in reverse order. from the newest to the oldest.<a name="line.44"></a>
+<span class="sourceLineNo">045</span>  //  We have different entry types:<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  //   - INIT: Procedure submitted by the user (also known as 'root procedure')<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  //   - INSERT: Children added to the procedure &lt;parentId&gt;:[&lt;childId&gt;, ...]<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  //   - UPDATE: The specified procedure was updated<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  //   - DELETE: The procedure was removed (completed/rolledback and result TTL expired)<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  //<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  // In the WAL we can find multiple times the same procedure as UPDATE or INSERT.<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  // We read the WAL from top to bottom, so every time we find an entry of the<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  // same procedure, that will be the "latest" update.<a name="line.53"></a>
+<span class="sourceLineNo">054</span>  //<a name="line.54"></a>
+<span class="sourceLineNo">055</span>  // We keep two in-memory maps:<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  //  - localProcedureMap: is the map containing the entries in the WAL we are processing<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  //  - procedureMap: is the map containing all the procedures we found up to the WAL in process.<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  // localProcedureMap is merged with the procedureMap once we reach the WAL EOF.<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  //<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  // Since we are reading the WALs in reverse order (newest to oldest),<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  // if we find an entry related to a procedure we already have in 'procedureMap' we can discard it.<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  //<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  // The WAL is append-only so the last procedure in the WAL is the one that<a name="line.63"></a>
+<span class="sourceLineNo">064</span>  // was in execution at the time we crashed/closed the server.<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  // given that, the procedure replay order can be inferred by the WAL order.<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  //<a name="line.66"></a>
+<span class="sourceLineNo">067</span>  // Example:<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  //    WAL-2: [A, B, A, C, D]<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  //    WAL-1: [F, G, A, F, B]<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  //    Replay-Order: [D, C, A, B, F, G]<a name="line.70"></a>
+<span class="sourceLineNo">071</span>  //<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  // The "localProcedureMap" keeps a "replayOrder" list. Every time we add the<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  // record to the map that record is moved to the head of the "replayOrder" list.<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  // Using the example above:<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  //    WAL-2 localProcedureMap.replayOrder is [D, C, A, B]<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  //    WAL-1 localProcedureMap.replayOrder is [F, G]<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  //<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  // each time we reach the WAL-EOF, the "replayOrder" list is merged/appended in 'procedureMap'<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  // so using the example above we end up with: [D, C, A, B] + [F, G] as replay order.<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  //<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  //  Fast Start: INIT/INSERT record and StackIDs<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  // ---------------------------------------------<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  // We have two special record, INIT and INSERT that tracks the first time<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  // the procedure was added to the WAL. We can use that information to be able<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  // to start procedures before reaching the end of the WAL, or before reading all the WALs.<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  // but in some cases the WAL with that record can be already gone.<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  // In alternative we can use the stackIds on each procedure,<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  // to identify when a procedure is ready to start.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  // If there are gaps in the sum of the stackIds we need to read more WALs.<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  //<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  // Example (all procs child of A):<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  //   WAL-2: [A, B]                   A stackIds = [0, 4], B stackIds = [1, 5]<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  //   WAL-1: [A, B, C, D]<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  //<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  // In the case above we need to read one more WAL to be able to consider<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  // the root procedure A and all children as ready.<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  // ==============================================================================================<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  private final WalProcedureMap localProcedureMap = new WalProcedureMap(1024);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  private final WalProcedureMap procedureMap = new WalProcedureMap(1024);<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>  //private long compactionLogId;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  private long maxProcId = 0;<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  private final ProcedureStoreTracker tracker;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  private final boolean hasFastStartSupport;<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>  public ProcedureWALFormatReader(final ProcedureStoreTracker tracker) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    this.tracker = tracker;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    // we support fast-start only if we have a clean shutdown.<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    this.hasFastStartSupport = !tracker.isEmpty();<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>  public void read(ProcedureWALFile log, ProcedureWALFormat.Loader loader) throws IOException {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    FSDataInputStream stream = log.getStream();<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    try {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      boolean hasMore = true;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      while (hasMore) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        ProcedureWALEntry entry = ProcedureWALFormat.readEntry(stream);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        if (entry == null) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>          LOG.warn("nothing left to decode. exiting with missing EOF");<a name="line.120"></a>
+<span class="sourceLineNo">121</span>          hasMore = false;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>          break;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        switch (entry.getType()) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>          case PROCEDURE_WAL_INIT:<a name="line.125"></a>
+<span class="sourceLineNo">126</span>            readInitEntry(entry);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>            break;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>          case PROCEDURE_WAL_INSERT:<a name="line.128"></a>
+<span class="sourceLineNo">129</span>            readInsertEntry(entry);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>            break;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>          case PROCEDURE_WAL_UPDATE:<a name="line.131"></a>
+<span class="sourceLineNo">132</span>          case PROCEDURE_WAL_COMPACT:<a name="line.132"></a>
+<span class="sourceLineNo">133</span>            readUpdateEntry(entry);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>            break;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>          case PROCEDURE_WAL_DELETE:<a name="line.135"></a>
+<span class="sourceLineNo">136</span>            readDeleteEntry(entry);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>            break;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>          case PROCEDURE_WAL_EOF:<a name="line.138"></a>
+<span class="sourceLineNo">139</span>            hasMore = false;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>            break;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>          default:<a name="line.141"></a>
+<span class="sourceLineNo">142</span>            throw new CorruptedWALProcedureStoreException("Invalid entry: " + entry);<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 (IOException e) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      LOG.error("got an exception while reading the procedure WAL: " + log, e);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      loader.markCorruptedWAL(log, e);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    }<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    if (!localProcedureMap.isEmpty()) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      log.setProcIds(localProcedureMap.getMinProcId(), localProcedureMap.getMaxProcId());<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      procedureMap.mergeTail(localProcedureMap);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      //if (hasFastStartSupport) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        // TODO: Some procedure may be already runnables (see readInitEntry())<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        //       (we can also check the "update map" in the log trackers)<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        // --------------------------------------------------<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        //EntryIterator iter = procedureMap.fetchReady();<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        //if (iter != null) loader.load(iter);<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">162</span>  }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>  public void finalize(ProcedureWALFormat.Loader loader) throws IOException {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    // notify the loader about the max proc ID<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    loader.setMaxProcId(maxProcId);<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>    // fetch the procedure ready to run.<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    ProcedureIterator procIter = procedureMap.fetchReady();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    if (procIter != null) loader.load(procIter);<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>    // remaining procedures have missing link or dependencies<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    // consider them as corrupted, manual fix is probably required.<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    procIter = procedureMap.fetchAll();<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    if (procIter != null) loader.handleCorrupted(procIter);<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 loadProcedure(final ProcedureWALEntry entry, final ProcedureProtos.Procedure proc) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    maxProcId = Math.max(maxProcId, proc.getProcId());<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    if (isRequired(proc.getProcId())) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      if (LOG.isTraceEnabled()) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        LOG.trace("read " + entry.getType() + " entry " + proc.getProcId());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      localProcedureMap.add(proc);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      tracker.setDeleted(proc.getProcId(), false);<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><a name="line.188"></a>
+<span class="sourceLineNo">189</span>  private void readInitEntry(final ProcedureWALEntry entry)<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      throws IOException {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    assert entry.getProcedureCount() == 1 : "Expected only one procedure";<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  }<a name="line.193"></a>
+<span class="sourceLineNo">194</span><a name="line.194"></a>
+<span class="sourceLineNo">195</span>  private void readInsertEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    assert entry.getProcedureCount() &gt;= 1 : "Expected one or more procedures";<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    for (int i = 1; i &lt; entry.getProcedureCount(); ++i) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      loadProcedure(entry, entry.getProcedure(i));<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 void readUpdateEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    assert entry.getProcedureCount() == 1 : "Expected only one procedure";<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    loadProcedure(entry, entry.getProcedure(0));<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>  private void readDeleteEntry(final ProcedureWALEntry entry) throws IOException {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    assert entry.getProcedureCount() == 0 : "Expected no procedures";<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    assert entry.hasProcId() : "expected ProcID";<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    if (LOG.isTraceEnabled()) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      LOG.trace("read delete entry " + entry.getProcId());<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    }<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    maxProcId = Math.max(maxProcId, entry.getProcId());<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    localProcedureMap.remove(entry.getProcId());<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    assert !procedureMap.contains(entry.getProcId());<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    tracker.setDeleted(entry.getProcId(), true);<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>  private boolean isDeleted(final long procId) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    return tracker.isDeleted(procId) == ProcedureStoreTracker.DeleteState.YES;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>  }<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  private boolean isRequired(final long procId) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    return !isDeleted(procId) &amp;&amp; !procedureMap.contains(procId);<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>  // ==========================================================================<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  //  We keep an in-memory map of the procedures sorted by replay order.<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  //  (see the details in the beginning of the file)<a name="line.230"></a>
+<span class="sourceLineNo">231</span>  //                      _______________________________________________<a name="line.231"></a>
+<span class="sourceLineNo">232</span>  //      procedureMap = | A |   | E |   | C |   |   |   |   | G |   |   |<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  //                       D               B<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  //      replayOrderHead = C &lt;-&gt; B &lt;-&gt; E &lt;-&gt; D &lt;-&gt; A &lt;-&gt; G<a name="line.234"></a>
+<span class="sourceLineNo">235</span>  //<a name="line.235"></a>
+<span class="sourceLineNo">236</span>  //  We also have a lazy grouping by "root procedure", and a list of<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  //  unlinked procedure. If after reading all the WALs we have unlinked<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  //  procedures it means that we had a missing WAL or a corruption.<a name="line.238"></a>
+<span class="sourceLineNo">239</span>  //      rootHead = A &lt;-&gt; D &lt;-&gt; G<a name="line.239"></a>
+<span class="sourceLineNo">240</span>  //                 B     E<a name="line.240"></a>
+<span class="sourceLineNo">241</span>  //                 C<a name="line.241"></a>
+<span class="sourceLineNo">242</span>  //      unlinkFromLinkList = None<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  // ==========================================================================<a name="line.243"></a>
+<span class="sourceLineNo">244</span>  private static class Entry {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    // hash-table next<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    protected Entry hashNext;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    // child head<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    protected Entry childHead;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    // double-link for rootHead or childHead<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    protected Entry linkNext;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    protected Entry linkPrev;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    // replay double-linked-list<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    protected Entry replayNext;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    protected Entry replayPrev;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    // procedure-infos<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    protected Procedure procedure;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    protected ProcedureProtos.Procedure proto;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    protected boolean ready = false;<a name="line.258"></a>
+<span class="sourceLineNo">259</span><a name="line.259"></a>
+<span class="sourceLineNo">260</span>    public Entry(Entry hashNext) { this.hashNext = hashNext; }<a name="line.260"></a>
+<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">262</span>    public long getProcId() { return proto.getProcId(); }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    public long getParentId() { return proto.getParentId(); }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    public boolean hasParent() { return proto.hasParentId(); }<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    public boolean isReady() { return ready; }<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>    public boolean isCompleted() {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      if (!hasParent()) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        switch (proto.getState()) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          case ROLLEDBACK:<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            return true;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          case FINISHED:<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            return !proto.hasException();<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          default:<a name="line.274"></a>
+<span class="sourceLineNo">275</span>            break;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      }<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      return false;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>  private static class EntryIterator implements ProcedureIterator {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    private final Entry replayHead;<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    private Entry current;<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>    public EntryIterator(Entry replayHead) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      this.replayHead = replayHead;<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      this.current = replayHead;<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>    @Override<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    public void reset() {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      this.current = replayHead;<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>    @Override<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    public boolean hasNext() {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      return current != null;<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>    @Override<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    public Procedure next() throws IOException {<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      try {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        return current.convert();<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      } finally {<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        current = current.replayNext;<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>  }<a name="line.308"></a>
-<span class="sourceLineNo">309</span><a name="line.309"></a>
-<span class="sourceLineNo">310</span>  private static class WalProcedureMap {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    // procedure hash table<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    private Entry[] procedureMap;<a name="line.312"></a>
-<span class="sourceLineNo">313</span><a name="line.313"></a>
-<span class="sourceLineNo">314</span>    // replay-order double-linked-list<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    private Entry replayOrderHead;<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    private Entry replayOrderTail;<a name="line.316"></a>
-<span class="sourceLineNo">317</span><a name="line.317"></a>
-<span class="sourceLineNo">318</span>    // root linked-list<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    private Entry rootHead;<a name="line.319"></a>
-<span class="sourceLineNo">320</span><a name="line.320"></a>
-<span class="sourceLineNo">321</span>    // pending unlinked children (root not present yet)<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    private Entry childUnlinkedHead;<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span>    // Track ProcId range<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    private long minProcId = Long.MAX_VALUE;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    private long maxProcId = Long.MIN_VALUE;<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>    public WalProcedureMap(int size) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      procedureMap = new Entry[size];<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      replayOrderHead = null;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      replayOrderTail = null;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      rootHead = null;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      childUnlinkedHead = null;<a name="line.333"></a>
+<span class="sourceLineNo">281</span>    public Procedure convert() throws IOException {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      if (procedure == null) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        procedure = Procedure.convert(proto);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      return procedure;<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>    public ProcedureInfo convertToInfo() {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      return ProcedureInfo.convert(proto);<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>    @Override<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    public String toString() {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      return "Entry(" + getProcId() + ", parentId=" + getParentId() + ")";<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><a name="line.297"></a>
+<span class="sourceLineNo">298</span>  private static class EntryIterator implements ProcedureIterator {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    private final Entry replayHead;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    private Entry current;<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>    public EntryIterator(Entry replayHead) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      this.replayHead = replayHead;<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      this.current = replayHead;<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>    @Override<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    public void reset() {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      this.current = replayHead;<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>    @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    public boolean hasNext() {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      return current != null;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>    @Override<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    public boolean isNextCompleted() {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      return current != null &amp;&amp; current.isCompleted();<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>    @Override<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    public void skipNext() {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      current = current.replayNext;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    }<a name="line.325"></a>
+<span class="sourceLineNo">326</span><a name="line.326"></a>
+<span class="sourceLineNo">327</span>    @Override<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    public Procedure nextAsProcedure() throws IOException {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      try {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        return current.convert();<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      } finally {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        current = current.replayNext;<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><a name="line.335"></a>
-<span class="sourceLineNo">336</span>    public void add(ProcedureProtos.Procedure procProto) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      trackProcIds(procProto.getProcId());<a name="line.337"></a>
-<span class="sourceLineNo">338</span>      Entry entry = addToMap(procProto.getProcId(), procProto.hasParentId());<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      boolean isNew = entry.proto == null;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      entry.proto = procProto;<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      addToReplayList(entry);<a name="line.341"></a>
-<span class="sourceLineNo">342</span><a name="line.342"></a>
-<span class="sourceLineNo">343</span>      if (isNew) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>        if (procProto.hasParentId()) {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>          childUnlinkedHead = addToLinkList(entry, childUnlinkedHead);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>        } else {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>          rootHead = addToLinkList(entry, rootHead);<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><a name="line.351"></a>
-<span class="sourceLineNo">352</span>    public boolean remove(long procId) {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      trackProcIds(procId);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      Entry entry = removeFromMap(procId);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      if (entry != null) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>        unlinkFromReplayList(entry);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>        unlinkFromLinkList(entry);<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        return true;<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      }<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      return false;<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>    private void trackProcIds(long procId) {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      minProcId = Math.min(minProcId, procId);<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      maxProcId = Math.max(maxProcId, procId);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    }<a name="line.366"></a>
-<span class="sourceLineNo">367</span><a name="line.367"></a>
-<span class="sourceLineNo">368</span>    public long getMinProcId() {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      return minProcId;<a name="line.369"></a>
+<span class="sourceLineNo">336</span>    @Override<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    public ProcedureInfo nextAsProcedureInfo() {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      try {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>        return current.convertToInfo();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      } finally {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        current = current.replayNext;<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 class WalProcedureMap {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    // procedure hash table<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    private Entry[] procedureMap;<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>    // replay-order double-linked-list<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    private Entry replayOrderHead;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    private Entry replayOrderTail;<a name="line.352"></a>
+<span class="sourceLineNo">353</span><a name="line.353"></a>
+<span class="sourceLineNo">354</span>    // root linked-list<a name="line.354"></a>
+<span class="sourceLineNo">355</span>    private Entry rootHead;<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>    // pending unlinked children (root not present yet)<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    private Entry childUnlinkedHead;<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span>    // Track ProcId range<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    private long minProcId = Long.MAX_VALUE;<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    private long maxProcId = Long.MIN_VALUE;<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span>    public WalProcedureMap(int size) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      procedureMap = new Entry[size];<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      replayOrderHead = null;<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      replayOrderTail = null;<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      rootHead = null;<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      childUnlinkedHead = null;<a name="line.369"></a>
 <span class="sourceLineNo">370</span>    }<a name="line.370"></a>
 <span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>    public long getMaxProcId() {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      return maxProcId;<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>    public boolean contains(long procId) {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      return getProcedure(procId) != null;<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>    public boolean isEmpty() {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      return replayOrderHead == null;<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>    public void clear() {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      for (int i = 0; i &lt; procedureMap.length; ++i) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>        procedureMap[i] = null;<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      }<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      replayOrderHead = null;<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      replayOrderTail = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      rootHead = null;<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      childUnlinkedHead = null;<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      minProcId = Long.MAX_VALUE;<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      maxProcId = Long.MIN_VALUE;<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>     * Merges two WalProcedureMap,<a name="line.397"></a>
-<span class="sourceLineNo">398</span>     * the target is the "global" map, the source is the "local" map.<a name="line.398"></a>
-<span class="sourceLineNo">399</span>     *  - The entries in the hashtables are guaranteed to be unique.<a name="line.399"></a>
-<span class="sourceLineNo">400</span>     *    On replay we don't load procedures that already exist in the "global"<a name="line.400"></a>
-<span class="sourceLineNo">401</span>     *    map (the one we are merging the "local" in to).<a name="line.401"></a>
-<span class="sourceLineNo">402</span>     *  - The replayOrderList of the "local" nao will be appended to the "global"<a name="line.402"></a>
-<span class="sourceLineNo">403</span>     *    map replay list.<a name="line.403"></a>
-<span class="sourceLineNo">404</span>     *  - The "local" map will be cleared at the end of the operation.<a name="line.404"></a>
-<span class="sourceLineNo">405</span>     */<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    public void mergeTail(WalProcedureMap other) {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      for (Entry p = other.replayOrderHead; p != null; p = p.replayNext) {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>        int slotIndex = getMapSlot(p.getProcId());<a name="line.408"></a>
-<span class="sourceLineNo">409</span>        p.hashNext = procedureMap[slotIndex];<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        procedureMap[slotIndex] = p;<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      }<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>      if (replayOrderHead == null) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>        replayOrderHead = other.replayOrderHead;<a name="line.414"></a>
-<span class="sourceLineNo">415</span>        replayOrderTail = other.replayOrderTail;<a name="line.415"></a>
-<span class="sourceLineNo">416</span>        rootHead = other.rootHead;<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        childUnlinkedHead = other.childUnlinkedHead;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      } else {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>        // append replay list<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        assert replayOrderTail.replayNext == null;<a name="line.420"></a>
-<span class="sourceLineNo">421</span>        assert other.replayOrderHead.replayPrev == null;<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        replayOrderTail.replayNext = other.replayOrderHead;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>        other.replayOrderHead.replayPrev = replayOrderTail;<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        replayOrderTail = other.replayOrderTail;<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>        // merge rootHead<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        if (rootHead == null) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>          rootHead = other.rootHead;<a name="line.428"></a>
-<span class="sourceLineNo">429</span>        } else if (other.rootHead != null) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span>          Entry otherTail = findLinkListTail(other.rootHead);<a name="line.430"></a>
-<span class="sourceLineNo">431</span>          otherTail.linkNext = rootHead;<a name="line.431"></a>
-<span class="sourceLineNo">432</span>          rootHead.linkPrev = otherTail;<a name="line.432"></a>
-<span class="sourceLineNo">433</span>          rootHead = other.rootHead;<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>        // merge childUnlinkedHead<a name="line.436"></a>
-<span class="sourceLineNo">437</span>        if (childUnlinkedHead == null) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>          childUnlinkedHead = other.childUnlinkedHead;<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        } else if (other.childUnlinkedHead != null) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          Entry otherTail = findLinkListTail(other.childUnlinkedHead);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          otherTail.linkNext = childUnlinkedHead;<a name="line.441"></a>
-<span class="sourceLineNo">442</span>          childUnlinkedHead.linkPrev = otherTail;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>          childUnlinkedHead = other.childUnlinkedHead;<a name="line.443"></a>
-<span class="sourceLineNo">444</span>        }<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      }<a name="line.445"></a>
-<span class="sourceLineNo">446</span><a name="line.446"></a>
-<span class="sourceLineNo">447</span>      other.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>     * Returns an EntryIterator with the list of procedures ready<a name="line.451"></a>
-<span class="sourceLineNo">452</span>     * to be added to the executor.<a name="line.452"></a>
-<span class="sourceLineNo">453</span>     * A Procedure is ready if its children and parent are ready.<a name="line.453"></a>
-<span class="sourceLineNo">454</span>     */<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    public EntryIterator fetchReady() {<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      buildGraph();<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>      Entry readyHead = null;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      Entry readyTail = null;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      Entry p = replayOrderHead;<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      while (p != null) {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>        Entry next = p.replayNext;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>        if (p.isReady()) {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>          unlinkFromReplayList(p);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>          if (readyTail != null) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>            readyTail.replayNext = p;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>            p.replayPrev = readyTail;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>          } else {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>            p.replayPrev = null;<a name="line.469"></a>
-<span class="sourceLineNo">470</span>            readyHead = p;<a name="line.470"></a>
-<span class="sourceLineNo">471</span>          }<a name="line.471"></a>
-<span class="sourceLineNo">472</span>          readyTail = p;<a name="line.472"></a>
-<span class="sourceLineNo">473</span>          p.replayNext = null;<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        }<a name="line.474"></a>
-<span class="sourceLineNo">475</span>        p = next;<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      }<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      // we need the hash-table lookups for parents, so this must be done<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      // out of the loop where we check isReadyToRun()<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      for (p = readyHead; p != null; p = p.replayNext) {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        removeFromMap(p.getProcId());<a name="line.480"></a>
-<span class="sourceLineNo">481</span>        unlinkFromLinkList(p);<a name="line.481"></a>
-<span class="sourceLineNo">482</span>      }<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      return readyHead != null ? new EntryIterator(readyHead) : null;<a name="line.483"></a>
+<span class="sourceLineNo">372</span>    public void add(ProcedureProtos.Procedure procProto) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      trackProcIds(procProto.getProcId());<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      Entry entry = addToMap(procProto.getProcId(), procProto.hasParentId());<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      boolean isNew = entry.proto == null;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      entry.proto = procProto;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      addToReplayList(entry);<a name="line.377"></a>
+<span class="sourceLineNo">378</span><a name="line.378"></a>
+<span class="sourceLineNo">379</span>      if (isNew) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        if (procProto.hasParentId()) {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>          childUnlinkedHead = addToLinkList(entry, childUnlinkedHead);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        } else {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>          rootHead = addToLinkList(entry, rootHead);<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><a name="line.387"></a>
+<span class="sourceLineNo">388</span>    public boolean remove(long procId) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      trackProcIds(procId);<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      Entry entry = removeFromMap(procId);<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      if (entry != null) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        unlinkFromReplayList(entry);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        unlinkFromLinkList(entry);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        return true;<a name="line.394"></a>
+<span class="sourceLineNo">395</span>      }<a name="line.395"></a>
+<span class="sourceLineNo">396</span>      return false;<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>    private void trackProcIds(long procId) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>      minProcId = Math.min(minProcId, procId);<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      maxProcId = Math.max(maxProcId, procId);<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    }<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>    public long getMinProcId() {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      return minProcId;<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>    public long getMaxProcId() {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>      return maxProcId;<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>    public boolean contains(long procId) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      return getProcedure(procId) != null;<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 isEmpty() {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>      return replayOrderHead == null;<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>    public void clear() {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      for (int i = 0; i &lt; procedureMap.length; ++i) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        procedureMap[i] = null;<a name="line.422"></a>
+<span class="sourceLineNo">423</span>      }<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      replayOrderHead = null;<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      replayOrderTail = null;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      rootHead = null;<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      childUnlinkedHead = null;<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      minProcId = Long.MAX_VALUE;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      maxProcId = Long.MIN_VALUE;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    }<a name="line.430"></a>
+<span class="sourceLineNo">431</span><a name="line.431"></a>
+<span class="sourceLineNo">432</span>    /*<a name="line.432"></a>
+<span class="sourceLineNo">433</span>     * Merges two WalProcedureMap,<a name="line.433"></a>
+<span class="sourceLineNo">434</span>     * the target is the "global" map, the source is the "local" map.<a name="line.434"></a>
+<span class="sourceLineNo">435</span>     *  - The entries in the hashtables are guaranteed to be unique.<a name="line.435"></a>
+<span class="sourceLineNo">436</span>     *    On replay we don't load procedures that already exist in the "global"<a name="line.436"></a>
+<span class="sourceLineNo">437</span>     *    map (the one we are merging the "local" in to).<a name="line.437"></a>
+<span class="sourceLineNo">438</span>     *  - The replayOrderList of the "local" nao will be appended to the "global"<a name="line.438"></a>
+<span class="sourceLineNo">439</span>     *    map replay list.<a name="line.439"></a>
+<span class="sourceLineNo">440</span>     *  - The "local" map will be cleared at the end of the operation.<a name="line.440"></a>
+<span class="sourceLineNo">441</span>     */<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    public void mergeTail(WalProcedureMap other) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      for (Entry p = other.replayOrderHead; p != null; p = p.replayNext) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        int slotIndex = getMapSlot(p.getProcId());<a name="line.444"></a>
+<span class="sourceLineNo">445</span>        p.hashNext = procedureMap[slotIndex];<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        procedureMap[slotIndex] = p;<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>      if (replayOrderHead == null) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        replayOrderHead = other.replayOrderHead;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>        replayOrderTail = other.replayOrderTail;<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        rootHead = other.rootHead;<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        childUnlinkedHead = other.childUnlinkedHead;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        // append replay list<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        assert replayOrderTail.replayNext == null;<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        assert other.replayOrderHead.replayPrev == null;<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        replayOrderTail.replayNext = other.replayOrderHead;<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        other.replayOrderHead.replayPrev = replayOrderTail;<a name="line.459"></a>
+<span class="sourceLineNo">460</span>        replayOrderTail = other.replayOrderTail;<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>        // merge rootHead<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        if (rootHead == null) {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>          rootHead = other.rootHead;<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        } else if (other.rootHead != null) {<a name="line.465"></a>
+<span class="sourceLineNo">466</span>          Entry otherTail = findLinkListTail(other.rootHead);<a name="line.466"></a>
+<span class="sourceLineNo">467</span>          otherTail.linkNext = rootHead;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>          rootHead.linkPrev = otherTail;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>          rootHead = other.rootHead;<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>        // merge childUnlinkedHead<a name="line.472"></a>
+<span class="sourceLineNo">473</span>        if (childUnlinkedHead == null) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>          childUnlinkedHead = other.childUnlinkedHead;<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        } else if (other.childUnlinkedHead != null) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>          Entry otherTail = findLinkListTail(other.childUnlinkedHead);<a name="line.476"></a>
+<span class="sourceLineNo">477</span>          otherTail.linkNext = childUnlinkedHead;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>          childUnlinkedHead.linkPrev = otherTail;<a name="line.478"></a>
+<span class="sourceLineNo">479</span>          childUnlinkedHead = other.childUnlinkedHead;<a name="line.479"></a

<TRUNCATED>

[16/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.Testing.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.Testing.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.Testing.html
index 2ab8ebc..10be916 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.Testing.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.Testing.html
@@ -316,7 +316,7 @@
 <span class="sourceLineNo">308</span>      public void handleCorrupted(ProcedureIterator procIter) throws IOException {<a name="line.308"></a>
 <span class="sourceLineNo">309</span>        int corruptedCount = 0;<a name="line.309"></a>
 <span class="sourceLineNo">310</span>        while (procIter.hasNext()) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>          Procedure proc = procIter.next();<a name="line.311"></a>
+<span class="sourceLineNo">311</span>          ProcedureInfo proc = procIter.nextAsProcedureInfo();<a name="line.311"></a>
 <span class="sourceLineNo">312</span>          LOG.error("corrupted procedure: " + proc);<a name="line.312"></a>
 <span class="sourceLineNo">313</span>          corruptedCount++;<a name="line.313"></a>
 <span class="sourceLineNo">314</span>        }<a name="line.314"></a>
@@ -329,972 +329,989 @@
 <span class="sourceLineNo">321</span><a name="line.321"></a>
 <span class="sourceLineNo">322</span>  private void loadProcedures(final ProcedureIterator procIter,<a name="line.322"></a>
 <span class="sourceLineNo">323</span>      final boolean abortOnCorruption) throws IOException {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    // 1. Build the rollback stack<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    int runnablesCount = 0;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    while (procIter.hasNext()) {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      Procedure proc = procIter.next();<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      if (!proc.hasParent() &amp;&amp; !proc.isFinished()) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>        rollbackStack.put(proc.getProcId(), new RootProcedureState());<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      // add the procedure to the map<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      proc.beforeReplay(getEnvironment());<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      procedures.put(proc.getProcId(), proc);<a name="line.333"></a>
-<span class="sourceLineNo">334</span><a name="line.334"></a>
-<span class="sourceLineNo">335</span>      // add the nonce to the map<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      if (proc.getNonceKey() != null) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>        nonceKeysToProcIdsMap.put(proc.getNonceKey(), proc.getProcId());<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>      if (proc.getState() == ProcedureState.RUNNABLE) {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>        runnablesCount++;<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">324</span>    final boolean isDebugEnabled = LOG.isDebugEnabled();<a name="line.324"></a>
+<span class="sourceLineNo">325</span><a name="line.325"></a>
+<span class="sourceLineNo">326</span>    // 1. Build the rollback stack<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    int runnablesCount = 0;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    while (procIter.hasNext()) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      final NonceKey nonceKey;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      final long procId;<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>      if (procIter.isNextCompleted()) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        ProcedureInfo proc = procIter.nextAsProcedureInfo();<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        nonceKey = proc.getNonceKey();<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        procId = proc.getProcId();<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        completed.put(proc.getProcId(), proc);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        if (isDebugEnabled) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>          LOG.debug("The procedure is completed: " + proc);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>        }<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      } else {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        Procedure proc = procIter.nextAsProcedure();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        nonceKey = proc.getNonceKey();<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        procId = proc.getProcId();<a name="line.343"></a>
 <span class="sourceLineNo">344</span><a name="line.344"></a>
-<span class="sourceLineNo">345</span>    // 2. Initialize the stacks<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    ArrayList&lt;Procedure&gt; runnableList = new ArrayList(runnablesCount);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    HashSet&lt;Procedure&gt; waitingSet = null;<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    procIter.reset();<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    while (procIter.hasNext()) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      Procedure proc = procIter.next();<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      if (LOG.isDebugEnabled()) {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>        LOG.debug(String.format("Loading procedure state=%s isFailed=%s: %s",<a name="line.352"></a>
-<span class="sourceLineNo">353</span>                    proc.getState(), proc.hasException(), proc));<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      }<a name="line.354"></a>
-<span class="sourceLineNo">355</span><a name="line.355"></a>
-<span class="sourceLineNo">356</span>      Long rootProcId = getRootProcedureId(proc);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      if (rootProcId == null) {<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        // The 'proc' was ready to run but the root procedure was rolledback?<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        runnables.addBack(proc);<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        continue;<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>      if (!proc.hasParent() &amp;&amp; proc.isFinished()) {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>        if (LOG.isDebugEnabled()) {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>          LOG.debug(String.format("The procedure is completed state=%s isFailed=%s",<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    proc.getState(), proc.hasException()));<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>        assert !rollbackStack.containsKey(proc.getProcId());<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        procedures.remove(proc.getProcId());<a name="line.369"></a>
-<span class="sourceLineNo">370</span>        completed.put(proc.getProcId(), Procedure.createProcedureInfo(proc, proc.getNonceKey()));<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">345</span>        if (!proc.hasParent()) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>          assert !proc.isFinished() : "unexpected finished procedure";<a name="line.346"></a>
+<span class="sourceLineNo">347</span>          rollbackStack.put(proc.getProcId(), new RootProcedureState());<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>        // add the procedure to the map<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        proc.beforeReplay(getEnvironment());<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        procedures.put(proc.getProcId(), proc);<a name="line.352"></a>
+<span class="sourceLineNo">353</span><a name="line.353"></a>
+<span class="sourceLineNo">354</span>        if (proc.getState() == ProcedureState.RUNNABLE) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          runnablesCount++;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>      // add the nonce to the map<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      if (nonceKey != null) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>        nonceKeysToProcIdsMap.put(nonceKey, procId);<a name="line.361"></a>
+<span class="sourceLineNo">362</span>      }<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>    // 2. Initialize the stacks<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    ArrayList&lt;Procedure&gt; runnableList = new ArrayList(runnablesCount);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    HashSet&lt;Procedure&gt; waitingSet = null;<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    procIter.reset();<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    while (procIter.hasNext()) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>      if (procIter.isNextCompleted()) {<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        procIter.skipNext();<a name="line.371"></a>
 <span class="sourceLineNo">372</span>        continue;<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>      if (proc.hasParent() &amp;&amp; !proc.isFinished()) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>        Procedure parent = procedures.get(proc.getParentProcId());<a name="line.376"></a>
-<span class="sourceLineNo">377</span>        // corrupted procedures are handled later at step 3<a name="line.377"></a>
-<span class="sourceLineNo">378</span>        if (parent != null) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>          parent.incChildrenLatch();<a name="line.379"></a>
-<span class="sourceLineNo">380</span>        }<a name="line.380"></a>
+<span class="sourceLineNo">375</span>      Procedure proc = procIter.nextAsProcedure();<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      assert !(proc.isFinished() &amp;&amp; !proc.hasParent()) : "unexpected completed proc=" + proc;<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>      if (isDebugEnabled) {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        LOG.debug(String.format("Loading procedure state=%s isFailed=%s: %s",<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                    proc.getState(), proc.hasException(), proc));<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>      RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      procStack.loadStack(proc);<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>      switch (proc.getState()) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>        case RUNNABLE:<a name="line.387"></a>
-<span class="sourceLineNo">388</span>          runnableList.add(proc);<a name="line.388"></a>
-<span class="sourceLineNo">389</span>          break;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        case WAITING_TIMEOUT:<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          if (waitingSet == null) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>            waitingSet = new HashSet&lt;Procedure&gt;();<a name="line.392"></a>
-<span class="sourceLineNo">393</span>          }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>          waitingSet.add(proc);<a name="line.394"></a>
-<span class="sourceLineNo">395</span>          break;<a name="line.395"></a>
-<span class="sourceLineNo">396</span>        case FINISHED:<a name="line.396"></a>
-<span class="sourceLineNo">397</span>          if (proc.hasException()) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>            // add the proc to the runnables to perform the rollback<a name="line.398"></a>
-<span class="sourceLineNo">399</span>            runnables.addBack(proc);<a name="line.399"></a>
-<span class="sourceLineNo">400</span>            break;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          }<a name="line.401"></a>
-<span class="sourceLineNo">402</span>        case ROLLEDBACK:<a name="line.402"></a>
-<span class="sourceLineNo">403</span>        case INITIALIZING:<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          String msg = "Unexpected " + proc.getState() + " state for " + proc;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          LOG.error(msg);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          throw new UnsupportedOperationException(msg);<a name="line.406"></a>
-<span class="sourceLineNo">407</span>        default:<a name="line.407"></a>
-<span class="sourceLineNo">408</span>          break;<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    }<a name="line.410"></a>
-<span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>    // 3. Validate the stacks<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    int corruptedCount = 0;<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    Iterator&lt;Map.Entry&lt;Long, RootProcedureState&gt;&gt; itStack = rollbackStack.entrySet().iterator();<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    while (itStack.hasNext()) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      Map.Entry&lt;Long, RootProcedureState&gt; entry = itStack.next();<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      RootProcedureState procStack = entry.getValue();<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      if (procStack.isValid()) continue;<a name="line.418"></a>
-<span class="sourceLineNo">419</span><a name="line.419"></a>
-<span class="sourceLineNo">420</span>      for (Procedure proc: procStack.getSubprocedures()) {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>        LOG.error("corrupted procedure: " + proc);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        procedures.remove(proc.getProcId());<a name="line.422"></a>
-<span class="sourceLineNo">423</span>        runnableList.remove(proc);<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        if (waitingSet != null) waitingSet.remove(proc);<a name="line.424"></a>
-<span class="sourceLineNo">425</span>        corruptedCount++;<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      itStack.remove();<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>    if (abortOnCorruption &amp;&amp; corruptedCount &gt; 0) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      throw new IOException("found " + corruptedCount + " procedures on replay");<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
-<span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span>    // 4. Push the runnables<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    if (!runnableList.isEmpty()) {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // TODO: See ProcedureWALFormatReader#hasFastStartSupport<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      // some procedure may be started way before this stuff.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (int i = runnableList.size() - 1; i &gt;= 0; --i) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        Procedure proc = runnableList.get(i);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        if (!proc.hasParent()) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          sendProcedureLoadedNotification(proc.getProcId());<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (proc.wasExecuted()) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          runnables.addFront(proc);<a name="line.444"></a>
-<span class="sourceLineNo">445</span>        } else {<a name="line.445"></a>
-<span class="sourceLineNo">446</span>          // if it was not in execution, it can wait.<a name="line.446"></a>
-<span class="sourceLineNo">447</span>          runnables.addBack(proc);<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>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  /**<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * Start the procedure executor.<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * It calls ProcedureStore.recoverLease() and ProcedureStore.load() to<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * recover the lease, and ensure a single executor, and start the procedure<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * replay to resume and recover the previous pending and in-progress perocedures.<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   *<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   * @param numThreads number of threads available for procedure execution.<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   * @param abortOnCorruption true if you want to abort your service in case<a name="line.460"></a>
-<span class="sourceLineNo">461</span>   *          a corrupted procedure is found on replay. otherwise false.<a name="line.461"></a>
-<span class="sourceLineNo">462</span>   */<a name="line.462"></a>
-<span class="sourceLineNo">463</span>  public void start(int numThreads, boolean abortOnCorruption) throws IOException {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    if (running.getAndSet(true)) {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      LOG.warn("Already running");<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      return;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
-<span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>    // We have numThreads executor + one timer thread used for timing out<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    // procedures and triggering periodic procedures.<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    threads = new Thread[numThreads + 1];<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    LOG.info("Starting procedure executor threads=" + threads.length);<a name="line.472"></a>
-<span class="sourceLineNo">473</span><a name="line.473"></a>
-<span class="sourceLineNo">474</span>    // Initialize procedures executor<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    for (int i = 0; i &lt; numThreads; ++i) {<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      threads[i] = new Thread("ProcedureExecutor-" + i) {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>        @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span>        public void run() {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>          execLoop();<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        }<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      };<a name="line.481"></a>
+<span class="sourceLineNo">383</span>      Long rootProcId = getRootProcedureId(proc);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      if (rootProcId == null) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        // The 'proc' was ready to run but the root procedure was rolledback?<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        runnables.addBack(proc);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        continue;<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>      if (proc.hasParent() &amp;&amp; !proc.isFinished()) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        Procedure parent = procedures.get(proc.getParentProcId());<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        // corrupted procedures are handled later at step 3<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        if (parent != null) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>          parent.incChildrenLatch();<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>      RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.398"></a>
+<span class="sourceLineNo">399</span>      procStack.loadStack(proc);<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>      switch (proc.getState()) {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        case RUNNABLE:<a name="line.402"></a>
+<span class="sourceLineNo">403</span>          runnableList.add(proc);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>          break;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        case WAITING_TIMEOUT:<a name="line.405"></a>
+<span class="sourceLineNo">406</span>          if (waitingSet == null) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>            waitingSet = new HashSet&lt;Procedure&gt;();<a name="line.407"></a>
+<span class="sourceLineNo">408</span>          }<a name="line.408"></a>
+<span class="sourceLineNo">409</span>          waitingSet.add(proc);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>          break;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        case FINISHED:<a name="line.411"></a>
+<span class="sourceLineNo">412</span>          if (proc.hasException()) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>            // add the proc to the runnables to perform the rollback<a name="line.413"></a>
+<span class="sourceLineNo">414</span>            runnables.addBack(proc);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>            break;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>          }<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        case ROLLEDBACK:<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        case INITIALIZING:<a name="line.418"></a>
+<span class="sourceLineNo">419</span>          String msg = "Unexpected " + proc.getState() + " state for " + proc;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>          LOG.error(msg);<a name="line.420"></a>
+<span class="sourceLineNo">421</span>          throw new UnsupportedOperationException(msg);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        default:<a name="line.422"></a>
+<span class="sourceLineNo">423</span>          break;<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      }<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    }<a name="line.425"></a>
+<span class="sourceLineNo">426</span><a name="line.426"></a>
+<span class="sourceLineNo">427</span>    // 3. Validate the stacks<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    int corruptedCount = 0;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    Iterator&lt;Map.Entry&lt;Long, RootProcedureState&gt;&gt; itStack = rollbackStack.entrySet().iterator();<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    while (itStack.hasNext()) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      Map.Entry&lt;Long, RootProcedureState&gt; entry = itStack.next();<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      RootProcedureState procStack = entry.getValue();<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      if (procStack.isValid()) continue;<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>      for (Procedure proc: procStack.getSubprocedures()) {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        LOG.error("corrupted procedure: " + proc);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        procedures.remove(proc.getProcId());<a name="line.437"></a>
+<span class="sourceLineNo">438</span>        runnableList.remove(proc);<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        if (waitingSet != null) waitingSet.remove(proc);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        corruptedCount++;<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      }<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      itStack.remove();<a name="line.442"></a>
+<span class="sourceLineNo">443</span>    }<a name="line.443"></a>
+<span class="sourceLineNo">444</span><a name="line.444"></a>
+<span class="sourceLineNo">445</span>    if (abortOnCorruption &amp;&amp; corruptedCount &gt; 0) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      throw new IOException("found " + corruptedCount + " procedures on replay");<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>    // 4. Push the runnables<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    if (!runnableList.isEmpty()) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      // TODO: See ProcedureWALFormatReader#hasFastStartSupport<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      // some procedure may be started way before this stuff.<a name="line.452"></a>
+<span class="sourceLineNo">453</span>      for (int i = runnableList.size() - 1; i &gt;= 0; --i) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        Procedure proc = runnableList.get(i);<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        if (!proc.hasParent()) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>          sendProcedureLoadedNotification(proc.getProcId());<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        }<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        if (proc.wasExecuted()) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>          runnables.addFront(proc);<a name="line.459"></a>
+<span class="sourceLineNo">460</span>        } else {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>          // if it was not in execution, it can wait.<a name="line.461"></a>
+<span class="sourceLineNo">462</span>          runnables.addBack(proc);<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        }<a name="line.463"></a>
+<span class="sourceLineNo">464</span>      }<a name="line.464"></a>
+<span class="sourceLineNo">465</span>    }<a name="line.465"></a>
+<span class="sourceLineNo">466</span>  }<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>  /**<a name="line.468"></a>
+<span class="sourceLineNo">469</span>   * Start the procedure executor.<a name="line.469"></a>
+<span class="sourceLineNo">470</span>   * It calls ProcedureStore.recoverLease() and ProcedureStore.load() to<a name="line.470"></a>
+<span class="sourceLineNo">471</span>   * recover the lease, and ensure a single executor, and start the procedure<a name="line.471"></a>
+<span class="sourceLineNo">472</span>   * replay to resume and recover the previous pending and in-progress perocedures.<a name="line.472"></a>
+<span class="sourceLineNo">473</span>   *<a name="line.473"></a>
+<span class="sourceLineNo">474</span>   * @param numThreads number of threads available for procedure execution.<a name="line.474"></a>
+<span class="sourceLineNo">475</span>   * @param abortOnCorruption true if you want to abort your service in case<a name="line.475"></a>
+<span class="sourceLineNo">476</span>   *          a corrupted procedure is found on replay. otherwise false.<a name="line.476"></a>
+<span class="sourceLineNo">477</span>   */<a name="line.477"></a>
+<span class="sourceLineNo">478</span>  public void start(int numThreads, boolean abortOnCorruption) throws IOException {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>    if (running.getAndSet(true)) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>      LOG.warn("Already running");<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      return;<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>    // Initialize procedures timeout handler (this is the +1 thread)<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    threads[numThreads] = new Thread("ProcedureExecutorTimeoutThread") {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      @Override<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      public void run() {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>        timeoutLoop();<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      }<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    };<a name="line.490"></a>
-<span class="sourceLineNo">491</span><a name="line.491"></a>
-<span class="sourceLineNo">492</span>    // Acquire the store lease.<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    store.recoverLease();<a name="line.493"></a>
-<span class="sourceLineNo">494</span><a name="line.494"></a>
-<span class="sourceLineNo">495</span>    // TODO: Split in two steps.<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    // TODO: Handle corrupted procedures (currently just a warn)<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    // The first one will make sure that we have the latest id,<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    // so we can start the threads and accept new procedures.<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    // The second step will do the actual load of old procedures.<a name="line.499"></a>
-<span class="sourceLineNo">500</span>    load(abortOnCorruption);<a name="line.500"></a>
-<span class="sourceLineNo">501</span><a name="line.501"></a>
-<span class="sourceLineNo">502</span>    // Start the executors. Here we must have the lastProcId set.<a name="line.502"></a>
-<span class="sourceLineNo">503</span>    for (int i = 0; i &lt; threads.length; ++i) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      threads[i].start();<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    }<a name="line.505"></a>
+<span class="sourceLineNo">484</span>    // We have numThreads executor + one timer thread used for timing out<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    // procedures and triggering periodic procedures.<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    threads = new Thread[numThreads + 1];<a name="line.486"></a>
+<span class="sourceLineNo">487</span>    LOG.info("Starting procedure executor threads=" + threads.length);<a name="line.487"></a>
+<span class="sourceLineNo">488</span><a name="line.488"></a>
+<span class="sourceLineNo">489</span>    // Initialize procedures executor<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    for (int i = 0; i &lt; numThreads; ++i) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>      threads[i] = new Thread("ProcedureExecutor-" + i) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        public void run() {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>          execLoop();<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        }<a name="line.495"></a>
+<span class="sourceLineNo">496</span>      };<a name="line.496"></a>
+<span class="sourceLineNo">497</span>    }<a name="line.497"></a>
+<span class="sourceLineNo">498</span><a name="line.498"></a>
+<span class="sourceLineNo">499</span>    // Initialize procedures timeout handler (this is the +1 thread)<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    threads[numThreads] = new Thread("ProcedureExecutorTimeoutThread") {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>      @Override<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      public void run() {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>        timeoutLoop();<a name="line.503"></a>
+<span class="sourceLineNo">504</span>      }<a name="line.504"></a>
+<span class="sourceLineNo">505</span>    };<a name="line.505"></a>
 <span class="sourceLineNo">506</span><a name="line.506"></a>
-<span class="sourceLineNo">507</span>    // Add completed cleaner<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    waitingTimeout.add(<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      new CompletedProcedureCleaner(conf, store, completed, nonceKeysToProcIdsMap));<a name="line.509"></a>
-<span class="sourceLineNo">510</span>  }<a name="line.510"></a>
-<span class="sourceLineNo">511</span><a name="line.511"></a>
-<span class="sourceLineNo">512</span>  public void stop() {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    if (!running.getAndSet(false)) {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      return;<a name="line.514"></a>
-<span class="sourceLineNo">515</span>    }<a name="line.515"></a>
+<span class="sourceLineNo">507</span>    // Acquire the store lease.<a name="line.507"></a>
+<span class="sourceLineNo">508</span>    store.recoverLease();<a name="line.508"></a>
+<span class="sourceLineNo">509</span><a name="line.509"></a>
+<span class="sourceLineNo">510</span>    // TODO: Split in two steps.<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    // TODO: Handle corrupted procedures (currently just a warn)<a name="line.511"></a>
+<span class="sourceLineNo">512</span>    // The first one will make sure that we have the latest id,<a name="line.512"></a>
+<span class="sourceLineNo">513</span>    // so we can start the threads and accept new procedures.<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    // The second step will do the actual load of old procedures.<a name="line.514"></a>
+<span class="sourceLineNo">515</span>    load(abortOnCorruption);<a name="line.515"></a>
 <span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>    LOG.info("Stopping the procedure executor");<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    runnables.signalAll();<a name="line.518"></a>
-<span class="sourceLineNo">519</span>    waitingTimeout.signalAll();<a name="line.519"></a>
-<span class="sourceLineNo">520</span>  }<a name="line.520"></a>
+<span class="sourceLineNo">517</span>    // Start the executors. Here we must have the lastProcId set.<a name="line.517"></a>
+<span class="sourceLineNo">518</span>    for (int i = 0; i &lt; threads.length; ++i) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>      threads[i].start();<a name="line.519"></a>
+<span class="sourceLineNo">520</span>    }<a name="line.520"></a>
 <span class="sourceLineNo">521</span><a name="line.521"></a>
-<span class="sourceLineNo">522</span>  public void join() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    boolean interrupted = false;<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>    for (int i = 0; i &lt; threads.length; ++i) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      try {<a name="line.526"></a>
-<span class="sourceLineNo">527</span>        threads[i].join();<a name="line.527"></a>
-<span class="sourceLineNo">528</span>      } catch (InterruptedException ex) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        interrupted = true;<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><a name="line.532"></a>
-<span class="sourceLineNo">533</span>    if (interrupted) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      Thread.currentThread().interrupt();<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
+<span class="sourceLineNo">522</span>    // Add completed cleaner<a name="line.522"></a>
+<span class="sourceLineNo">523</span>    waitingTimeout.add(<a name="line.523"></a>
+<span class="sourceLineNo">524</span>      new CompletedProcedureCleaner(conf, store, completed, nonceKeysToProcIdsMap));<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 stop() {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>    if (!running.getAndSet(false)) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>      return;<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>    LOG.info("Stopping the procedure executor");<a name="line.532"></a>
+<span class="sourceLineNo">533</span>    runnables.signalAll();<a name="line.533"></a>
+<span class="sourceLineNo">534</span>    waitingTimeout.signalAll();<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>    completed.clear();<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    rollbackStack.clear();<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    procedures.clear();<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    nonceKeysToProcIdsMap.clear();<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    waitingTimeout.clear();<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    runnables.clear();<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    lastProcId.set(-1);<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>  public boolean isRunning() {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    return running.get();<a name="line.547"></a>
-<span class="sourceLineNo">548</span>  }<a name="line.548"></a>
-<span class="sourceLineNo">549</span><a name="line.549"></a>
-<span class="sourceLineNo">550</span>  /**<a name="line.550"></a>
-<span class="sourceLineNo">551</span>   * @return the number of execution threads.<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   */<a name="line.552"></a>
-<span class="sourceLineNo">553</span>  public int getNumThreads() {<a name="line.553"></a>
-<span class="sourceLineNo">554</span>    return threads == null ? 0 : (threads.length - 1);<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>  public int getActiveExecutorCount() {<a name="line.557"></a>
-<span class="sourceLineNo">558</span>    return activeExecutorCount.get();<a name="line.558"></a>
+<span class="sourceLineNo">537</span>  public void join() {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    boolean interrupted = false;<a name="line.538"></a>
+<span class="sourceLineNo">539</span><a name="line.539"></a>
+<span class="sourceLineNo">540</span>    for (int i = 0; i &lt; threads.length; ++i) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>      try {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>        threads[i].join();<a name="line.542"></a>
+<span class="sourceLineNo">543</span>      } catch (InterruptedException ex) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        interrupted = true;<a name="line.544"></a>
+<span class="sourceLineNo">545</span>      }<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    }<a name="line.546"></a>
+<span class="sourceLineNo">547</span><a name="line.547"></a>
+<span class="sourceLineNo">548</span>    if (interrupted) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      Thread.currentThread().interrupt();<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>    completed.clear();<a name="line.552"></a>
+<span class="sourceLineNo">553</span>    rollbackStack.clear();<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    procedures.clear();<a name="line.554"></a>
+<span class="sourceLineNo">555</span>    nonceKeysToProcIdsMap.clear();<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    waitingTimeout.clear();<a name="line.556"></a>
+<span class="sourceLineNo">557</span>    runnables.clear();<a name="line.557"></a>
+<span class="sourceLineNo">558</span>    lastProcId.set(-1);<a name="line.558"></a>
 <span class="sourceLineNo">559</span>  }<a name="line.559"></a>
 <span class="sourceLineNo">560</span><a name="line.560"></a>
-<span class="sourceLineNo">561</span>  public TEnvironment getEnvironment() {<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    return this.environment;<a name="line.562"></a>
+<span class="sourceLineNo">561</span>  public boolean isRunning() {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    return running.get();<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>  public ProcedureStore getStore() {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    return this.store;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>  }<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    this.listeners.add(listener);<a name="line.570"></a>
-<span class="sourceLineNo">571</span>  }<a name="line.571"></a>
-<span class="sourceLineNo">572</span><a name="line.572"></a>
-<span class="sourceLineNo">573</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    return this.listeners.remove(listener);<a name="line.574"></a>
-<span class="sourceLineNo">575</span>  }<a name="line.575"></a>
-<span class="sourceLineNo">576</span><a name="line.576"></a>
-<span class="sourceLineNo">577</span>  /**<a name="line.577"></a>
-<span class="sourceLineNo">578</span>   * List procedures.<a name="line.578"></a>
-<span class="sourceLineNo">579</span>   * @return the procedures in a list<a name="line.579"></a>
-<span class="sourceLineNo">580</span>   */<a name="line.580"></a>
-<span class="sourceLineNo">581</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    List&lt;ProcedureInfo&gt; procedureLists =<a name="line.582"></a>
-<span class="sourceLineNo">583</span>        new ArrayList&lt;ProcedureInfo&gt;(procedures.size() + completed.size());<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    for (java.util.Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      procedureLists.add(Procedure.createProcedureInfo(p.getValue(), null));<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    for (java.util.Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.588"></a>
-<span class="sourceLineNo">589</span>      // it could complete after we walk through procedures list and insert into<a name="line.589"></a>
-<span class="sourceLineNo">590</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      procedureLists.add(e.getValue());<a name="line.592"></a>
-<span class="sourceLineNo">593</span>    }<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    return procedureLists;<a name="line.594"></a>
-<span class="sourceLineNo">595</span>  }<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>  /**<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * Add a new root-procedure to the executor.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * @param proc the new procedure to execute.<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   */<a name="line.601"></a>
-<span class="sourceLineNo">602</span>  public long submitProcedure(final Procedure proc) {<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    return submitProcedure(proc, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.603"></a>
-<span class="sourceLineNo">604</span>  }<a name="line.604"></a>
-<span class="sourceLineNo">605</span><a name="line.605"></a>
-<span class="sourceLineNo">606</span>  /**<a name="line.606"></a>
-<span class="sourceLineNo">607</span>   * Add a new root-procedure to the executor.<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   * @param proc the new procedure to execute.<a name="line.608"></a>
-<span class="sourceLineNo">609</span>   * @param nonceGroup<a name="line.609"></a>
-<span class="sourceLineNo">610</span>   * @param nonce<a name="line.610"></a>
-<span class="sourceLineNo">611</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.611"></a>
-<span class="sourceLineNo">612</span>   */<a name="line.612"></a>
-<span class="sourceLineNo">613</span>  public long submitProcedure(<a name="line.613"></a>
-<span class="sourceLineNo">614</span>      final Procedure proc,<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      final long nonceGroup,<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      final long nonce) {<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    Preconditions.checkArgument(isRunning());<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    Preconditions.checkArgument(!proc.hasParent());<a name="line.620"></a>
-<span class="sourceLineNo">621</span><a name="line.621"></a>
-<span class="sourceLineNo">622</span>    Long currentProcId;<a name="line.622"></a>
-<span class="sourceLineNo">623</span><a name="line.623"></a>
-<span class="sourceLineNo">624</span>    // The following part of the code has to be synchronized to prevent multiple request<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    // with the same nonce to execute at the same time.<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    synchronized (this) {<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      // Check whether the proc exists.  If exist, just return the proc id.<a name="line.627"></a>
-<span class="sourceLineNo">628</span>      // This is to prevent the same proc to submit multiple times (it could happen<a name="line.628"></a>
-<span class="sourceLineNo">629</span>      // when client could not talk to server and resubmit the same request).<a name="line.629"></a>
-<span class="sourceLineNo">630</span>      NonceKey noncekey = null;<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      if (nonce != HConstants.NO_NONCE) {<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        noncekey = new NonceKey(nonceGroup, nonce);<a name="line.632"></a>
-<span class="sourceLineNo">633</span>        currentProcId = nonceKeysToProcIdsMap.get(noncekey);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>        if (currentProcId != null) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>          // Found the proc<a name="line.635"></a>
-<span class="sourceLineNo">636</span>          return currentProcId;<a name="line.636"></a>
-<span class="sourceLineNo">637</span>        }<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      }<a name="line.638"></a>
-<span class="sourceLineNo">639</span><a name="line.639"></a>
-<span class="sourceLineNo">640</span>      // Initialize the Procedure ID<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      currentProcId = nextProcId();<a name="line.641"></a>
-<span class="sourceLineNo">642</span>      proc.setProcId(currentProcId);<a name="line.642"></a>
-<span class="sourceLineNo">643</span><a name="line.643"></a>
-<span class="sourceLineNo">644</span>      // This is new procedure. Set the noncekey and insert into the map.<a name="line.644"></a>
-<span class="sourceLineNo">645</span>      if (noncekey != null) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>        proc.setNonceKey(noncekey);<a name="line.646"></a>
-<span class="sourceLineNo">647</span>        nonceKeysToProcIdsMap.put(noncekey, currentProcId);<a name="line.647"></a>
-<span class="sourceLineNo">648</span>      }<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    } // end of synchronized (this)<a name="line.649"></a>
-<span class="sourceLineNo">650</span><a name="line.650"></a>
-<span class="sourceLineNo">651</span>    // Commit the transaction<a name="line.651"></a>
-<span class="sourceLineNo">652</span>    store.insert(proc, null);<a name="line.652"></a>
-<span class="sourceLineNo">653</span>    if (LOG.isDebugEnabled()) {<a name="line.653"></a>
-<span class="sourceLineNo">654</span>      LOG.debug("Procedure " + proc + " added to the store.");<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    }<a name="line.655"></a>
-<span class="sourceLineNo">656</span><a name="line.656"></a>
-<span class="sourceLineNo">657</span>    // Create the rollback stack for the procedure<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    RootProcedureState stack = new RootProcedureState();<a name="line.658"></a>
-<span class="sourceLineNo">659</span>    rollbackStack.put(currentProcId, stack);<a name="line.659"></a>
-<span class="sourceLineNo">660</span><a name="line.660"></a>
-<span class="sourceLineNo">661</span>    // Submit the new subprocedures<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    assert !procedures.containsKey(currentProcId);<a name="line.662"></a>
-<span class="sourceLineNo">663</span>    procedures.put(currentProcId, proc);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    sendProcedureAddedNotification(currentProcId);<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    runnables.addBack(proc);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    return currentProcId;<a name="line.666"></a>
-<span class="sourceLineNo">667</span>  }<a name="line.667"></a>
-<span class="sourceLineNo">668</span><a name="line.668"></a>
-<span class="sourceLineNo">669</span>  public ProcedureInfo getResult(final long procId) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    return completed.get(procId);<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>  /**<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   * Return true if the procedure is finished.<a name="line.674"></a>
-<span class="sourceLineNo">675</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.675"></a>
-<span class="sourceLineNo">676</span>   * Use getResult() to check the state or get the result data.<a name="line.676"></a>
-<span class="sourceLineNo">677</span>   * @param procId the ID of the procedure to check<a name="line.677"></a>
-<span class="sourceLineNo">678</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>   */<a name="line.679"></a>
-<span class="sourceLineNo">680</span>  public boolean isFinished(final long procId) {<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    return completed.containsKey(procId);<a name="line.681"></a>
+<span class="sourceLineNo">565</span>  /**<a name="line.565"></a>
+<span class="sourceLineNo">566</span>   * @return the number of execution threads.<a name="line.566"></a>
+<span class="sourceLineNo">567</span>   */<a name="line.567"></a>
+<span class="sourceLineNo">568</span>  public int getNumThreads() {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>    return threads == null ? 0 : (threads.length - 1);<a name="line.569"></a>
+<span class="sourceLineNo">570</span>  }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>  public int getActiveExecutorCount() {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>    return activeExecutorCount.get();<a name="line.573"></a>
+<span class="sourceLineNo">574</span>  }<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>  public TEnvironment getEnvironment() {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    return this.environment;<a name="line.577"></a>
+<span class="sourceLineNo">578</span>  }<a name="line.578"></a>
+<span class="sourceLineNo">579</span><a name="line.579"></a>
+<span class="sourceLineNo">580</span>  public ProcedureStore getStore() {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>    return this.store;<a name="line.581"></a>
+<span class="sourceLineNo">582</span>  }<a name="line.582"></a>
+<span class="sourceLineNo">583</span><a name="line.583"></a>
+<span class="sourceLineNo">584</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>    this.listeners.add(listener);<a name="line.585"></a>
+<span class="sourceLineNo">586</span>  }<a name="line.586"></a>
+<span class="sourceLineNo">587</span><a name="line.587"></a>
+<span class="sourceLineNo">588</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>    return this.listeners.remove(listener);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>  }<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>  /**<a name="line.592"></a>
+<span class="sourceLineNo">593</span>   * List procedures.<a name="line.593"></a>
+<span class="sourceLineNo">594</span>   * @return the procedures in a list<a name="line.594"></a>
+<span class="sourceLineNo">595</span>   */<a name="line.595"></a>
+<span class="sourceLineNo">596</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>    List&lt;ProcedureInfo&gt; procedureLists =<a name="line.597"></a>
+<span class="sourceLineNo">598</span>        new ArrayList&lt;ProcedureInfo&gt;(procedures.size() + completed.size());<a name="line.598"></a>
+<span class="sourceLineNo">599</span>    for (java.util.Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>      procedureLists.add(Procedure.createProcedureInfo(p.getValue(), null));<a name="line.600"></a>
+<span class="sourceLineNo">601</span>    }<a name="line.601"></a>
+<span class="sourceLineNo">602</span>    for (java.util.Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.602"></a>
+<span class="sourceLineNo">603</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.603"></a>
+<span class="sourceLineNo">604</span>      // it could complete after we walk through procedures list and insert into<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.606"></a>
+<span class="sourceLineNo">607</span>      procedureLists.add(e.getValue());<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>    return procedureLists;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>  }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>  /**<a name="line.612"></a>
+<span class="sourceLineNo">613</span>   * Add a new root-procedure to the executor.<a name="line.613"></a>
+<span class="sourceLineNo">614</span>   * @param proc the new procedure to execute.<a name="line.614"></a>
+<span class="sourceLineNo">615</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.615"></a>
+<span class="sourceLineNo">616</span>   */<a name="line.616"></a>
+<span class="sourceLineNo">617</span>  public long submitProcedure(final Procedure proc) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>    return submitProcedure(proc, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.618"></a>
+<span class="sourceLineNo">619</span>  }<a name="line.619"></a>
+<span class="sourceLineNo">620</span><a name="line.620"></a>
+<span class="sourceLineNo">621</span>  /**<a name="line.621"></a>
+<span class="sourceLineNo">622</span>   * Add a new root-procedure to the executor.<a name="line.622"></a>
+<span class="sourceLineNo">623</span>   * @param proc the new procedure to execute.<a name="line.623"></a>
+<span class="sourceLineNo">624</span>   * @param nonceGroup<a name="line.624"></a>
+<span class="sourceLineNo">625</span>   * @param nonce<a name="line.625"></a>
+<span class="sourceLineNo">626</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.626"></a>
+<span class="sourceLineNo">627</span>   */<a name="line.627"></a>
+<span class="sourceLineNo">628</span>  public long submitProcedure(<a name="line.628"></a>
+<span class="sourceLineNo">629</span>      final Procedure proc,<a name="line.629"></a>
+<span class="sourceLineNo">630</span>      final long nonceGroup,<a name="line.630"></a>
+<span class="sourceLineNo">631</span>      final long nonce) {<a name="line.631"></a>
+<span class="sourceLineNo">632</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.632"></a>
+<span class="sourceLineNo">633</span>    Preconditions.checkArgument(isRunning());<a name="line.633"></a>
+<span class="sourceLineNo">634</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>    Preconditions.checkArgument(!proc.hasParent());<a name="line.635"></a>
+<span class="sourceLineNo">636</span><a name="line.636"></a>
+<span class="sourceLineNo">637</span>    Long currentProcId;<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>    // The following part of the code has to be synchronized to prevent multiple request<a name="line.639"></a>
+<span class="sourceLineNo">640</span>    // with the same nonce to execute at the same time.<a name="line.640"></a>
+<span class="sourceLineNo">641</span>    synchronized (this) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>      // Check whether the proc exists.  If exist, just return the proc id.<a name="line.642"></a>
+<span class="sourceLineNo">643</span>      // This is to prevent the same proc to submit multiple times (it could happen<a name="line.643"></a>
+<span class="sourceLineNo">644</span>      // when client could not talk to server and resubmit the same request).<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      NonceKey noncekey = null;<a name="line.645"></a>
+<span class="sourceLineNo">646</span>      if (nonce != HConstants.NO_NONCE) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>        noncekey = new NonceKey(nonceGroup, nonce);<a name="line.647"></a>
+<span class="sourceLineNo">648</span>        currentProcId = nonceKeysToProcIdsMap.get(noncekey);<a name="line.648"></a>
+<span class="sourceLineNo">649</span>        if (currentProcId != null) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>          // Found the proc<a name="line.650"></a>
+<span class="sourceLineNo">651</span>          return currentProcId;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>        }<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      }<a name="line.653"></a>
+<span class="sourceLineNo">654</span><a name="line.654"></a>
+<span class="sourceLineNo">655</span>      // Initialize the Procedure ID<a name="line.655"></a>
+<span class="sourceLineNo">656</span>      currentProcId = nextProcId();<a name="line.656"></a>
+<span class="sourceLineNo">657</span>      proc.setProcId(currentProcId);<a name="line.657"></a>
+<span class="sourceLineNo">658</span><a name="line.658"></a>
+<span class="sourceLineNo">659</span>      // This is new procedure. Set the noncekey and insert into the map.<a name="line.659"></a>
+<span class="sourceLineNo">660</span>      if (noncekey != null) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>        proc.setNonceKey(noncekey);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>        nonceKeysToProcIdsMap.put(noncekey, currentProcId);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>      }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>    } // end of synchronized (this)<a name="line.664"></a>
+<span class="sourceLineNo">665</span><a name="line.665"></a>
+<span class="sourceLineNo">666</span>    // Commit the transaction<a name="line.666"></a>
+<span class="sourceLineNo">667</span>    store.insert(proc, null);<a name="line.667"></a>
+<span class="sourceLineNo">668</span>    if (LOG.isDebugEnabled()) {<a name="line.668"></a>
+<span class="sourceLineNo">669</span>      LOG.debug("Procedure " + proc + " added to the store.");<a name="line.669"></a>
+<span class="sourceLineNo">670</span>    }<a name="line.670"></a>
+<span class="sourceLineNo">671</span><a name="line.671"></a>
+<span class="sourceLineNo">672</span>    // Create the rollback stack for the procedure<a name="line.672"></a>
+<span class="sourceLineNo">673</span>    RootProcedureState stack = new RootProcedureState();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>    rollbackStack.put(currentProcId, stack);<a name="line.674"></a>
+<span class="sourceLineNo">675</span><a name="line.675"></a>
+<span class="sourceLineNo">676</span>    // Submit the new subprocedures<a name="line.676"></a>
+<span class="sourceLineNo">677</span>    assert !procedures.containsKey(currentProcId);<a name="line.677"></a>
+<span class="sourceLineNo">678</span>    procedures.put(currentProcId, proc);<a name="line.678"></a>
+<span class="sourceLineNo">679</span>    sendProcedureAddedNotification(currentProcId);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>    runnables.addBack(proc);<a name="line.680"></a>
+<span class="sourceLineNo">681</span>    return currentProcId;<a name="line.681"></a>
 <span class="sourceLineNo">682</span>  }<a name="line.682"></a>
 <span class="sourceLineNo">683</span><a name="line.683"></a>
-<span class="sourceLineNo">684</span>  /**<a name="line.684"></a>
-<span class="sourceLineNo">685</span>   * Return true if the procedure is started.<a name="line.685"></a>
-<span class="sourceLineNo">686</span>   * @param procId the ID of the procedure to check<a name="line.686"></a>
-<span class="sourceLineNo">687</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.687"></a>
-<span class="sourceLineNo">688</span>   */<a name="line.688"></a>
-<span class="sourceLineNo">689</span>  public boolean isStarted(final long procId) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>    Procedure proc = procedures.get(procId);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    if (proc == null) {<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      return completed.get(procId) != null;<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    }<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    return proc.wasExecuted();<a name="line.694"></a>
-<span class="sourceLineNo">695</span>  }<a name="line.695"></a>
-<span class="sourceLineNo">696</span><a name="line.696"></a>
-<span class="sourceLineNo">697</span>  /**<a name="line.697"></a>
-<span class="sourceLineNo">698</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.698"></a>
-<span class="sourceLineNo">699</span>   * @param procId the ID of the procedure to remove<a name="line.699"></a>
-<span class="sourceLineNo">700</span>   */<a name="line.700"></a>
-<span class="sourceLineNo">701</span>  public void removeResult(final long procId) {<a name="line.701"></a>
-<span class="sourceLineNo">702</span>    ProcedureInfo result = completed.get(procId);<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    if (result == null) {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.704"></a>
-<span class="sourceLineNo">705</span>      if (LOG.isDebugEnabled()) {<a name="line.705"></a>
-<span class="sourceLineNo">706</span>        LOG.debug("Procedure procId=" + procId + " already removed by the cleaner.");<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      }<a name="line.707"></a>
-<span class="sourceLineNo">708</span>      return;<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    }<a name="line.709"></a>
-<span class="sourceLineNo">710</span><a name="line.710"></a>
-<span class="sourceLineNo">711</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.712"></a>
-<span class="sourceLineNo">713</span>  }<a name="line.713"></a>
-<span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>  /**<a name="line.715"></a>
-<span class="sourceLineNo">716</span>   * Send an abort notification the specified procedure.<a name="line.716"></a>
-<span class="sourceLineNo">717</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.717"></a>
-<span class="sourceLineNo">718</span>   * @param procId the procedure to abort<a name="line.718"></a>
-<span class="sourceLineNo">719</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.719"></a>
-<span class="sourceLineNo">720</span>   */<a name="line.720"></a>
-<span class="sourceLineNo">721</span>  public boolean abort(final long procId) {<a name="line.721"></a>
-<span class="sourceLineNo">722</span>    return abort(procId, true);<a name="line.722"></a>
-<span class="sourceLineNo">723</span>  }<a name="line.723"></a>
-<span class="sourceLineNo">724</span><a name="line.724"></a>
-<span class="sourceLineNo">725</span>  /**<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   * Send an abort notification the specified procedure.<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.727"></a>
-<span class="sourceLineNo">728</span>   * @param procId the procedure to abort<a name="line.728"></a>
-<span class="sourceLineNo">729</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.729"></a>
-<span class="sourceLineNo">730</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.730"></a>
-<span class="sourceLineNo">731</span>   */<a name="line.731"></a>
-<span class="sourceLineNo">732</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    Procedure proc = procedures.get(procId);<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    if (proc != null) {<a name="line.734"></a>
-<span class="sourceLineNo">735</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>        return false;<a name="line.736"></a>
-<span class="sourceLineNo">737</span>      } else {<a name="line.737"></a>
-<span class="sourceLineNo">738</span>        return proc.abort(getEnvironment());<a name="line.738"></a>
-<span class="sourceLineNo">739</span>      }<a name="line.739"></a>
-<span class="sourceLineNo">740</span>    }<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    return false;<a name="line.741"></a>
-<span class="sourceLineNo">742</span>  }<a name="line.742"></a>
-<span class="sourceLineNo">743</span><a name="line.743"></a>
-<span class="sourceLineNo">744</span>  /**<a name="line.744"></a>
-<span class="sourceLineNo">745</span>   * Check if the user is this procedure's owner<a name="line.745"></a>
-<span class="sourceLineNo">746</span>   * @param procId the target procedure<a name="line.746"></a>
-<span class="sourceLineNo">747</span>   * @param user the user<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   * @return true if the user is the owner of the procedure,<a name="line.748"></a>
-<span class="sourceLineNo">749</span>   *   false otherwise or the owner is unknown.<a name="line.749"></a>
-<span class="sourceLineNo">750</span>   */<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.751"></a>
-<span class="sourceLineNo">752</span>    if (user == null) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>      return false;<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    }<a name="line.754"></a>
-<span class="sourceLineNo">755</span><a name="line.755"></a>
-<span class="sourceLineNo">756</span>    Procedure proc = procedures.get(procId);<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    if (proc != null) {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>      return proc.getOwner().equals(user.getShortName());<a name="line.758"></a>
-<span class="sourceLineNo">759</span>    }<a name="line.759"></a>
-<span class="sourceLineNo">760</span>    ProcedureInfo procInfo = completed.get(procId);<a name="line.760"></a>
-<span class="sourceLineNo">761</span>    if (procInfo == null) {<a name="line.761"></a>
-<span class="sourceLineNo">762</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.762"></a>
-<span class="sourceLineNo">763</span>      // At this time, we cannot check the owner of the procedure<a name="line.763"></a>
-<span class="sourceLineNo">764</span>      return false;<a name="line.764"></a>
-<span class="sourceLineNo">765</span>    }<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<a name="line.766"></a>
-<span class="sourceLineNo">767</span>  }<a name="line.767"></a>
-<span class="sourceLineNo">768</span><a name="line.768"></a>
-<span class="sourceLineNo">769</span>  public Map&lt;Long, ProcedureInfo&gt; getResults() {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    return Collections.unmodifiableMap(completed);<a name="line.770"></a>
-<span class="sourceLineNo">771</span>  }<a name="line.771"></a>
-<span class="sourceLineNo">772</span><a name="line.772"></a>
-<span class="sourceLineNo">773</span>  public Procedure getProcedure(final long procId) {<a name="line.773"></a>
-<span class="sourceLineNo">774</span>    return procedures.get(procId);<a name="line.774"></a>
-<span class="sourceLineNo">775</span>  }<a name="line.775"></a>
-<span class="sourceLineNo">776</span><a name="line.776"></a>
-<span class="sourceLineNo">777</span>  protected ProcedureRunnableSet getRunnableSet() {<a name="line.777"></a>
-<span class="sourceLineNo">778</span>    return runnables;<a name="line.778"></a>
-<span class="sourceLineNo">779</span>  }<a name="line.779"></a>
-<span class="sourceLineNo">780</span><a name="line.780"></a>
-<span class="sourceLineNo">781</span>  /**<a name="line.781"></a>
-<span class="sourceLineNo">782</span>   * Execution loop (N threads)<a name="line.782"></a>
-<span class="sourceLineNo">783</span>   * while the executor is in a running state,<a name="line.783"></a>
-<span class="sourceLineNo">784</span>   * fetch a procedure from the runnables queue and start the execution.<a name="line.784"></a>
-<span class="sourceLineNo">785</span>   */<a name="line.785"></a>
-<span class="sourceLineNo">786</span>  private void execLoop() {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>    while (isRunning()) {<a name="line.787"></a>
-<span class="sourceLineNo">788</span>      Procedure proc = runnables.poll();<a name="line.788"></a>
-<span class="sourceLineNo">789</span>      if (proc == null) continue;<a name="line.789"></a>
-<span class="sourceLineNo">790</span><a name="line.790"></a>
-<span class="sourceLineNo">791</span>      try {<a name="line.791"></a>
-<span class="sourceLineNo">792</span>        activeExecutorCount.incrementAndGet();<a name="line.792"></a>
-<span class="sourceLineNo">793</span>        execLoop(proc);<a name="line.793"></a>
-<span class="sourceLineNo">794</span>      } finally {<a name="line.794"></a>
-<span class="sourceLineNo">795</span>        activeExecutorCount.decrementAndGet();<a name="line.795"></a>
-<span class="sourceLineNo">796</span>      }<a name="line.796"></a>
-<span class="sourceLineNo">797</span>    }<a name="line.797"></a>
-<span class="sourceLineNo">798</span>  }<a name="line.798"></a>
-<span class="sourceLineNo">799</span><a name="line.799"></a>
-<span class="sourceLineNo">800</span>  private void execLoop(Procedure proc) {<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    if (LOG.isTraceEnabled()) {<a name="line.801"></a>
-<span class="sourceLineNo">802</span>      LOG.trace("Trying to start the execution of " + proc);<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    }<a name="line.803"></a>
-<span class="sourceLineNo">804</span><a name="line.804"></a>
-<span class="sourceLineNo">805</span>    Long rootProcId = getRootProcedureId(proc);<a name="line.805"></a>
-<span class="sourceLineNo">806</span>    if (rootProcId == null) {<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.807"></a>
-<span class="sourceLineNo">808</span>      executeRollback(proc);<a name="line.808"></a>
-<span class="sourceLineNo">809</span>      return;<a name="line.809"></a>
-<span class="sourceLineNo">810</span>    }<a name="line.810"></a>
-<span class="sourceLineNo">811</span><a name="line.811"></a>
-<span class="sourceLineNo">812</span>    RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.812"></a>
-<span class="sourceLineNo">813</span>    if (procStack == null) return;<a name="line.813"></a>
+<span class="sourceLineNo">684</span>  public ProcedureInfo getResult(final long procId) {<a name="line.684"></a>
+<span class="sourceLineNo">685</span>    return completed.get(procId);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>  }<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>   * Return true if the procedure is finished.<a name="line.689"></a>
+<span class="sourceLineNo">690</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.690"></a>
+<span class="sourceLineNo">691</span>   * Use getResult() to check the state or get the result data.<a name="line.691"></a>
+<span class="sourceLineNo">692</span>   * @param procId the ID of the procedure to check<a name="line.692"></a>
+<span class="sourceLineNo">693</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.693"></a>
+<span class="sourceLineNo">694</span>   */<a name="line.694"></a>
+<span class="sourceLineNo">695</span>  public boolean isFinished(final long procId) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>    return completed.containsKey(procId);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>  }<a name="line.697"></a>
+<span class="sourceLineNo">698</span><a name="line.698"></a>
+<span class="sourceLineNo">699</span>  /**<a name="line.699"></a>
+<span class="sourceLineNo">700</span>   * Return true if the procedure is started.<a name="line.700"></a>
+<span class="sourceLineNo">701</span>   * @param procId the ID of the procedure to check<a name="line.701"></a>
+<span class="sourceLineNo">702</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.702"></a>
+<span class="sourceLineNo">703</span>   */<a name="line.703"></a>
+<span class="sourceLineNo">704</span>  public boolean isStarted(final long procId) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>    Procedure proc = procedures.get(procId);<a name="line.705"></a>
+<span class="sourceLineNo">706</span>    if (proc == null) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>      return completed.get(procId) != null;<a name="line.707"></a>
+<span class="sourceLineNo">708</span>    }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>    return proc.wasExecuted();<a name="line.709"></a>
+<span class="sourceLineNo">710</span>  }<a name="line.710"></a>
+<span class="sourceLineNo">711</span><a name="line.711"></a>
+<span class="sourceLineNo">712</span>  /**<a name="line.712"></a>
+<span class="sourceLineNo">713</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.713"></a>
+<span class="sourceLineNo">714</span>   * @param procId the ID of the procedure to remove<a name="line.714"></a>
+<span class="sourceLineNo">715</span>   */<a name="line.715"></a>
+<span class="sourceLineNo">716</span>  public void removeResult(final long procId) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>    ProcedureInfo result = completed.get(procId);<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    if (result == null) {<a name="line.718"></a>
+<span class="sourceLineNo">719</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.719"></a>
+<span class="sourceLineNo">720</span>      if (LOG.isDebugEnabled()) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>        LOG.debug("Procedure procId=" + procId + " already removed by the cleaner.");<a name="line.721"></a>
+<span class="sourceLineNo">722</span>      }<a name="line.722"></a>
+<span class="sourceLineNo">723</span>      return;<a name="line.723"></a>
+<span class="sourceLineNo">724</span>    }<a name="line.724"></a>
+<span class="sourceLineNo">725</span><a name="line.725"></a>
+<span class="sourceLineNo">726</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.726"></a>
+<span class="sourceLineNo">727</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.727"></a>
+<span class="sourceLineNo">728</span>  }<a name="line.728"></a>
+<span class="sourceLineNo">729</span><a name="line.729"></a>
+<span class="sourceLineNo">730</span>  /**<a name="line.730"></a>
+<span class="sourceLineNo">731</span>   * Send an abort notification the specified procedure.<a name="line.731"></a>
+<span class="sourceLineNo">732</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.732"></a>
+<span class="sourceLineNo">733</span>   * @param procId the procedure to abort<a name="line.733"></a>
+<span class="sourceLineNo">734</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.734"></a>
+<span class="sourceLineNo">735</span>   */<a name="line.735"></a>
+<span class="sourceLineNo">736</span>  public boolean abort(final long procId) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>    return abort(procId, true);<a name="line.737"></a>
+<span class="sourceLineNo">738</span>  }<a name="line.738"></a>
+<span class="sourceLineNo">739</span><a name="line.739"></a>
+<span class="sourceLineNo">740</span>  /**<a name="line.740"></a>
+<span class="sourceLineNo">741</span>   * Send an abort notification the specified procedure.<a name="line.741"></a>
+<span class="sourceLineNo">742</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.742"></a>
+<span class="sourceLineNo">743</span>   * @param procId the procedure to abort<a name="line.743"></a>
+<span class="sourceLineNo">744</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.744"></a>
+<span class="sourceLineNo">745</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.745"></a>
+<span class="sourceLineNo">746</span>   */<a name="line.746"></a>
+<span class="sourceLineNo">747</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>    Procedure proc = procedures.get(procId);<a name="line.748"></a>
+<span class="sourceLineNo">749</span>    if (proc != null) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>        return false;<a name="line.751"></a>
+<span class="sourceLineNo">752</span>      } else {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>        return proc.abort(getEnvironment());<a name="line.753"></a>
+<span class="sourceLineNo">754</span>      }<a name="line.754"></a>
+<span class="sourceLineNo">755</span>    }<a name="line.755"></a>
+<span class="sourceLineNo">756</span>    return false;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>  }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>  /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>   * Check if the user is this procedure's owner<a name="line.760"></a>
+<span class="sourceLineNo">761</span>   * @param procId the target procedure<a name="line.761"></a>
+<span class="sourceLineNo">762</span>   * @param user the user<a name="line.762"></a>
+<span class="sourceLineNo">763</span>   * @return true if the user is the owner of the procedure,<a name="line.763"></a>
+<span class="sourceLineNo">764</span>   *   false otherwise or the owner is unknown.<a name="line.764"></a>
+<span class="sourceLineNo">765</span>   */<a name="line.765"></a>
+<span class="sourceLineNo">766</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>    if (user == null) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>      return false;<a name="line.768"></a>
+<span class="sourceLineNo">769</span>    }<a name="line.769"></a>
+<span class="sourceLineNo">770</span><a name="line.770"></a>
+<span class="sourceLineNo">771</span>    Procedure proc = procedures.get(procId);<a name="line.771"></a>
+<span class="sourceLineNo">772</span>    if (proc != null) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>      return proc.getOwner().equals(user.getShortName());<a name="line.773"></a>
+<span class="sourceLineNo">774</span>    }<a name="line.774"></a>
+<span class="sourceLineNo">775</span>    ProcedureInfo procInfo = completed.get(procId);<a name="line.775"></a>
+<span class="sourceLineNo">776</span>    if (procInfo == null) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.777"></a>
+<span class="sourceLineNo">778</span>      // At this time, we cannot check the owner of the procedure<a name="line.778"></a>
+<span class="sourceLineNo">779</span>      return false;<a name="line.779"></a>
+<span class="sourceLineNo">780</span>    }<a name="line.780"></a>
+<span class="sourceLineNo">781</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<a name="line.781"></a>
+<span class="sourceLineNo">782</span>  }<a name="line.782"></a>
+<span class="sourceLineNo">783</span><a name="line.783"></a>
+<span class="sourceLineNo">784</span>  pu

<TRUNCATED>

[19/51] [partial] hbase-site git commit: Published site at a87d9560fcf4803bdd7a01b6e4ec21435d4e11b9.

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f8d6f420/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html
index 2ab8ebc..10be916 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html
@@ -316,7 +316,7 @@
 <span class="sourceLineNo">308</span>      public void handleCorrupted(ProcedureIterator procIter) throws IOException {<a name="line.308"></a>
 <span class="sourceLineNo">309</span>        int corruptedCount = 0;<a name="line.309"></a>
 <span class="sourceLineNo">310</span>        while (procIter.hasNext()) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>          Procedure proc = procIter.next();<a name="line.311"></a>
+<span class="sourceLineNo">311</span>          ProcedureInfo proc = procIter.nextAsProcedureInfo();<a name="line.311"></a>
 <span class="sourceLineNo">312</span>          LOG.error("corrupted procedure: " + proc);<a name="line.312"></a>
 <span class="sourceLineNo">313</span>          corruptedCount++;<a name="line.313"></a>
 <span class="sourceLineNo">314</span>        }<a name="line.314"></a>
@@ -329,972 +329,989 @@
 <span class="sourceLineNo">321</span><a name="line.321"></a>
 <span class="sourceLineNo">322</span>  private void loadProcedures(final ProcedureIterator procIter,<a name="line.322"></a>
 <span class="sourceLineNo">323</span>      final boolean abortOnCorruption) throws IOException {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    // 1. Build the rollback stack<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    int runnablesCount = 0;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    while (procIter.hasNext()) {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      Procedure proc = procIter.next();<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      if (!proc.hasParent() &amp;&amp; !proc.isFinished()) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>        rollbackStack.put(proc.getProcId(), new RootProcedureState());<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      // add the procedure to the map<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      proc.beforeReplay(getEnvironment());<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      procedures.put(proc.getProcId(), proc);<a name="line.333"></a>
-<span class="sourceLineNo">334</span><a name="line.334"></a>
-<span class="sourceLineNo">335</span>      // add the nonce to the map<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      if (proc.getNonceKey() != null) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>        nonceKeysToProcIdsMap.put(proc.getNonceKey(), proc.getProcId());<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>      if (proc.getState() == ProcedureState.RUNNABLE) {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>        runnablesCount++;<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">324</span>    final boolean isDebugEnabled = LOG.isDebugEnabled();<a name="line.324"></a>
+<span class="sourceLineNo">325</span><a name="line.325"></a>
+<span class="sourceLineNo">326</span>    // 1. Build the rollback stack<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    int runnablesCount = 0;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    while (procIter.hasNext()) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      final NonceKey nonceKey;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      final long procId;<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>      if (procIter.isNextCompleted()) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        ProcedureInfo proc = procIter.nextAsProcedureInfo();<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        nonceKey = proc.getNonceKey();<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        procId = proc.getProcId();<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        completed.put(proc.getProcId(), proc);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        if (isDebugEnabled) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>          LOG.debug("The procedure is completed: " + proc);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>        }<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      } else {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        Procedure proc = procIter.nextAsProcedure();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        nonceKey = proc.getNonceKey();<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        procId = proc.getProcId();<a name="line.343"></a>
 <span class="sourceLineNo">344</span><a name="line.344"></a>
-<span class="sourceLineNo">345</span>    // 2. Initialize the stacks<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    ArrayList&lt;Procedure&gt; runnableList = new ArrayList(runnablesCount);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    HashSet&lt;Procedure&gt; waitingSet = null;<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    procIter.reset();<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    while (procIter.hasNext()) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      Procedure proc = procIter.next();<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      if (LOG.isDebugEnabled()) {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>        LOG.debug(String.format("Loading procedure state=%s isFailed=%s: %s",<a name="line.352"></a>
-<span class="sourceLineNo">353</span>                    proc.getState(), proc.hasException(), proc));<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      }<a name="line.354"></a>
-<span class="sourceLineNo">355</span><a name="line.355"></a>
-<span class="sourceLineNo">356</span>      Long rootProcId = getRootProcedureId(proc);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      if (rootProcId == null) {<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        // The 'proc' was ready to run but the root procedure was rolledback?<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        runnables.addBack(proc);<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        continue;<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>      if (!proc.hasParent() &amp;&amp; proc.isFinished()) {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>        if (LOG.isDebugEnabled()) {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>          LOG.debug(String.format("The procedure is completed state=%s isFailed=%s",<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    proc.getState(), proc.hasException()));<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>        assert !rollbackStack.containsKey(proc.getProcId());<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        procedures.remove(proc.getProcId());<a name="line.369"></a>
-<span class="sourceLineNo">370</span>        completed.put(proc.getProcId(), Procedure.createProcedureInfo(proc, proc.getNonceKey()));<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">345</span>        if (!proc.hasParent()) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>          assert !proc.isFinished() : "unexpected finished procedure";<a name="line.346"></a>
+<span class="sourceLineNo">347</span>          rollbackStack.put(proc.getProcId(), new RootProcedureState());<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>        // add the procedure to the map<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        proc.beforeReplay(getEnvironment());<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        procedures.put(proc.getProcId(), proc);<a name="line.352"></a>
+<span class="sourceLineNo">353</span><a name="line.353"></a>
+<span class="sourceLineNo">354</span>        if (proc.getState() == ProcedureState.RUNNABLE) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          runnablesCount++;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>      // add the nonce to the map<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      if (nonceKey != null) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>        nonceKeysToProcIdsMap.put(nonceKey, procId);<a name="line.361"></a>
+<span class="sourceLineNo">362</span>      }<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>    // 2. Initialize the stacks<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    ArrayList&lt;Procedure&gt; runnableList = new ArrayList(runnablesCount);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    HashSet&lt;Procedure&gt; waitingSet = null;<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    procIter.reset();<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    while (procIter.hasNext()) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>      if (procIter.isNextCompleted()) {<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        procIter.skipNext();<a name="line.371"></a>
 <span class="sourceLineNo">372</span>        continue;<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>      if (proc.hasParent() &amp;&amp; !proc.isFinished()) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>        Procedure parent = procedures.get(proc.getParentProcId());<a name="line.376"></a>
-<span class="sourceLineNo">377</span>        // corrupted procedures are handled later at step 3<a name="line.377"></a>
-<span class="sourceLineNo">378</span>        if (parent != null) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>          parent.incChildrenLatch();<a name="line.379"></a>
-<span class="sourceLineNo">380</span>        }<a name="line.380"></a>
+<span class="sourceLineNo">375</span>      Procedure proc = procIter.nextAsProcedure();<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      assert !(proc.isFinished() &amp;&amp; !proc.hasParent()) : "unexpected completed proc=" + proc;<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>      if (isDebugEnabled) {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        LOG.debug(String.format("Loading procedure state=%s isFailed=%s: %s",<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                    proc.getState(), proc.hasException(), proc));<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>      RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      procStack.loadStack(proc);<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>      switch (proc.getState()) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>        case RUNNABLE:<a name="line.387"></a>
-<span class="sourceLineNo">388</span>          runnableList.add(proc);<a name="line.388"></a>
-<span class="sourceLineNo">389</span>          break;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        case WAITING_TIMEOUT:<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          if (waitingSet == null) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>            waitingSet = new HashSet&lt;Procedure&gt;();<a name="line.392"></a>
-<span class="sourceLineNo">393</span>          }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>          waitingSet.add(proc);<a name="line.394"></a>
-<span class="sourceLineNo">395</span>          break;<a name="line.395"></a>
-<span class="sourceLineNo">396</span>        case FINISHED:<a name="line.396"></a>
-<span class="sourceLineNo">397</span>          if (proc.hasException()) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>            // add the proc to the runnables to perform the rollback<a name="line.398"></a>
-<span class="sourceLineNo">399</span>            runnables.addBack(proc);<a name="line.399"></a>
-<span class="sourceLineNo">400</span>            break;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          }<a name="line.401"></a>
-<span class="sourceLineNo">402</span>        case ROLLEDBACK:<a name="line.402"></a>
-<span class="sourceLineNo">403</span>        case INITIALIZING:<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          String msg = "Unexpected " + proc.getState() + " state for " + proc;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          LOG.error(msg);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          throw new UnsupportedOperationException(msg);<a name="line.406"></a>
-<span class="sourceLineNo">407</span>        default:<a name="line.407"></a>
-<span class="sourceLineNo">408</span>          break;<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    }<a name="line.410"></a>
-<span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>    // 3. Validate the stacks<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    int corruptedCount = 0;<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    Iterator&lt;Map.Entry&lt;Long, RootProcedureState&gt;&gt; itStack = rollbackStack.entrySet().iterator();<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    while (itStack.hasNext()) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      Map.Entry&lt;Long, RootProcedureState&gt; entry = itStack.next();<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      RootProcedureState procStack = entry.getValue();<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      if (procStack.isValid()) continue;<a name="line.418"></a>
-<span class="sourceLineNo">419</span><a name="line.419"></a>
-<span class="sourceLineNo">420</span>      for (Procedure proc: procStack.getSubprocedures()) {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>        LOG.error("corrupted procedure: " + proc);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        procedures.remove(proc.getProcId());<a name="line.422"></a>
-<span class="sourceLineNo">423</span>        runnableList.remove(proc);<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        if (waitingSet != null) waitingSet.remove(proc);<a name="line.424"></a>
-<span class="sourceLineNo">425</span>        corruptedCount++;<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      itStack.remove();<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>    if (abortOnCorruption &amp;&amp; corruptedCount &gt; 0) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      throw new IOException("found " + corruptedCount + " procedures on replay");<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
-<span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span>    // 4. Push the runnables<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    if (!runnableList.isEmpty()) {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // TODO: See ProcedureWALFormatReader#hasFastStartSupport<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      // some procedure may be started way before this stuff.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (int i = runnableList.size() - 1; i &gt;= 0; --i) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        Procedure proc = runnableList.get(i);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        if (!proc.hasParent()) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          sendProcedureLoadedNotification(proc.getProcId());<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (proc.wasExecuted()) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          runnables.addFront(proc);<a name="line.444"></a>
-<span class="sourceLineNo">445</span>        } else {<a name="line.445"></a>
-<span class="sourceLineNo">446</span>          // if it was not in execution, it can wait.<a name="line.446"></a>
-<span class="sourceLineNo">447</span>          runnables.addBack(proc);<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>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  /**<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * Start the procedure executor.<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * It calls ProcedureStore.recoverLease() and ProcedureStore.load() to<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * recover the lease, and ensure a single executor, and start the procedure<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * replay to resume and recover the previous pending and in-progress perocedures.<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   *<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   * @param numThreads number of threads available for procedure execution.<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   * @param abortOnCorruption true if you want to abort your service in case<a name="line.460"></a>
-<span class="sourceLineNo">461</span>   *          a corrupted procedure is found on replay. otherwise false.<a name="line.461"></a>
-<span class="sourceLineNo">462</span>   */<a name="line.462"></a>
-<span class="sourceLineNo">463</span>  public void start(int numThreads, boolean abortOnCorruption) throws IOException {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    if (running.getAndSet(true)) {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      LOG.warn("Already running");<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      return;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
-<span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>    // We have numThreads executor + one timer thread used for timing out<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    // procedures and triggering periodic procedures.<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    threads = new Thread[numThreads + 1];<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    LOG.info("Starting procedure executor threads=" + threads.length);<a name="line.472"></a>
-<span class="sourceLineNo">473</span><a name="line.473"></a>
-<span class="sourceLineNo">474</span>    // Initialize procedures executor<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    for (int i = 0; i &lt; numThreads; ++i) {<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      threads[i] = new Thread("ProcedureExecutor-" + i) {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>        @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span>        public void run() {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>          execLoop();<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        }<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      };<a name="line.481"></a>
+<span class="sourceLineNo">383</span>      Long rootProcId = getRootProcedureId(proc);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      if (rootProcId == null) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        // The 'proc' was ready to run but the root procedure was rolledback?<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        runnables.addBack(proc);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        continue;<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>      if (proc.hasParent() &amp;&amp; !proc.isFinished()) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        Procedure parent = procedures.get(proc.getParentProcId());<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        // corrupted procedures are handled later at step 3<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        if (parent != null) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>          parent.incChildrenLatch();<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>      RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.398"></a>
+<span class="sourceLineNo">399</span>      procStack.loadStack(proc);<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>      switch (proc.getState()) {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        case RUNNABLE:<a name="line.402"></a>
+<span class="sourceLineNo">403</span>          runnableList.add(proc);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>          break;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        case WAITING_TIMEOUT:<a name="line.405"></a>
+<span class="sourceLineNo">406</span>          if (waitingSet == null) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>            waitingSet = new HashSet&lt;Procedure&gt;();<a name="line.407"></a>
+<span class="sourceLineNo">408</span>          }<a name="line.408"></a>
+<span class="sourceLineNo">409</span>          waitingSet.add(proc);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>          break;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        case FINISHED:<a name="line.411"></a>
+<span class="sourceLineNo">412</span>          if (proc.hasException()) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>            // add the proc to the runnables to perform the rollback<a name="line.413"></a>
+<span class="sourceLineNo">414</span>            runnables.addBack(proc);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>            break;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>          }<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        case ROLLEDBACK:<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        case INITIALIZING:<a name="line.418"></a>
+<span class="sourceLineNo">419</span>          String msg = "Unexpected " + proc.getState() + " state for " + proc;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>          LOG.error(msg);<a name="line.420"></a>
+<span class="sourceLineNo">421</span>          throw new UnsupportedOperationException(msg);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        default:<a name="line.422"></a>
+<span class="sourceLineNo">423</span>          break;<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      }<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    }<a name="line.425"></a>
+<span class="sourceLineNo">426</span><a name="line.426"></a>
+<span class="sourceLineNo">427</span>    // 3. Validate the stacks<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    int corruptedCount = 0;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    Iterator&lt;Map.Entry&lt;Long, RootProcedureState&gt;&gt; itStack = rollbackStack.entrySet().iterator();<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    while (itStack.hasNext()) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      Map.Entry&lt;Long, RootProcedureState&gt; entry = itStack.next();<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      RootProcedureState procStack = entry.getValue();<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      if (procStack.isValid()) continue;<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>      for (Procedure proc: procStack.getSubprocedures()) {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        LOG.error("corrupted procedure: " + proc);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        procedures.remove(proc.getProcId());<a name="line.437"></a>
+<span class="sourceLineNo">438</span>        runnableList.remove(proc);<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        if (waitingSet != null) waitingSet.remove(proc);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        corruptedCount++;<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      }<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      itStack.remove();<a name="line.442"></a>
+<span class="sourceLineNo">443</span>    }<a name="line.443"></a>
+<span class="sourceLineNo">444</span><a name="line.444"></a>
+<span class="sourceLineNo">445</span>    if (abortOnCorruption &amp;&amp; corruptedCount &gt; 0) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      throw new IOException("found " + corruptedCount + " procedures on replay");<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>    // 4. Push the runnables<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    if (!runnableList.isEmpty()) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      // TODO: See ProcedureWALFormatReader#hasFastStartSupport<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      // some procedure may be started way before this stuff.<a name="line.452"></a>
+<span class="sourceLineNo">453</span>      for (int i = runnableList.size() - 1; i &gt;= 0; --i) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        Procedure proc = runnableList.get(i);<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        if (!proc.hasParent()) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>          sendProcedureLoadedNotification(proc.getProcId());<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        }<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        if (proc.wasExecuted()) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>          runnables.addFront(proc);<a name="line.459"></a>
+<span class="sourceLineNo">460</span>        } else {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>          // if it was not in execution, it can wait.<a name="line.461"></a>
+<span class="sourceLineNo">462</span>          runnables.addBack(proc);<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        }<a name="line.463"></a>
+<span class="sourceLineNo">464</span>      }<a name="line.464"></a>
+<span class="sourceLineNo">465</span>    }<a name="line.465"></a>
+<span class="sourceLineNo">466</span>  }<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>  /**<a name="line.468"></a>
+<span class="sourceLineNo">469</span>   * Start the procedure executor.<a name="line.469"></a>
+<span class="sourceLineNo">470</span>   * It calls ProcedureStore.recoverLease() and ProcedureStore.load() to<a name="line.470"></a>
+<span class="sourceLineNo">471</span>   * recover the lease, and ensure a single executor, and start the procedure<a name="line.471"></a>
+<span class="sourceLineNo">472</span>   * replay to resume and recover the previous pending and in-progress perocedures.<a name="line.472"></a>
+<span class="sourceLineNo">473</span>   *<a name="line.473"></a>
+<span class="sourceLineNo">474</span>   * @param numThreads number of threads available for procedure execution.<a name="line.474"></a>
+<span class="sourceLineNo">475</span>   * @param abortOnCorruption true if you want to abort your service in case<a name="line.475"></a>
+<span class="sourceLineNo">476</span>   *          a corrupted procedure is found on replay. otherwise false.<a name="line.476"></a>
+<span class="sourceLineNo">477</span>   */<a name="line.477"></a>
+<span class="sourceLineNo">478</span>  public void start(int numThreads, boolean abortOnCorruption) throws IOException {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>    if (running.getAndSet(true)) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>      LOG.warn("Already running");<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      return;<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>    // Initialize procedures timeout handler (this is the +1 thread)<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    threads[numThreads] = new Thread("ProcedureExecutorTimeoutThread") {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      @Override<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      public void run() {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>        timeoutLoop();<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      }<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    };<a name="line.490"></a>
-<span class="sourceLineNo">491</span><a name="line.491"></a>
-<span class="sourceLineNo">492</span>    // Acquire the store lease.<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    store.recoverLease();<a name="line.493"></a>
-<span class="sourceLineNo">494</span><a name="line.494"></a>
-<span class="sourceLineNo">495</span>    // TODO: Split in two steps.<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    // TODO: Handle corrupted procedures (currently just a warn)<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    // The first one will make sure that we have the latest id,<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    // so we can start the threads and accept new procedures.<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    // The second step will do the actual load of old procedures.<a name="line.499"></a>
-<span class="sourceLineNo">500</span>    load(abortOnCorruption);<a name="line.500"></a>
-<span class="sourceLineNo">501</span><a name="line.501"></a>
-<span class="sourceLineNo">502</span>    // Start the executors. Here we must have the lastProcId set.<a name="line.502"></a>
-<span class="sourceLineNo">503</span>    for (int i = 0; i &lt; threads.length; ++i) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      threads[i].start();<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    }<a name="line.505"></a>
+<span class="sourceLineNo">484</span>    // We have numThreads executor + one timer thread used for timing out<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    // procedures and triggering periodic procedures.<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    threads = new Thread[numThreads + 1];<a name="line.486"></a>
+<span class="sourceLineNo">487</span>    LOG.info("Starting procedure executor threads=" + threads.length);<a name="line.487"></a>
+<span class="sourceLineNo">488</span><a name="line.488"></a>
+<span class="sourceLineNo">489</span>    // Initialize procedures executor<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    for (int i = 0; i &lt; numThreads; ++i) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>      threads[i] = new Thread("ProcedureExecutor-" + i) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        public void run() {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>          execLoop();<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        }<a name="line.495"></a>
+<span class="sourceLineNo">496</span>      };<a name="line.496"></a>
+<span class="sourceLineNo">497</span>    }<a name="line.497"></a>
+<span class="sourceLineNo">498</span><a name="line.498"></a>
+<span class="sourceLineNo">499</span>    // Initialize procedures timeout handler (this is the +1 thread)<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    threads[numThreads] = new Thread("ProcedureExecutorTimeoutThread") {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>      @Override<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      public void run() {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>        timeoutLoop();<a name="line.503"></a>
+<span class="sourceLineNo">504</span>      }<a name="line.504"></a>
+<span class="sourceLineNo">505</span>    };<a name="line.505"></a>
 <span class="sourceLineNo">506</span><a name="line.506"></a>
-<span class="sourceLineNo">507</span>    // Add completed cleaner<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    waitingTimeout.add(<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      new CompletedProcedureCleaner(conf, store, completed, nonceKeysToProcIdsMap));<a name="line.509"></a>
-<span class="sourceLineNo">510</span>  }<a name="line.510"></a>
-<span class="sourceLineNo">511</span><a name="line.511"></a>
-<span class="sourceLineNo">512</span>  public void stop() {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    if (!running.getAndSet(false)) {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      return;<a name="line.514"></a>
-<span class="sourceLineNo">515</span>    }<a name="line.515"></a>
+<span class="sourceLineNo">507</span>    // Acquire the store lease.<a name="line.507"></a>
+<span class="sourceLineNo">508</span>    store.recoverLease();<a name="line.508"></a>
+<span class="sourceLineNo">509</span><a name="line.509"></a>
+<span class="sourceLineNo">510</span>    // TODO: Split in two steps.<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    // TODO: Handle corrupted procedures (currently just a warn)<a name="line.511"></a>
+<span class="sourceLineNo">512</span>    // The first one will make sure that we have the latest id,<a name="line.512"></a>
+<span class="sourceLineNo">513</span>    // so we can start the threads and accept new procedures.<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    // The second step will do the actual load of old procedures.<a name="line.514"></a>
+<span class="sourceLineNo">515</span>    load(abortOnCorruption);<a name="line.515"></a>
 <span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>    LOG.info("Stopping the procedure executor");<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    runnables.signalAll();<a name="line.518"></a>
-<span class="sourceLineNo">519</span>    waitingTimeout.signalAll();<a name="line.519"></a>
-<span class="sourceLineNo">520</span>  }<a name="line.520"></a>
+<span class="sourceLineNo">517</span>    // Start the executors. Here we must have the lastProcId set.<a name="line.517"></a>
+<span class="sourceLineNo">518</span>    for (int i = 0; i &lt; threads.length; ++i) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>      threads[i].start();<a name="line.519"></a>
+<span class="sourceLineNo">520</span>    }<a name="line.520"></a>
 <span class="sourceLineNo">521</span><a name="line.521"></a>
-<span class="sourceLineNo">522</span>  public void join() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    boolean interrupted = false;<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>    for (int i = 0; i &lt; threads.length; ++i) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      try {<a name="line.526"></a>
-<span class="sourceLineNo">527</span>        threads[i].join();<a name="line.527"></a>
-<span class="sourceLineNo">528</span>      } catch (InterruptedException ex) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        interrupted = true;<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><a name="line.532"></a>
-<span class="sourceLineNo">533</span>    if (interrupted) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      Thread.currentThread().interrupt();<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
+<span class="sourceLineNo">522</span>    // Add completed cleaner<a name="line.522"></a>
+<span class="sourceLineNo">523</span>    waitingTimeout.add(<a name="line.523"></a>
+<span class="sourceLineNo">524</span>      new CompletedProcedureCleaner(conf, store, completed, nonceKeysToProcIdsMap));<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 stop() {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>    if (!running.getAndSet(false)) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>      return;<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>    LOG.info("Stopping the procedure executor");<a name="line.532"></a>
+<span class="sourceLineNo">533</span>    runnables.signalAll();<a name="line.533"></a>
+<span class="sourceLineNo">534</span>    waitingTimeout.signalAll();<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>    completed.clear();<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    rollbackStack.clear();<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    procedures.clear();<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    nonceKeysToProcIdsMap.clear();<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    waitingTimeout.clear();<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    runnables.clear();<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    lastProcId.set(-1);<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>  public boolean isRunning() {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    return running.get();<a name="line.547"></a>
-<span class="sourceLineNo">548</span>  }<a name="line.548"></a>
-<span class="sourceLineNo">549</span><a name="line.549"></a>
-<span class="sourceLineNo">550</span>  /**<a name="line.550"></a>
-<span class="sourceLineNo">551</span>   * @return the number of execution threads.<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   */<a name="line.552"></a>
-<span class="sourceLineNo">553</span>  public int getNumThreads() {<a name="line.553"></a>
-<span class="sourceLineNo">554</span>    return threads == null ? 0 : (threads.length - 1);<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>  public int getActiveExecutorCount() {<a name="line.557"></a>
-<span class="sourceLineNo">558</span>    return activeExecutorCount.get();<a name="line.558"></a>
+<span class="sourceLineNo">537</span>  public void join() {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    boolean interrupted = false;<a name="line.538"></a>
+<span class="sourceLineNo">539</span><a name="line.539"></a>
+<span class="sourceLineNo">540</span>    for (int i = 0; i &lt; threads.length; ++i) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>      try {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>        threads[i].join();<a name="line.542"></a>
+<span class="sourceLineNo">543</span>      } catch (InterruptedException ex) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        interrupted = true;<a name="line.544"></a>
+<span class="sourceLineNo">545</span>      }<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    }<a name="line.546"></a>
+<span class="sourceLineNo">547</span><a name="line.547"></a>
+<span class="sourceLineNo">548</span>    if (interrupted) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      Thread.currentThread().interrupt();<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>    completed.clear();<a name="line.552"></a>
+<span class="sourceLineNo">553</span>    rollbackStack.clear();<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    procedures.clear();<a name="line.554"></a>
+<span class="sourceLineNo">555</span>    nonceKeysToProcIdsMap.clear();<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    waitingTimeout.clear();<a name="line.556"></a>
+<span class="sourceLineNo">557</span>    runnables.clear();<a name="line.557"></a>
+<span class="sourceLineNo">558</span>    lastProcId.set(-1);<a name="line.558"></a>
 <span class="sourceLineNo">559</span>  }<a name="line.559"></a>
 <span class="sourceLineNo">560</span><a name="line.560"></a>
-<span class="sourceLineNo">561</span>  public TEnvironment getEnvironment() {<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    return this.environment;<a name="line.562"></a>
+<span class="sourceLineNo">561</span>  public boolean isRunning() {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    return running.get();<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>  public ProcedureStore getStore() {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    return this.store;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>  }<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    this.listeners.add(listener);<a name="line.570"></a>
-<span class="sourceLineNo">571</span>  }<a name="line.571"></a>
-<span class="sourceLineNo">572</span><a name="line.572"></a>
-<span class="sourceLineNo">573</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    return this.listeners.remove(listener);<a name="line.574"></a>
-<span class="sourceLineNo">575</span>  }<a name="line.575"></a>
-<span class="sourceLineNo">576</span><a name="line.576"></a>
-<span class="sourceLineNo">577</span>  /**<a name="line.577"></a>
-<span class="sourceLineNo">578</span>   * List procedures.<a name="line.578"></a>
-<span class="sourceLineNo">579</span>   * @return the procedures in a list<a name="line.579"></a>
-<span class="sourceLineNo">580</span>   */<a name="line.580"></a>
-<span class="sourceLineNo">581</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    List&lt;ProcedureInfo&gt; procedureLists =<a name="line.582"></a>
-<span class="sourceLineNo">583</span>        new ArrayList&lt;ProcedureInfo&gt;(procedures.size() + completed.size());<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    for (java.util.Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      procedureLists.add(Procedure.createProcedureInfo(p.getValue(), null));<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    for (java.util.Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.588"></a>
-<span class="sourceLineNo">589</span>      // it could complete after we walk through procedures list and insert into<a name="line.589"></a>
-<span class="sourceLineNo">590</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      procedureLists.add(e.getValue());<a name="line.592"></a>
-<span class="sourceLineNo">593</span>    }<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    return procedureLists;<a name="line.594"></a>
-<span class="sourceLineNo">595</span>  }<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>  /**<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * Add a new root-procedure to the executor.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * @param proc the new procedure to execute.<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   */<a name="line.601"></a>
-<span class="sourceLineNo">602</span>  public long submitProcedure(final Procedure proc) {<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    return submitProcedure(proc, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.603"></a>
-<span class="sourceLineNo">604</span>  }<a name="line.604"></a>
-<span class="sourceLineNo">605</span><a name="line.605"></a>
-<span class="sourceLineNo">606</span>  /**<a name="line.606"></a>
-<span class="sourceLineNo">607</span>   * Add a new root-procedure to the executor.<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   * @param proc the new procedure to execute.<a name="line.608"></a>
-<span class="sourceLineNo">609</span>   * @param nonceGroup<a name="line.609"></a>
-<span class="sourceLineNo">610</span>   * @param nonce<a name="line.610"></a>
-<span class="sourceLineNo">611</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.611"></a>
-<span class="sourceLineNo">612</span>   */<a name="line.612"></a>
-<span class="sourceLineNo">613</span>  public long submitProcedure(<a name="line.613"></a>
-<span class="sourceLineNo">614</span>      final Procedure proc,<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      final long nonceGroup,<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      final long nonce) {<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    Preconditions.checkArgument(isRunning());<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    Preconditions.checkArgument(!proc.hasParent());<a name="line.620"></a>
-<span class="sourceLineNo">621</span><a name="line.621"></a>
-<span class="sourceLineNo">622</span>    Long currentProcId;<a name="line.622"></a>
-<span class="sourceLineNo">623</span><a name="line.623"></a>
-<span class="sourceLineNo">624</span>    // The following part of the code has to be synchronized to prevent multiple request<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    // with the same nonce to execute at the same time.<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    synchronized (this) {<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      // Check whether the proc exists.  If exist, just return the proc id.<a name="line.627"></a>
-<span class="sourceLineNo">628</span>      // This is to prevent the same proc to submit multiple times (it could happen<a name="line.628"></a>
-<span class="sourceLineNo">629</span>      // when client could not talk to server and resubmit the same request).<a name="line.629"></a>
-<span class="sourceLineNo">630</span>      NonceKey noncekey = null;<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      if (nonce != HConstants.NO_NONCE) {<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        noncekey = new NonceKey(nonceGroup, nonce);<a name="line.632"></a>
-<span class="sourceLineNo">633</span>        currentProcId = nonceKeysToProcIdsMap.get(noncekey);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>        if (currentProcId != null) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>          // Found the proc<a name="line.635"></a>
-<span class="sourceLineNo">636</span>          return currentProcId;<a name="line.636"></a>
-<span class="sourceLineNo">637</span>        }<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      }<a name="line.638"></a>
-<span class="sourceLineNo">639</span><a name="line.639"></a>
-<span class="sourceLineNo">640</span>      // Initialize the Procedure ID<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      currentProcId = nextProcId();<a name="line.641"></a>
-<span class="sourceLineNo">642</span>      proc.setProcId(currentProcId);<a name="line.642"></a>
-<span class="sourceLineNo">643</span><a name="line.643"></a>
-<span class="sourceLineNo">644</span>      // This is new procedure. Set the noncekey and insert into the map.<a name="line.644"></a>
-<span class="sourceLineNo">645</span>      if (noncekey != null) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>        proc.setNonceKey(noncekey);<a name="line.646"></a>
-<span class="sourceLineNo">647</span>        nonceKeysToProcIdsMap.put(noncekey, currentProcId);<a name="line.647"></a>
-<span class="sourceLineNo">648</span>      }<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    } // end of synchronized (this)<a name="line.649"></a>
-<span class="sourceLineNo">650</span><a name="line.650"></a>
-<span class="sourceLineNo">651</span>    // Commit the transaction<a name="line.651"></a>
-<span class="sourceLineNo">652</span>    store.insert(proc, null);<a name="line.652"></a>
-<span class="sourceLineNo">653</span>    if (LOG.isDebugEnabled()) {<a name="line.653"></a>
-<span class="sourceLineNo">654</span>      LOG.debug("Procedure " + proc + " added to the store.");<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    }<a name="line.655"></a>
-<span class="sourceLineNo">656</span><a name="line.656"></a>
-<span class="sourceLineNo">657</span>    // Create the rollback stack for the procedure<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    RootProcedureState stack = new RootProcedureState();<a name="line.658"></a>
-<span class="sourceLineNo">659</span>    rollbackStack.put(currentProcId, stack);<a name="line.659"></a>
-<span class="sourceLineNo">660</span><a name="line.660"></a>
-<span class="sourceLineNo">661</span>    // Submit the new subprocedures<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    assert !procedures.containsKey(currentProcId);<a name="line.662"></a>
-<span class="sourceLineNo">663</span>    procedures.put(currentProcId, proc);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    sendProcedureAddedNotification(currentProcId);<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    runnables.addBack(proc);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    return currentProcId;<a name="line.666"></a>
-<span class="sourceLineNo">667</span>  }<a name="line.667"></a>
-<span class="sourceLineNo">668</span><a name="line.668"></a>
-<span class="sourceLineNo">669</span>  public ProcedureInfo getResult(final long procId) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    return completed.get(procId);<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>  /**<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   * Return true if the procedure is finished.<a name="line.674"></a>
-<span class="sourceLineNo">675</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.675"></a>
-<span class="sourceLineNo">676</span>   * Use getResult() to check the state or get the result data.<a name="line.676"></a>
-<span class="sourceLineNo">677</span>   * @param procId the ID of the procedure to check<a name="line.677"></a>
-<span class="sourceLineNo">678</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>   */<a name="line.679"></a>
-<span class="sourceLineNo">680</span>  public boolean isFinished(final long procId) {<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    return completed.containsKey(procId);<a name="line.681"></a>
+<span class="sourceLineNo">565</span>  /**<a name="line.565"></a>
+<span class="sourceLineNo">566</span>   * @return the number of execution threads.<a name="line.566"></a>
+<span class="sourceLineNo">567</span>   */<a name="line.567"></a>
+<span class="sourceLineNo">568</span>  public int getNumThreads() {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>    return threads == null ? 0 : (threads.length - 1);<a name="line.569"></a>
+<span class="sourceLineNo">570</span>  }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>  public int getActiveExecutorCount() {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>    return activeExecutorCount.get();<a name="line.573"></a>
+<span class="sourceLineNo">574</span>  }<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>  public TEnvironment getEnvironment() {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    return this.environment;<a name="line.577"></a>
+<span class="sourceLineNo">578</span>  }<a name="line.578"></a>
+<span class="sourceLineNo">579</span><a name="line.579"></a>
+<span class="sourceLineNo">580</span>  public ProcedureStore getStore() {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>    return this.store;<a name="line.581"></a>
+<span class="sourceLineNo">582</span>  }<a name="line.582"></a>
+<span class="sourceLineNo">583</span><a name="line.583"></a>
+<span class="sourceLineNo">584</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>    this.listeners.add(listener);<a name="line.585"></a>
+<span class="sourceLineNo">586</span>  }<a name="line.586"></a>
+<span class="sourceLineNo">587</span><a name="line.587"></a>
+<span class="sourceLineNo">588</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>    return this.listeners.remove(listener);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>  }<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>  /**<a name="line.592"></a>
+<span class="sourceLineNo">593</span>   * List procedures.<a name="line.593"></a>
+<span class="sourceLineNo">594</span>   * @return the procedures in a list<a name="line.594"></a>
+<span class="sourceLineNo">595</span>   */<a name="line.595"></a>
+<span class="sourceLineNo">596</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>    List&lt;ProcedureInfo&gt; procedureLists =<a name="line.597"></a>
+<span class="sourceLineNo">598</span>        new ArrayList&lt;ProcedureInfo&gt;(procedures.size() + completed.size());<a name="line.598"></a>
+<span class="sourceLineNo">599</span>    for (java.util.Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>      procedureLists.add(Procedure.createProcedureInfo(p.getValue(), null));<a name="line.600"></a>
+<span class="sourceLineNo">601</span>    }<a name="line.601"></a>
+<span class="sourceLineNo">602</span>    for (java.util.Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.602"></a>
+<span class="sourceLineNo">603</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.603"></a>
+<span class="sourceLineNo">604</span>      // it could complete after we walk through procedures list and insert into<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.606"></a>
+<span class="sourceLineNo">607</span>      procedureLists.add(e.getValue());<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>    return procedureLists;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>  }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>  /**<a name="line.612"></a>
+<span class="sourceLineNo">613</span>   * Add a new root-procedure to the executor.<a name="line.613"></a>
+<span class="sourceLineNo">614</span>   * @param proc the new procedure to execute.<a name="line.614"></a>
+<span class="sourceLineNo">615</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.615"></a>
+<span class="sourceLineNo">616</span>   */<a name="line.616"></a>
+<span class="sourceLineNo">617</span>  public long submitProcedure(final Procedure proc) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>    return submitProcedure(proc, HConstants.NO_NONCE, HConstants.NO_NONCE);<a name="line.618"></a>
+<span class="sourceLineNo">619</span>  }<a name="line.619"></a>
+<span class="sourceLineNo">620</span><a name="line.620"></a>
+<span class="sourceLineNo">621</span>  /**<a name="line.621"></a>
+<span class="sourceLineNo">622</span>   * Add a new root-procedure to the executor.<a name="line.622"></a>
+<span class="sourceLineNo">623</span>   * @param proc the new procedure to execute.<a name="line.623"></a>
+<span class="sourceLineNo">624</span>   * @param nonceGroup<a name="line.624"></a>
+<span class="sourceLineNo">625</span>   * @param nonce<a name="line.625"></a>
+<span class="sourceLineNo">626</span>   * @return the procedure id, that can be used to monitor the operation<a name="line.626"></a>
+<span class="sourceLineNo">627</span>   */<a name="line.627"></a>
+<span class="sourceLineNo">628</span>  public long submitProcedure(<a name="line.628"></a>
+<span class="sourceLineNo">629</span>      final Procedure proc,<a name="line.629"></a>
+<span class="sourceLineNo">630</span>      final long nonceGroup,<a name="line.630"></a>
+<span class="sourceLineNo">631</span>      final long nonce) {<a name="line.631"></a>
+<span class="sourceLineNo">632</span>    Preconditions.checkArgument(proc.getState() == ProcedureState.INITIALIZING);<a name="line.632"></a>
+<span class="sourceLineNo">633</span>    Preconditions.checkArgument(isRunning());<a name="line.633"></a>
+<span class="sourceLineNo">634</span>    Preconditions.checkArgument(lastProcId.get() &gt;= 0);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>    Preconditions.checkArgument(!proc.hasParent());<a name="line.635"></a>
+<span class="sourceLineNo">636</span><a name="line.636"></a>
+<span class="sourceLineNo">637</span>    Long currentProcId;<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>    // The following part of the code has to be synchronized to prevent multiple request<a name="line.639"></a>
+<span class="sourceLineNo">640</span>    // with the same nonce to execute at the same time.<a name="line.640"></a>
+<span class="sourceLineNo">641</span>    synchronized (this) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>      // Check whether the proc exists.  If exist, just return the proc id.<a name="line.642"></a>
+<span class="sourceLineNo">643</span>      // This is to prevent the same proc to submit multiple times (it could happen<a name="line.643"></a>
+<span class="sourceLineNo">644</span>      // when client could not talk to server and resubmit the same request).<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      NonceKey noncekey = null;<a name="line.645"></a>
+<span class="sourceLineNo">646</span>      if (nonce != HConstants.NO_NONCE) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>        noncekey = new NonceKey(nonceGroup, nonce);<a name="line.647"></a>
+<span class="sourceLineNo">648</span>        currentProcId = nonceKeysToProcIdsMap.get(noncekey);<a name="line.648"></a>
+<span class="sourceLineNo">649</span>        if (currentProcId != null) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>          // Found the proc<a name="line.650"></a>
+<span class="sourceLineNo">651</span>          return currentProcId;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>        }<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      }<a name="line.653"></a>
+<span class="sourceLineNo">654</span><a name="line.654"></a>
+<span class="sourceLineNo">655</span>      // Initialize the Procedure ID<a name="line.655"></a>
+<span class="sourceLineNo">656</span>      currentProcId = nextProcId();<a name="line.656"></a>
+<span class="sourceLineNo">657</span>      proc.setProcId(currentProcId);<a name="line.657"></a>
+<span class="sourceLineNo">658</span><a name="line.658"></a>
+<span class="sourceLineNo">659</span>      // This is new procedure. Set the noncekey and insert into the map.<a name="line.659"></a>
+<span class="sourceLineNo">660</span>      if (noncekey != null) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>        proc.setNonceKey(noncekey);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>        nonceKeysToProcIdsMap.put(noncekey, currentProcId);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>      }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>    } // end of synchronized (this)<a name="line.664"></a>
+<span class="sourceLineNo">665</span><a name="line.665"></a>
+<span class="sourceLineNo">666</span>    // Commit the transaction<a name="line.666"></a>
+<span class="sourceLineNo">667</span>    store.insert(proc, null);<a name="line.667"></a>
+<span class="sourceLineNo">668</span>    if (LOG.isDebugEnabled()) {<a name="line.668"></a>
+<span class="sourceLineNo">669</span>      LOG.debug("Procedure " + proc + " added to the store.");<a name="line.669"></a>
+<span class="sourceLineNo">670</span>    }<a name="line.670"></a>
+<span class="sourceLineNo">671</span><a name="line.671"></a>
+<span class="sourceLineNo">672</span>    // Create the rollback stack for the procedure<a name="line.672"></a>
+<span class="sourceLineNo">673</span>    RootProcedureState stack = new RootProcedureState();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>    rollbackStack.put(currentProcId, stack);<a name="line.674"></a>
+<span class="sourceLineNo">675</span><a name="line.675"></a>
+<span class="sourceLineNo">676</span>    // Submit the new subprocedures<a name="line.676"></a>
+<span class="sourceLineNo">677</span>    assert !procedures.containsKey(currentProcId);<a name="line.677"></a>
+<span class="sourceLineNo">678</span>    procedures.put(currentProcId, proc);<a name="line.678"></a>
+<span class="sourceLineNo">679</span>    sendProcedureAddedNotification(currentProcId);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>    runnables.addBack(proc);<a name="line.680"></a>
+<span class="sourceLineNo">681</span>    return currentProcId;<a name="line.681"></a>
 <span class="sourceLineNo">682</span>  }<a name="line.682"></a>
 <span class="sourceLineNo">683</span><a name="line.683"></a>
-<span class="sourceLineNo">684</span>  /**<a name="line.684"></a>
-<span class="sourceLineNo">685</span>   * Return true if the procedure is started.<a name="line.685"></a>
-<span class="sourceLineNo">686</span>   * @param procId the ID of the procedure to check<a name="line.686"></a>
-<span class="sourceLineNo">687</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.687"></a>
-<span class="sourceLineNo">688</span>   */<a name="line.688"></a>
-<span class="sourceLineNo">689</span>  public boolean isStarted(final long procId) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>    Procedure proc = procedures.get(procId);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    if (proc == null) {<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      return completed.get(procId) != null;<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    }<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    return proc.wasExecuted();<a name="line.694"></a>
-<span class="sourceLineNo">695</span>  }<a name="line.695"></a>
-<span class="sourceLineNo">696</span><a name="line.696"></a>
-<span class="sourceLineNo">697</span>  /**<a name="line.697"></a>
-<span class="sourceLineNo">698</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.698"></a>
-<span class="sourceLineNo">699</span>   * @param procId the ID of the procedure to remove<a name="line.699"></a>
-<span class="sourceLineNo">700</span>   */<a name="line.700"></a>
-<span class="sourceLineNo">701</span>  public void removeResult(final long procId) {<a name="line.701"></a>
-<span class="sourceLineNo">702</span>    ProcedureInfo result = completed.get(procId);<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    if (result == null) {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.704"></a>
-<span class="sourceLineNo">705</span>      if (LOG.isDebugEnabled()) {<a name="line.705"></a>
-<span class="sourceLineNo">706</span>        LOG.debug("Procedure procId=" + procId + " already removed by the cleaner.");<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      }<a name="line.707"></a>
-<span class="sourceLineNo">708</span>      return;<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    }<a name="line.709"></a>
-<span class="sourceLineNo">710</span><a name="line.710"></a>
-<span class="sourceLineNo">711</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.712"></a>
-<span class="sourceLineNo">713</span>  }<a name="line.713"></a>
-<span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>  /**<a name="line.715"></a>
-<span class="sourceLineNo">716</span>   * Send an abort notification the specified procedure.<a name="line.716"></a>
-<span class="sourceLineNo">717</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.717"></a>
-<span class="sourceLineNo">718</span>   * @param procId the procedure to abort<a name="line.718"></a>
-<span class="sourceLineNo">719</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.719"></a>
-<span class="sourceLineNo">720</span>   */<a name="line.720"></a>
-<span class="sourceLineNo">721</span>  public boolean abort(final long procId) {<a name="line.721"></a>
-<span class="sourceLineNo">722</span>    return abort(procId, true);<a name="line.722"></a>
-<span class="sourceLineNo">723</span>  }<a name="line.723"></a>
-<span class="sourceLineNo">724</span><a name="line.724"></a>
-<span class="sourceLineNo">725</span>  /**<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   * Send an abort notification the specified procedure.<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.727"></a>
-<span class="sourceLineNo">728</span>   * @param procId the procedure to abort<a name="line.728"></a>
-<span class="sourceLineNo">729</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.729"></a>
-<span class="sourceLineNo">730</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.730"></a>
-<span class="sourceLineNo">731</span>   */<a name="line.731"></a>
-<span class="sourceLineNo">732</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    Procedure proc = procedures.get(procId);<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    if (proc != null) {<a name="line.734"></a>
-<span class="sourceLineNo">735</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>        return false;<a name="line.736"></a>
-<span class="sourceLineNo">737</span>      } else {<a name="line.737"></a>
-<span class="sourceLineNo">738</span>        return proc.abort(getEnvironment());<a name="line.738"></a>
-<span class="sourceLineNo">739</span>      }<a name="line.739"></a>
-<span class="sourceLineNo">740</span>    }<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    return false;<a name="line.741"></a>
-<span class="sourceLineNo">742</span>  }<a name="line.742"></a>
-<span class="sourceLineNo">743</span><a name="line.743"></a>
-<span class="sourceLineNo">744</span>  /**<a name="line.744"></a>
-<span class="sourceLineNo">745</span>   * Check if the user is this procedure's owner<a name="line.745"></a>
-<span class="sourceLineNo">746</span>   * @param procId the target procedure<a name="line.746"></a>
-<span class="sourceLineNo">747</span>   * @param user the user<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   * @return true if the user is the owner of the procedure,<a name="line.748"></a>
-<span class="sourceLineNo">749</span>   *   false otherwise or the owner is unknown.<a name="line.749"></a>
-<span class="sourceLineNo">750</span>   */<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.751"></a>
-<span class="sourceLineNo">752</span>    if (user == null) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>      return false;<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    }<a name="line.754"></a>
-<span class="sourceLineNo">755</span><a name="line.755"></a>
-<span class="sourceLineNo">756</span>    Procedure proc = procedures.get(procId);<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    if (proc != null) {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>      return proc.getOwner().equals(user.getShortName());<a name="line.758"></a>
-<span class="sourceLineNo">759</span>    }<a name="line.759"></a>
-<span class="sourceLineNo">760</span>    ProcedureInfo procInfo = completed.get(procId);<a name="line.760"></a>
-<span class="sourceLineNo">761</span>    if (procInfo == null) {<a name="line.761"></a>
-<span class="sourceLineNo">762</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.762"></a>
-<span class="sourceLineNo">763</span>      // At this time, we cannot check the owner of the procedure<a name="line.763"></a>
-<span class="sourceLineNo">764</span>      return false;<a name="line.764"></a>
-<span class="sourceLineNo">765</span>    }<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<a name="line.766"></a>
-<span class="sourceLineNo">767</span>  }<a name="line.767"></a>
-<span class="sourceLineNo">768</span><a name="line.768"></a>
-<span class="sourceLineNo">769</span>  public Map&lt;Long, ProcedureInfo&gt; getResults() {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    return Collections.unmodifiableMap(completed);<a name="line.770"></a>
-<span class="sourceLineNo">771</span>  }<a name="line.771"></a>
-<span class="sourceLineNo">772</span><a name="line.772"></a>
-<span class="sourceLineNo">773</span>  public Procedure getProcedure(final long procId) {<a name="line.773"></a>
-<span class="sourceLineNo">774</span>    return procedures.get(procId);<a name="line.774"></a>
-<span class="sourceLineNo">775</span>  }<a name="line.775"></a>
-<span class="sourceLineNo">776</span><a name="line.776"></a>
-<span class="sourceLineNo">777</span>  protected ProcedureRunnableSet getRunnableSet() {<a name="line.777"></a>
-<span class="sourceLineNo">778</span>    return runnables;<a name="line.778"></a>
-<span class="sourceLineNo">779</span>  }<a name="line.779"></a>
-<span class="sourceLineNo">780</span><a name="line.780"></a>
-<span class="sourceLineNo">781</span>  /**<a name="line.781"></a>
-<span class="sourceLineNo">782</span>   * Execution loop (N threads)<a name="line.782"></a>
-<span class="sourceLineNo">783</span>   * while the executor is in a running state,<a name="line.783"></a>
-<span class="sourceLineNo">784</span>   * fetch a procedure from the runnables queue and start the execution.<a name="line.784"></a>
-<span class="sourceLineNo">785</span>   */<a name="line.785"></a>
-<span class="sourceLineNo">786</span>  private void execLoop() {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>    while (isRunning()) {<a name="line.787"></a>
-<span class="sourceLineNo">788</span>      Procedure proc = runnables.poll();<a name="line.788"></a>
-<span class="sourceLineNo">789</span>      if (proc == null) continue;<a name="line.789"></a>
-<span class="sourceLineNo">790</span><a name="line.790"></a>
-<span class="sourceLineNo">791</span>      try {<a name="line.791"></a>
-<span class="sourceLineNo">792</span>        activeExecutorCount.incrementAndGet();<a name="line.792"></a>
-<span class="sourceLineNo">793</span>        execLoop(proc);<a name="line.793"></a>
-<span class="sourceLineNo">794</span>      } finally {<a name="line.794"></a>
-<span class="sourceLineNo">795</span>        activeExecutorCount.decrementAndGet();<a name="line.795"></a>
-<span class="sourceLineNo">796</span>      }<a name="line.796"></a>
-<span class="sourceLineNo">797</span>    }<a name="line.797"></a>
-<span class="sourceLineNo">798</span>  }<a name="line.798"></a>
-<span class="sourceLineNo">799</span><a name="line.799"></a>
-<span class="sourceLineNo">800</span>  private void execLoop(Procedure proc) {<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    if (LOG.isTraceEnabled()) {<a name="line.801"></a>
-<span class="sourceLineNo">802</span>      LOG.trace("Trying to start the execution of " + proc);<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    }<a name="line.803"></a>
-<span class="sourceLineNo">804</span><a name="line.804"></a>
-<span class="sourceLineNo">805</span>    Long rootProcId = getRootProcedureId(proc);<a name="line.805"></a>
-<span class="sourceLineNo">806</span>    if (rootProcId == null) {<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.807"></a>
-<span class="sourceLineNo">808</span>      executeRollback(proc);<a name="line.808"></a>
-<span class="sourceLineNo">809</span>      return;<a name="line.809"></a>
-<span class="sourceLineNo">810</span>    }<a name="line.810"></a>
-<span class="sourceLineNo">811</span><a name="line.811"></a>
-<span class="sourceLineNo">812</span>    RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.812"></a>
-<span class="sourceLineNo">813</span>    if (procStack == null) return;<a name="line.813"></a>
+<span class="sourceLineNo">684</span>  public ProcedureInfo getResult(final long procId) {<a name="line.684"></a>
+<span class="sourceLineNo">685</span>    return completed.get(procId);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>  }<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>   * Return true if the procedure is finished.<a name="line.689"></a>
+<span class="sourceLineNo">690</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.690"></a>
+<span class="sourceLineNo">691</span>   * Use getResult() to check the state or get the result data.<a name="line.691"></a>
+<span class="sourceLineNo">692</span>   * @param procId the ID of the procedure to check<a name="line.692"></a>
+<span class="sourceLineNo">693</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.693"></a>
+<span class="sourceLineNo">694</span>   */<a name="line.694"></a>
+<span class="sourceLineNo">695</span>  public boolean isFinished(final long procId) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>    return completed.containsKey(procId);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>  }<a name="line.697"></a>
+<span class="sourceLineNo">698</span><a name="line.698"></a>
+<span class="sourceLineNo">699</span>  /**<a name="line.699"></a>
+<span class="sourceLineNo">700</span>   * Return true if the procedure is started.<a name="line.700"></a>
+<span class="sourceLineNo">701</span>   * @param procId the ID of the procedure to check<a name="line.701"></a>
+<span class="sourceLineNo">702</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.702"></a>
+<span class="sourceLineNo">703</span>   */<a name="line.703"></a>
+<span class="sourceLineNo">704</span>  public boolean isStarted(final long procId) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>    Procedure proc = procedures.get(procId);<a name="line.705"></a>
+<span class="sourceLineNo">706</span>    if (proc == null) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>      return completed.get(procId) != null;<a name="line.707"></a>
+<span class="sourceLineNo">708</span>    }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>    return proc.wasExecuted();<a name="line.709"></a>
+<span class="sourceLineNo">710</span>  }<a name="line.710"></a>
+<span class="sourceLineNo">711</span><a name="line.711"></a>
+<span class="sourceLineNo">712</span>  /**<a name="line.712"></a>
+<span class="sourceLineNo">713</span>   * Mark the specified completed procedure, as ready to remove.<a name="line.713"></a>
+<span class="sourceLineNo">714</span>   * @param procId the ID of the procedure to remove<a name="line.714"></a>
+<span class="sourceLineNo">715</span>   */<a name="line.715"></a>
+<span class="sourceLineNo">716</span>  public void removeResult(final long procId) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>    ProcedureInfo result = completed.get(procId);<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    if (result == null) {<a name="line.718"></a>
+<span class="sourceLineNo">719</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.719"></a>
+<span class="sourceLineNo">720</span>      if (LOG.isDebugEnabled()) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>        LOG.debug("Procedure procId=" + procId + " already removed by the cleaner.");<a name="line.721"></a>
+<span class="sourceLineNo">722</span>      }<a name="line.722"></a>
+<span class="sourceLineNo">723</span>      return;<a name="line.723"></a>
+<span class="sourceLineNo">724</span>    }<a name="line.724"></a>
+<span class="sourceLineNo">725</span><a name="line.725"></a>
+<span class="sourceLineNo">726</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.726"></a>
+<span class="sourceLineNo">727</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.727"></a>
+<span class="sourceLineNo">728</span>  }<a name="line.728"></a>
+<span class="sourceLineNo">729</span><a name="line.729"></a>
+<span class="sourceLineNo">730</span>  /**<a name="line.730"></a>
+<span class="sourceLineNo">731</span>   * Send an abort notification the specified procedure.<a name="line.731"></a>
+<span class="sourceLineNo">732</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.732"></a>
+<span class="sourceLineNo">733</span>   * @param procId the procedure to abort<a name="line.733"></a>
+<span class="sourceLineNo">734</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.734"></a>
+<span class="sourceLineNo">735</span>   */<a name="line.735"></a>
+<span class="sourceLineNo">736</span>  public boolean abort(final long procId) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>    return abort(procId, true);<a name="line.737"></a>
+<span class="sourceLineNo">738</span>  }<a name="line.738"></a>
+<span class="sourceLineNo">739</span><a name="line.739"></a>
+<span class="sourceLineNo">740</span>  /**<a name="line.740"></a>
+<span class="sourceLineNo">741</span>   * Send an abort notification the specified procedure.<a name="line.741"></a>
+<span class="sourceLineNo">742</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.742"></a>
+<span class="sourceLineNo">743</span>   * @param procId the procedure to abort<a name="line.743"></a>
+<span class="sourceLineNo">744</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.744"></a>
+<span class="sourceLineNo">745</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.745"></a>
+<span class="sourceLineNo">746</span>   */<a name="line.746"></a>
+<span class="sourceLineNo">747</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>    Procedure proc = procedures.get(procId);<a name="line.748"></a>
+<span class="sourceLineNo">749</span>    if (proc != null) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>        return false;<a name="line.751"></a>
+<span class="sourceLineNo">752</span>      } else {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>        return proc.abort(getEnvironment());<a name="line.753"></a>
+<span class="sourceLineNo">754</span>      }<a name="line.754"></a>
+<span class="sourceLineNo">755</span>    }<a name="line.755"></a>
+<span class="sourceLineNo">756</span>    return false;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>  }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>  /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>   * Check if the user is this procedure's owner<a name="line.760"></a>
+<span class="sourceLineNo">761</span>   * @param procId the target procedure<a name="line.761"></a>
+<span class="sourceLineNo">762</span>   * @param user the user<a name="line.762"></a>
+<span class="sourceLineNo">763</span>   * @return true if the user is the owner of the procedure,<a name="line.763"></a>
+<span class="sourceLineNo">764</span>   *   false otherwise or the owner is unknown.<a name="line.764"></a>
+<span class="sourceLineNo">765</span>   */<a name="line.765"></a>
+<span class="sourceLineNo">766</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>    if (user == null) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>      return false;<a name="line.768"></a>
+<span class="sourceLineNo">769</span>    }<a name="line.769"></a>
+<span class="sourceLineNo">770</span><a name="line.770"></a>
+<span class="sourceLineNo">771</span>    Procedure proc = procedures.get(procId);<a name="line.771"></a>
+<span class="sourceLineNo">772</span>    if (proc != null) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>      return proc.getOwner().equals(user.getShortName());<a name="line.773"></a>
+<span class="sourceLineNo">774</span>    }<a name="line.774"></a>
+<span class="sourceLineNo">775</span>    ProcedureInfo procInfo = completed.get(procId);<a name="line.775"></a>
+<span class="sourceLineNo">776</span>    if (procInfo == null) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.777"></a>
+<span class="sourceLineNo">778</span>      // At this time, we cannot check the owner of the procedure<a name="line.778"></a>
+<span class="sourceLineNo">779</span>      return false;<a name="line.779"></a>
+<span class="sourceLineNo">780</span>    }<a name="line.780"></a>
+<span class="sourceLineNo">781</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<a name="line.781"></a>
+<span class="sourceLineNo">782</span>  }<a name="line.782"></a>
+<span class="

<TRUNCATED>